Matemática

Texto preparado especialmente para el curso de Matemática I del Profesorado de Informática.

Echenique, Patricia - Tenenbaum, Saúl - Echenique, Paula

Resumen:

¿Por qué incluir un lenguaje de programación en un curso de matemática? ¿Por qué un lenguaje de programación funcional? ¿Por qué Haskell? “Hay una razón fundamental para el estudio integrado de matemática y programación: los principios y técnicas para la resolución de problemas en una y otra disciplina, se aplican en cualquiera de ellas. Esto sugiere que existe un conjunto de ideas que subyace y establece un punto de contacto entre el comportamiento de los programas y el pensamiento matemático, y que influencian el modo de pensar humano cuando se trata de resolver un problema utilizando un computador. Este conjunto de ideas constituye un proceso de pensamiento llamado resolución algorítmica de problemas. En todas las épocas, las nuevas demandas que impone la tecnología, condicionan el desarrollo de viejas teorías, que superándose a sí mismas, dan lugar a nuevos y profundos problemas y exigen nuevas formas e ideas para lograr resolverlos. En las sociedades antiguas las condiciones necesarias para pasar a la matemática superior, no existían ni podían existir; las circunstancias adecuadas surgieron con el desarrollo de las ciencias naturales, condicionado a su vez por los avances de la tecnología en los siglos XVI y XVII. El componente educativo es parte vital de este proceso; sin él no hay transmisión de conocimiento, ni posibilidades de supervivencia. El sistema educativo debe acompañar y adecuarse permanentemente al avance teórico y sus aplicaciones en los diferentes campos científicos y tecnológicos. En los últimos años, el desarrollo tecnológico ha puesto a nuestra disposición herramientas que permiten realizar cómputos (cálculos) en forma automática, esto es, nos permiten aplicar distintas instancias de un algoritmo para resolver diferentes problemas. Esto no significa de ninguna manera que las nuevas herramientas simplifican la tarea ya sea del docente o del estudiante, sino que muy por el contrario nos enfrentan a un desafío sumamente exigente: el de investigar cómo enseñar y aprender a resolver nuevos problemas. Por ejemplo, el algoritmo de unión de conjuntos, se enseña a través de su aplicación a conjuntos particulares. Contando con un software que realice los cómputos necesarios para obtener la unión de conjuntos, pierde sentido que los estudiantes continúen realizando la misma tarea. Lo interesante es que el estudiante estudie el algoritmo genérico representado por la operación unión y aprenda a construirlo mediante un programa. Podemos establecer un paralelismo entre esta situación y el uso de las calculadoras en los cursos de la enseñanza primaria y media: son herramientas que no enseñan a sumar o a dividir, pero que resultan muy poderosas para sumar y/o dividir, cuando el objeto de estudio es la esencia de la aritmética y no la herramienta en sí. Análogamente, tener un computador para ejecutar algoritmos, o para mostrar como esos algoritmos funcionan, es una cosa, ser capaz de enfrentarse con la esencia de esos conceptos, es otra. Tener clara esta distinción es especialmente importante hoy día dado que el énfasis exagerado en las herramientas informáticas puede convertirlas en objeto de estudio en sí mismas (plan ceibal). La noción de algoritmo está presente en cursos tradicionales tanto de matemática como de computación; por ejemplo, se estudian el algoritmo de Euclides, el algoritmo de Ruffini, el algoritmo de Dijkstra, etc. En los cursos tradicionales de matemática se estudian funciones sin relacionarlas con el concepto de algoritmo y mucho menos con el concepto de programa, el cual está restringido a los cursos de computación. En los cursos modernos de matemática, que integran un lenguaje de programación, el concepto de algoritmo se estudia como función y como programa y los estudiantes aprenden el concepto matemático a través de su construcción en la computadora. Esto representa un salto cualitativo importante desde el punto de vista del aprendizaje y sus aplicaciones: el estudiante utiliza un manipulador simbólico (el computador) en un contexto conceptual apropiado (un curso de matemática). Los lenguajes funcionales han sido diseñados teniendo en cuenta el acercamiento entre matemática y programación, lo cual hace que la sintaxis del lenguaje sea muy similar a la del formalismo matemático y que la propiedad de transparencia referencial de las expresiones matemáticas sea conservada en las expresiones del lenguaje de programación. Esto los hace muy adecuados para su introducción en cursos de matemática, ya que no es necesario dedicar demasiado tiempo al aprendizaje de una sintaxis muy distinta a la del lenguaje matemático. Los lenguajes funcionales modernos se enmarcan en dos escuelas diferenciadas por la implementación de las estrategias de evaluación de expresiones: estricta y perezosa. Haskell pertenece a la segunda, que permite entre otras cosas, trabajar con objetos infinitos, lo que lo convierte en un lenguaje excelente para el trabajo con Matemática Discreta. Haskell sintetiza además las funcionalidades de los distintos lenguajes funcionales en su evolución hasta finales de la década de los 80 en que la comunidad de programación funcional decidió su creación y desarrollo, que no ha cesado desde entonces, convirtiéndolo en un lenguaje funcional de uso extendido tanto en la industria como en el ámbito educativo”. Dra. Sylvia Da Rosa


