Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

Matemáticas para programar

editada por poncho el 18 de Marzo 2006, 17:25h   Printer-friendly   Email story
desde el dept. indoecencias
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.
Mostrar opciones Umbral:
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)
  • Depende.

    (Puntos:4, Interesante)
    por xerakko (22906) el Sábado, 18 Marzo de 2006, 18:24h (#714459)
    Cada programa es una historia diferente...
    • - Si estas programando un juego, necesitaras refrescar tus matrices, la trigonometria...
    • - Si estas haciendo un programa para que optimice los viajes de un camion, necesitaras refrescar el simplex.
    • - Si es un programa de calculo de estructuras, necesitaras las ecuaciones diferenciales
    • ... y así se podria continuar. Es imposible totalmente saber que matematicas se van a necesitar para realizar un programa. Por eso la enseñanza de las matemáticas tiene que ser generalista, para que en el momento que se necesite, uno aprenda el tema ese que le urge.
  • Saber por qué se estudia

    (Puntos:3, Interesante)
    por gothmog (15327) el Sábado, 18 Marzo de 2006, 18:26h (#714460)
    ( Última bitácora: Jueves, 11 Febrero de 2010, 20:05h )
    Me quedo con esa frase que dice que sería interesante una semana de introducción para explicar por qué es necesaria esa asignatura, no sólo para las matemáticas, sino para todas en general. En mi experiencia, muy poquitos profesores se toman la molestia en explicarte por qué se estudia, eres tú dos o tres años más tarde cuando lo ves, si había alguna utilidad.

    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.

    • 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.

      [ Padre ]
    • por pax01 (10710) el Domingo, 19 Marzo de 2006, 15:49h (#714788)
      ( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
      si no sabes ni demostrar cosas basicas, mal, ¿no?

      ¿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.
      [ Padre ]
    • 1 respuesta por debajo de tu umbral de lectura actual.
  • matracas

    (Puntos:1)
    por El comunista (21407) el Sábado, 18 Marzo de 2006, 18:42h (#714468)
    ( Última bitácora: Sábado, 29 Septiembre de 2007, 19:36h )
    La mayor parte de las matemáticas necesarias para escribir programas pequeños o medianos se aprende en el instituto.

    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)
    por afobutu (20358) el Sábado, 18 Marzo de 2006, 18:43h (#714469)
    ( http://localhost:8080/ )
    Saber de estadística creo que es lo más útil que me han aportado a mí las matemáticas. No tanto por saber o no saber fórmulas de covarianzas o autocorrelaciones, sino el poder enfocar de modo estadístico problemas cotidianos, y disponer de soltura y conocimientos para ello.

    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)
      por afobutu (20358) el Sábado, 18 Marzo de 2006, 22:32h (#714582)
      ( http://localhost:8080/ )
      Joer, si es que hay que explicarlo todo, no se puede poner un comentario breve esperando que la inteligencia haga el resto.

      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.
      [ Padre ]
      • Re:Estadística

        (Puntos:2)
        por afobutu (20358) el Domingo, 19 Marzo de 2006, 16:38h (#714815)
        ( http://localhost:8080/ )
        Venga, lecciones rápidas de estadísticas:

        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.
        [ Padre ]
      • 2 respuestas por debajo de tu umbral de lectura actual.
    • 1 respuesta por debajo de tu umbral de lectura actual.
  • son importantes

    (Puntos:3, Inspirado)
    por miguser (18044) el Sábado, 18 Marzo de 2006, 19:37h (#714493)
    ( Ú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)
      por pobrecito hablador el Sábado, 18 Marzo de 2006, 21:00h (#714537)
      Y las verdad es que una buena base matemática viene muy bien para cualquier cosa, desde hacer la compra (ríanse, pero muchos alumnos de la E.S.O. no le ven utilidad para eso y mucho menos tienen ganas de aplicarlas), pasando por la física y todas las ramas de la ingeniería, por programar, y acabando por dibujar (el dibujo técnico es por entero matemáticas y para el artístico vienen mucho mejor de lo que muchos podrían imaginar). Pero bueno, aquel que no se dé cuenta, pues peor para él, que es quien saldrá perdiendo más.
      [ Padre ]
      • Re:Pues sí

        (Puntos:2)
        por triturator (14194) el Sábado, 18 Marzo de 2006, 23:19h (#714600)
        Por no hablar de lo útiles que son a la hora de pedir una hipoteca, o saber qué demonios es el TAE de una cuenta bancaria y por qué las cuentas "milagro" estas que te dan dinero en 24h son un timo. También van bien para darse cuenta de que si mi sueldo sube un 2% y el IPC un 4%, en realidad estoy ganando menos dinero, o que probabilísticamente es mucho más ventajoso comprar cupones de la ONCE que jugar a la primitiva.

        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
        [ Padre ]
    • Re:son importantes

      (Puntos:1)
      por Quin (13945) el Domingo, 19 Marzo de 2006, 07:43h (#714676)
      ( http://aparatos.blogspot.com/ | Última bitácora: Miércoles, 22 Julio de 2009, 06:44h )
      ¿Estás seguro de que es estúpido jugar a la lotería? Hay gente que entiende las matemáticas y argumentos [plover.com] para decir que no. Cita:


      I think most people understand this [que jugarte un dolar a la lotería no es una tontería], but nevertheless you still hear them say a lot of dumb stuff about risk. For example, many people like to say that the lottery is a stupidity tax on people who don't understand basic arithmetic, and that nobody would play the lottery unless they were very stupid, because it's trivial to see that the expected return is very poor.
      [ Padre ]
    • 2 respuestas por debajo de tu umbral de lectura actual.
  • Matemática básica

    (Puntos:2, Interesante)
    por xram (22351) el Sábado, 18 Marzo de 2006, 19:39h (#714495)
    ( http://barrapunto.com/ )
    En mi opinión, todo programador debe tener matemática básica, pero eso si a un alto nivel parece una chorrada pero no lo es, un alto nivel de matemática básica puede proporcionar maravillas realmente.

    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.
    • por Zanahoria (20830) el Sábado, 18 Marzo de 2006, 19:54h (#714503)
      Esa serie es atribuida en una anecdota bastante famosa a un Carl Friedrich Gauss de diez años. Se ve que el profesor quería castigar a la clase, o ganar tiempo para fumarse un cigarro, y el chaval se paso de listo.
      --

      Can't stop the signal...
      [ Padre ]
    • Re:Matemática básica

      (Puntos:3, Inspirado)
      por pobrecito hablador el Sábado, 18 Marzo de 2006, 20:18h (#714521)
      "Haced un programa que sume todos los números del 1 al 1000 es decir 1+2+3...+999+1000"

      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.

      [ Padre ]
      • Re:Matemática básica

        (Puntos:2, Interesante)
        por pobrecito hablador el Sábado, 18 Marzo de 2006, 20:37h (#714529)
        Prueba palpable de que la enseñanza en españa da asco y de que teoria sabemos la ostia de ella. Pero pruebas reales en la universidad 0. En lugar de un proyecto de fin de carrera tendria que haber un proyecto al mes (un proyecto...no una practica de mierda que no motiva a nadie).
        [ Padre ]
        • Re:Matemática básica

          (Puntos:1, Inspirado)
          por pobrecito hablador el Sábado, 18 Marzo de 2006, 22:26h (#714580)
          Se me olvido poner las etiquetas HTML para los saltos de línea.

          ¿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?
          [ Padre ]
        • 2 respuestas por debajo de tu umbral de lectura actual.
      • por josuealcalde (17919) el Sábado, 18 Marzo de 2006, 22:09h (#714569)
        Si se cambia el enunciado:

        "Haced un programa que obtenga el resultado de sumar todos los números del 1 al 1000, es decir 1+2+3...+999+1000"

        [ Padre ]
      • por xram (22351) el Sábado, 18 Marzo de 2006, 23:19h (#714599)
        ( http://barrapunto.com/ )
        "Haced un programa que sume todos los números del 1 al 1000 es decir 1+2+3...+999+1000"
        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.
        [ Padre ]
        • Re:Matemática básica

          (Puntos:1, Interesante)
          por pobrecito hablador el Sábado, 18 Marzo de 2006, 23:55h (#714607)
          NO.

          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.
          [ Padre ]
      • por pax01 (10710) el Domingo, 19 Marzo de 2006, 16:02h (#714795)
        ( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
        Además de obtener el resultado, hay que hacerlo como quieren que lo saques

        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).
        [ Padre ]
        • Re:Matemática básica

          (Puntos:1, Inspirado)
          por pobrecito hablador el Domingo, 19 Marzo de 2006, 16:55h (#714820)
          Me da la sensacion de que el que trabaja picando codigo eres tu. Si el cliente te dice "sumar del 1 al 1000" y a ti se te ocurre la idea de hacer la multiplicacion, mejor asegurate de preguntarle antes si lo unico que le interesa es el resultado o no. Porque como no lo hagas te vas a llevar unas sorpresas ...
          [ Padre ]
    • por pax01 (10710) el Domingo, 19 Marzo de 2006, 16:04h (#714797)
      ( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
      Esa "matemática básica" de la que hablas se llama álgebra.
      [ Padre ]
    • por pobrecito hablador el Sábado, 18 Marzo de 2006, 20:18h (#714522)
      Pero sabiendo hasta que numero debes sumar (n), puedes programar la operación n*(n+1)/2, y el ahorro de tiempo puede ser significativo...
      [ Padre ]
    • 2 respuestas por debajo de tu umbral de lectura actual.
  • programando

    (Puntos:1)
    por dfgh (19933) el Sábado, 18 Marzo de 2006, 19:53h (#714502)
    ( http://tizonsoft.net/ )
    si estás haciendo el matlab, pues la suma.
  • Modelado

    (Puntos:2)
    por El Pantera (19616) el Sábado, 18 Marzo de 2006, 21:27h (#714551)
    ( http://barrapunto.com/ )
    No es exactamente una rama de las matemáticas, pero sí que creo que es de interés.

    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)
    por pobrecito hablador el Sábado, 18 Marzo de 2006, 21:45h (#714559)
    Como bien señala el articulo, generalizando, el 95% de las matematicas que se emplean en la informatica son las discretas. Seguidas de lejos poe el algebra, y de muchisimo mas lejos por el calculo. Siempre me han parecido pateticas las argumentaciones sobre la "base fundamental" de los ingenieros en matematicas. Y se basan en la idea preconcebida de lo que es un ingeniero, mas que en la necesidad de la herramienta.
    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.
  • por fvelayos (24049) el Sábado, 18 Marzo de 2006, 23:09h (#714594)
    ( http://www.papelitos.net/ )
    Lo importante de las matemáticas no es la materia, si no lo que realmente te enseña: saber abstraerte y resolver el problema.
    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
  • 4 respuestas por debajo de tu umbral de lectura actual.
(1) | 2 (Barrapunto Overload: CommentLimit 50)