Login Barrapunto
Matemáticas para programar
Stevey es un programador que está estudiando por su cuenta matemáticas. En esta interesante entrada de su blog (vía digg) explica su teoría sobre lo mal que se enseñan las matemáticas, y sobre cuáles son las que debería conocer según él un programador. Es habitual escuchar argumentos a favor de una formación "de base" generalista en las ingenierías, en la que se incluya una base sólida de matemáticas. Pero, ¿son las mismas matemáticas las que necesita saber un ingeniero de caminos que las que precisa conocer un ingeniero químico, o uno informático? En tu experiencia profesional, ¿qué matemáticas son las que te han venido mejor?, ¿qué has echado en falta en tu formación matemática?
Este hilo ha sido archivado.
No pueden publicarse nuevos comentarios.
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
(1)
|
2
(Barrapunto Overload: CommentLimit 50)
(1)
|
2
(Barrapunto Overload: CommentLimit 50)

Depende.
(Puntos:4, Interesante)lo mas probable es que...
(Puntos:3, Inspirado)( Última bitácora: Lunes, 07 Febrero de 2005, 03:05h )
Y en el supuesto caso que un programa necesite matemática mas profunda, pues lo mejor es consultar a un matemático que para eso están (y tan poco aprovechados son).
A mi me gustaría que la mitad del tiempo que se pierde en la Universidad viendo matemáticas, resolviendo ecuaciones diferenciales de dificultades ridículas, se invirtieran en enseñar a los alumnos mas arquitectura de software, mas lectura e interpretación de codigo fuente REAL, es decir, mucho mas conocimientos técnicos que es donde flaquean notablemente la gran mayoría de los ingenieros informáticos.
Parece que aún no nos hemos enterado que los informáticos debemos saber de informática y de ordenadores, es ridículo que muchos sepan mas de matemáticas que de los temas son nuestra razón de existir. A mi como universitario me da vergüenza ajena cuándo hablo con algunos colegas.
¿Esto quiere decir que estoy en contra de las matemáticas? Por su puesto que no!!! La matemática es esencial y fundamento de nuestra ciencia, pero debe ser una herramienta mas, y no el 60% de la carrera.
Re:lo mas probable es que...
(Puntos:1)Re:lo mas probable es que...
(Puntos:5, Divertido)Re:lo mas probable es que...
(Puntos:2)( Última bitácora: Jueves, 01 Junio de 2006, 15:09h )
Re:lo mas probable es que...
(Puntos:3, Interesante)( http://barrapunto.com/ )
"La ciencia de la computación no trata sobre las computadoras más de lo que la astronomía trata sobre los telescopios"
Dijkstra
Re:lo mas probable es que...
(Puntos:1)( http://aparatos.blogspot.com/ | Última bitácora: Miércoles, 22 Julio de 2009, 06:44h )
Re:lo mas probable es que...
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
Re:lo mas probable es que...
(Puntos:2)( http://www.skuark.com/ | Última bitácora: Martes, 16 Diciembre de 2008, 00:33h )
skuark [skuark.com]
Re:lo mas probable es que...
(Puntos:4, Inspirado)( http://appfluence.com/priority_matrix_windows_detailed | Última bitácora: Domingo, 31 Julio de 2011, 16:58h )
Re:lo mas probable es que...
(Puntos:1)Un Ingeniero en Informática siempre sabrá más en informática que alguien que no haya estudiado la carrera.
Re:lo mas probable es que...
(Puntos:2)( http://appfluence.com/priority_matrix_windows_detailed | Última bitácora: Domingo, 31 Julio de 2011, 16:58h )
Re:lo mas probable es que...
(Puntos:1)Si quitamos arquitectura ya podemos afirmar rotundamente que informática no es ingeniería
Re:Depende.
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
Vamos, que estoy de acuerdo contigo, hay muchos tipos de programas en el mundo, y cada uno requiere conocimientos diferentes.
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
Re:Depende.
(Puntos:2)Re:Depende.
(Puntos:2, Interesante)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
¿Seguro que para eso no hay APIs? ¿Seguro que no puedes encargarle a alguien (ej: un matemático) que te haga los cálculos, y sólo mandarle al currito de turno picar el código correspondiente? ¿O serás menos informático por ello?
Me parece que hay ahí mucha costumbre de "hacerlo todo uno mismo", ignorando a los que deberían saber más que tú.
Re:Depende.
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
Re:Depende.
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
Re:Depende.
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
Re:Depende.
(Puntos:2, Inspirado)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
Precisamente. Tienes que saber qué órdenes hace falta dar, y saber dónde y cómo encajan los resultados dentro de tu parte del proyecto. Cosa que ni el pica-códigos, ni el matemático, ni tu jefe necesitan saber.
Re:Depende.
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
No sabía que se enseñaran en robótica, aún no he llegado a eso...
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
Sólo sé lambda calculus de hace 50 años.
(Puntos:1, Interesante)Saber por qué se estudia
(Puntos:3, Interesante)( Última bitácora: Jueves, 11 Febrero de 2010, 20:05h )
Por otro lado, siempre me pareció bastante absurdo el aprenderse de memoria demostraciones de teoremas y fórmulas matemáticas.
Y respecto a las "matemáticas para programar", supongo que dependerá en gran parte de qué estés programando. No será lo mismo programar un simulador de construcción que una aplicación de gestión, digo yo.
Re:Saber por qué se estudia
(Puntos:2)( http://guxlightyear.blogspot.com/ | Última bitácora: Miércoles, 28 Octubre de 2009, 21:10h )
En esa dirección en la Ingeniería Informática de la Universidad de Alcalá de Henares tenemos una asignatura llamada Introducción a la informática [cc.uah.es] que se da durante la primera semana de clase del primer cuatrimestre de la carrera a jornada continua. Básicamente se dan 3 horas para cada uno de los 12 temas de los que se supone se compone la carrera (como Programación, Sistemas Operativos, Ingeniería del Software, Matemáticas...) en las que se hace incapié a modo de culturilla general en qué consiste cada cosa y porqué es necesario estudiarlo en la carrera.
El problema, es que hay algunos bloques que no tienen mucho sentido si no tienes una idea "profunda" de otros. Por ejemplo, cuando me dieron esa asignatura, yo, que apenas había programado 4 gilipoyeces en Visual Basic y Lingo, no le vi la utilidad a la Ingeniería del Software.
El caso es que, si se da bien esa asignatura, proporciona a los alumnos una visión general de la carrera que viene muy bien más tarde.
Hasta el infinito y más allá! [blogspot.com]
Re:Saber por qué se estudia
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
¿Qué es una cosa "básica", demostrar el teorema de Fermat?
En informática lo que más se usa es álgebra y lógica; el resto puedes pasarte toda la vida sin tocarlo.
Claro, todo es bonito aprenderlo para entenderlo, pero yo lo dejaría como un extra, no un requisito. Igual que es bonito aprender a tocar la guitarra para saber cómo se ha echo el sonido de inicio de Windows.
matracas
(Puntos:1)( Última bitácora: Sábado, 29 Septiembre de 2007, 19:36h )
Muchos conceptos matemáticos le surgirán al programador a partir de su experiencia. Por ejemplo, alguien que aprendiera a programar por su cuenta puede llegar a utilizar conceptos o técnicas que se aprenden en lógica, teoría de automátas o grafos sin haberlo estudiado. Esto es porque algunos de estos conceptos pueden surgir naturalmente en una persona.
Esta claro que si se estudia matemáticas antes o en paralelo a la programación, se adquiere una base que evita tener que "descubrir" las cosas por uno mismo. Con esto se gana en eficiencia y se programa mejor.
¿Qué matemáticas estudiar? Yo creo que se debe dar un poco de cada cosa y dejar los estudios en profundidad para asignaturas optativas o especializaciones.
Por ejemplo en grafos, es importante que el estudiante conozca el algoritmo de djisktra, los caminos eulerianos pero no creo que sea necesario adentrarse en la coloración de grafos y en ford-fukerson.
Estadística
(Puntos:4, Interesante)( http://localhost:8080/ )
Además, encuentro que es la rama de las matemáticas más generalista, y en particular para informáticos resulta de utilidad en muy diferentes contextos.
Por ejemplo, a la hora de implementar buscadores de lo que sea (tarea muy habitual en cualquier aplicación, yo me he topado en innumerables ocasiones), es una buena ayuda saber obtener parámetros estadísticos sobre la muestra de objetos en que vas a buscar; o en cualquier aplicación web, a la hora de optimizar el rendimiento, es interesante saber estadísticamente por dónde se mueve el usuario, para optimizar aquello que más se usa y no perder tiempo en lo que no se usa a menudo, etc.
--------
Así habló Zaratustra.
Re:Estadística
(Puntos:2)( http://localhost:8080/ )
O sea que si quieres saber el porcentaje de mejora que supondrá optimizar algo, o el añadir más servidores, no necesitas estadísticas de navegación de los usuarios, o datos estadísticos de los tiempos de respuesta (media, varianza, ...), etc. Si eso se lo tienes que justificar a los de arriba, para que inviertan pasta en más máquinas, o en tiempo para optimizar cosas, o lo que sea, no vayas con datos en la mano, no, vete diciendo que es lo que has pensado, que es el sentido común, etc...
Hombre, si es ChiringuitoSoft S.L., pues perfecto, pero igual si es una intranet usada por miles de personas a diario, te vendrá bien saber algo de estadística para justificar tus argumentos. Al menos cosas como la media, la varianza, etc. Vamos al principio de mi comentario creí haber dejado claro que lo importante no era saber grandes fórmulas, sino manejarse bien en lo básico.
PD: Lo que a tí te parezca o deje de parecer es, llegados a este punto, irrelevante.
--------
Así habló Zaratustra.
Re:Estadística
(Puntos:2)( http://localhost:8080/ )
Suma: 1+1=2 y así sucesivamente.
Multiplicar: 1*2=2, 2*2=4 y así sucesivamente.
Dividir y restar: lo mismo pero con números negativos o con decimales.
Media: sumar todos y dividir por el total.
Ala! ya está, en 13 segundos ya tienes todo lo que se necesita saber de estadística! venga, chaval estás listo para salir al mundo a construir puentes! No pierdas más tiempo!
--------
Así habló Zaratustra.
son importantes
(Puntos:3, Inspirado)( Última bitácora: Jueves, 01 Febrero de 2007, 11:55h )
Al final los que dicen que no sirven para nada son los que no las han estudiado.
Hay muchos campos en que son esenciales, pero sin duda, el mas importante por ser utilizado continuamente es la estadística.
Pues sí
(Puntos:1, Interesante)Re:Pues sí
(Puntos:2)En fin, que las matemáticas están en todas partes, y decir que no sirven para nada simplemente demuestra muchas veces su desconocimiento.
Un saludo
Re:son importantes
(Puntos:1)( http://aparatos.blogspot.com/ | Última bitácora: Miércoles, 22 Julio de 2009, 06:44h )
Matemática básica
(Puntos:2, Interesante)( http://barrapunto.com/ )
Aun recuerdo que en primero de carrera nos lo explicaron así : "¿Haced un programa que sume todos los números del 1 al 1000 es decir 1+2+3...+999+1000" lo más simple es hacer un buble que vaya de uno en uno, cuando terminamos el profesor nos dicjo : "¿Cuando vale 1+1000? ¿y 999+2? ... cuantas parejas de estas hay?" la conclusion era que te podías ahorrar el bucle y hacer
solucion=1001*500;
Obviamente para ciertas operaciones necesitarás hacer integración con dos variables y un montón de cosas más, pero por lo demás, lo que hace falta es alto nivel de matemática básica... Al menos esa es mi opinión.
Un saludo
_____________________________
Mis ladrones [www.sgae.es] favoritos.
Re:Matemática básica
(Puntos:1)Can't stop the signal...
Re:Matemática básica
(Puntos:1)( http://jose.gr/ )
Re:Matemática básica
(Puntos:3, Inspirado)Solución:"te podías ahorrar el bucle y hacer solucion=1001*500"
Nota: 0. Error de concepto. Y no has hecho lo que se pedía.
Pregunta número 2: Modificad el programa anterior para que aplique una operación arbitraria a uno de cada tres de los números del 1 al 1000 y los sume.
Solución:"No me ha dado tiempo a terminarlo porque el primero no se puede modificar para eso"
Nota: 0. Te jodes por listo.
Además de obtener el resultado, hay que hacerlo como quieren que lo saques, la mayoría de las veces adivinándolo. Si piensas y haces las cosas de forma diferente a la mayoría estás jodido, por muy correcta que sea la solución.
Re:Matemática básica
(Puntos:2, Interesante)Re:Matemática básica
(Puntos:1, Inspirado)¿Un proyecto cada mes? Creo que las notas serían desastrosas, aunque algo hay que hacer.
En mi universidad este año en la asignatura de inteligencia artificial de 4º de ing. informática, se les ocurrió la feliz idea de pedir una práctica mucho más difícil de lo habitual que requería conocimientos, no sólo de lo dado en la propia asignatura, sino además otros conocimientos sobre programación que no se enseñaron en ninguna asignatura pero que realmente no tenian mucha dificultad y algunos conocimientos del sistema operativo linux.
Reacción de casi todos los alumnos:
Quejarse porque no saben hacer programas con interfaces gráficas en linux (y no parecen dispuestos a aprenderlo). Ante estas quejas, los profesores dejan la parte de la interfaz gráfica como opcional para subir nota, pero siguen manteniendo todo lo demás.
Resultado tras vencer el plazo de entrega:
Casi todas las prácticas estaban suspensas o no entregadas.
Y lo más triste que es que casi todos tenemos una tecnica de sistemas/gestión.
¿Cómo es posible que esos "ingenieros" técnicos no sólo se quejaran ante la primera cosa que se les pide con alguna dificultad (ya me imagino cuando el jefe les pida cualquier cosa que requiera abrir un libro), sino que además no fueran capaces de hacerla correctamente?
¿Tan mal se han hecho las cosas para que tengan una actitud así ante las dificultades y unos conocimientos tan bajos tras acabar una carrera técnica?
Re:Matemática básica
(Puntos:2)"Haced un programa que obtenga el resultado de sumar todos los números del 1 al 1000, es decir 1+2+3...+999+1000"
Re:Matemática básica
(Puntos:1)( http://barrapunto.com/ )
Solución:"te podías ahorrar el bucle y hacer
solucion=1001*500"
Nota: 0. Error de concepto. Y no has hecho lo que se pedía.
Por qué error de concepto? Acaso no suma el programa los números? Que es sino una multiplicacion? pues una suma de números a fin de cuentas, ahora compara la diferencia :
Para i=0; i solucion = solucion +i;
finPara
imprime solucion
Con esto otro
imprime (1001*500)
Y si lo quieres más general : siendo n el número de elementos : imprime (n+1)*(n/2)
No solo haces lo que se te pide, sino que además, es MUCHO más rápido que lo otro.
_____________________________
Mis ladrones [www.sgae.es] favoritos.
Re:Matemática básica
(Puntos:1, Interesante)Te pide que hagas un programa que sume TODOS los numeros DEL 1 al 1000, si tu haces lo otro, obtienes el mismo resultado pero no has hecho lo que te han pedido, tu has sumado (asumiendo tu argumento de multiplication eq. a suma) 500 veces el numero 1001 (o viceversa). Es mucho mas rapido y da lo mismo?. Si. Es lo que te han pedido?. No. No te han pedido un resultado te han pedido una metodologia. Por eso es un error de concepto.
Re:Matemática básica
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
Una de dos: o nunca has hablado con un cliente, o tu trabajo consiste en picar código, lo cual no tiene nada que ver con una carrera universitaria.
Si un cliente te dice "sumar del 1 al 1000" te pide el resultado, punto. Cómo lo hagas es cosa tuya. Otra cosa sería que te pidiese "sumar del 1 al x", o "sumar del x al y cada z aplicando f(g)".
Pero si sólo sigues órdenes de alguien que ha hablado con el cliente y ha decidido lo que tienes que hacer, entonces sí, tienes toda la razón: lo que te pide es lo que tienes que hacer literalmente, que ya sabrá tu jefe por qué te lo dice (o durará poco como jefe).
Re:Matemática básica
(Puntos:1, Inspirado)Re:Matemática básica
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
Re:Tambien es necesario análisis sintáctico...
(Puntos:1, Interesante)programando
(Puntos:1)( http://tizonsoft.net/ )
Modelado
(Puntos:2)( http://barrapunto.com/ )
Cuando digo modelado me refiero a la capacidad para modelar mediante modelos matemáticos elementos de la vida real: ver qué se puede representar mendiante un número entero (que será una variable entera en el programa), una serie de valores (que serán un vector o una lista), que es un porcentaje (que será un número real), etc. Así como sus relaciones.
Creo que es de las cosas que más le cuesta aprender a los estudiantes
"Si alabaras al César no tendrías que comer alubias" ->"si tú comieras alubias no tendrías que alabar al César"
Discretas.
(Puntos:1, Interesante)
Igualmente absurdo me parece pensar que un informatico debe conocer todas las ramas porque puede tener que utilizarlas. Tambien puedes tener que hacer aplicaciones de cualquier campo de la cienca, y no por ello tienes que conocerlos. ¿Hay que saber administracion de empresas porsi un dia te toca hacer una herramienta de gestion?. Es totalmente estupido.
Hay algunas matematicas que deben dominarse, otras conocerse y otro buen puñado de las que solo debe saberse que existen, por si en un momento dado las necesitas.todas las matemáticas que puedas
(Puntos:1)( http://www.papelitos.net/ )
Soy matemático de carrera e informático de profesión (también programo) y pienso que lo que me han enseñado las matemáticas, principalmente, es a tener un aprendizaje mucho más rápido.
Matemáticas = Abstracción + Resolución
papelitos.net
Re:todas las matemáticas que puedas
(Puntos:2)( http://appfluence.com/priority_matrix_windows_detailed | Última bitácora: Domingo, 31 Julio de 2011, 16:58h )
Re:todas las matemáticas que puedas
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
La informática trata de los flujos de información y de su organización, para lo que la única rama de las matemáticas que es absolutamente imprescindible es la "lógica matemática". Claro, siendo matemático habrás aplicado muchas veces la lógica, pues es imprescindible para las matemáticas, pero lo contrario ya no es tan cierto; no hace falta saber muchas matemáticas para saber aplicar la lógica.
Re:todas las matemáticas que puedas
(Puntos:1)Como ves soy informático (de carrera y profesión) y necesito las matemáticas, no solo la lógica.
P.D Creo que alguna vez me ha hecho falta de cálculo numérico, para aproximar más que nada.
Re:todas las matemáticas que puedas
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
Mientras tanto, las redes neuronales en sí tampoco me parecen tan imprescindibles... pero eso ya sería otro tema.
Re:todas las matemáticas que puedas
(Puntos:2, Inspirado)( http://appfluence.com/priority_matrix_windows_detailed | Última bitácora: Domingo, 31 Julio de 2011, 16:58h )
Re:todas las matemáticas que puedas
(Puntos:1, Inspirado)