Detalles Bibliográficos
2017
Enseñanza de las matemáticas
Enseñanza de la informática
Nuevas tecnologías
Lenguaje de programación
Español
ANEP. Consejo de Formación en Educación
RIdAA-CFE
http://repositorio.cfe.edu.uy/handle/123456789/240
Acceso abierto
cc by-nc-nd 4.0
Resumen:
Sumario:¿Por qué incluir un lenguaje de programación en un curso de matemática? ¿Por qué un lenguaje de programación funcional? ¿Por qué Haskell? “Hay una razón fundamental para el estudio integrado de matemática y programación: los principios y técnicas para la resolución de problemas en una y otra disciplina, se aplican en cualquiera de ellas. Esto sugiere que existe un conjunto de ideas que subyace y establece un punto de contacto entre el comportamiento de los programas y el pensamiento matemático, y que influencian el modo de pensar humano cuando se trata de resolver un problema utilizando un computador. Este conjunto de ideas constituye un proceso de pensamiento llamado resolución algorítmica de problemas. En todas las épocas, las nuevas demandas que impone la tecnología, condicionan el desarrollo de viejas teorías, que superándose a sí mismas, dan lugar a nuevos y profundos problemas y exigen nuevas formas e ideas para lograr resolverlos. En las sociedades antiguas las condiciones necesarias para pasar a la matemática superior, no existían ni podían existir; las circunstancias adecuadas surgieron con el desarrollo de las ciencias naturales, condicionado a su vez por los avances de la tecnología en los siglos XVI y XVII. El componente educativo es parte vital de este proceso; sin él no hay transmisión de conocimiento, ni posibilidades de supervivencia. El sistema educativo debe acompañar y adecuarse permanentemente al avance teórico y sus aplicaciones en los diferentes campos científicos y tecnológicos. En los últimos años, el desarrollo tecnológico ha puesto a nuestra disposición herramientas que permiten realizar cómputos (cálculos) en forma automática, esto es, nos permiten aplicar distintas instancias de un algoritmo para resolver diferentes problemas. Esto no significa de ninguna manera que las nuevas herramientas simplifican la tarea ya sea del docente o del estudiante, sino que muy por el contrario nos enfrentan a un desafío sumamente exigente: el de investigar cómo enseñar y aprender a resolver nuevos problemas. Por ejemplo, el algoritmo de unión de conjuntos, se enseña a través de su aplicación a conjuntos particulares. Contando con un software que realice los cómputos necesarios para obtener la unión de conjuntos, pierde sentido que los estudiantes continúen realizando la misma tarea. Lo interesante es que el estudiante estudie el algoritmo genérico representado por la operación unión y aprenda a construirlo mediante un programa. Podemos establecer un paralelismo entre esta situación y el uso de las calculadoras en los cursos de la enseñanza primaria y media: son herramientas que no enseñan a sumar o a dividir, pero que resultan muy poderosas para sumar y/o dividir, cuando el objeto de estudio es la esencia de la aritmética y no la herramienta en sí. Análogamente, tener un computador para ejecutar algoritmos, o para mostrar como esos algoritmos funcionan, es una cosa, ser capaz de enfrentarse con la esencia de esos conceptos, es otra. Tener clara esta distinción es especialmente importante hoy día dado que el énfasis exagerado en las herramientas informáticas puede convertirlas en objeto de estudio en sí mismas (plan ceibal). La noción de algoritmo está presente en cursos tradicionales tanto de matemática como de computación; por ejemplo, se estudian el algoritmo de Euclides, el algoritmo de Ruffini, el algoritmo de Dijkstra, etc. En los cursos tradicionales de matemática se estudian funciones sin relacionarlas con el concepto de algoritmo y mucho menos con el concepto de programa, el cual está restringido a los cursos de computación. En los cursos modernos de matemática, que integran un lenguaje de programación, el concepto de algoritmo se estudia como función y como programa y los estudiantes aprenden el concepto matemático a través de su construcción en la computadora. Esto representa un salto cualitativo importante desde el punto de vista del aprendizaje y sus aplicaciones: el estudiante utiliza un manipulador simbólico (el computador) en un contexto conceptual apropiado (un curso de matemática). Los lenguajes funcionales han sido diseñados teniendo en cuenta el acercamiento entre matemática y programación, lo cual hace que la sintaxis del lenguaje sea muy similar a la del formalismo matemático y que la propiedad de transparencia referencial de las expresiones matemáticas sea conservada en las expresiones del lenguaje de programación. Esto los hace muy adecuados para su introducción en cursos de matemática, ya que no es necesario dedicar demasiado tiempo al aprendizaje de una sintaxis muy distinta a la del lenguaje matemático. Los lenguajes funcionales modernos se enmarcan en dos escuelas diferenciadas por la implementación de las estrategias de evaluación de expresiones: estricta y perezosa. Haskell pertenece a la segunda, que permite entre otras cosas, trabajar con objetos infinitos, lo que lo convierte en un lenguaje excelente para el trabajo con Matemática Discreta. Haskell sintetiza además las funcionalidades de los distintos lenguajes funcionales en su evolución hasta finales de la década de los 80 en que la comunidad de programación funcional decidió su creación y desarrollo, que no ha cesado desde entonces, convirtiéndolo en un lenguaje funcional de uso extendido tanto en la industria como en el ámbito educativo”. Dra. Sylvia Da Rosa