Última actualización: 19/04/2024


Curso Académico: 2024/2025

Programación Funcional
(18283)
Grado en Matemática Aplicada y Computación (Plan: 433 - Estudio: 362)


Coordinador/a: FERNANDEZ ARREGUI, SUSANA

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
Programación (Curso: 1/ Cuatrimestre: 1) Técnicas de Programación (Curso: 1/Cuatrimestre: 2)
Objetivos
Adquirir los resultados del aprendizaje y las competencias especificados en la Memoria Verifica del título
Competencias y resultados del aprendizaje
CB1. Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio. CB2. Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio. CB3. Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética. CB4. Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado. CB5. Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía. CG1. Que los estudiantes sean capaces de demostrar conocimiento y comprensión de conceptos de matemáticas, estadística y computación y aplicarlos a la resolución de problemas en ciencia e ingeniería con capacidad de análisis y síntesis. CG3. Que los estudiantes puedan resolver computacionalmente con ayuda de las herramientas informáticas más avanzadas los modelos matemáticos que surjan de aplicaciones en la ciencia, la ingeniería, la economía y otras ciencias sociales. CG4. Que los estudiantes demuestren que pueden analizar e interpretar las soluciones obtenidas con ayuda de la informática de los problemas asociados a modelos matemáticos del mundo real, discriminando los comportamientos más relevantes para cada aplicación. CG6. Que los estudiantes sepan buscar y utilizar los recursos bibliográficos, en soporte físico o digital, necesarios para plantear y resolver matemática y computacionalmente problemas aplicados que surjan en entornos nuevos, poco conocidos o con información insuficiente. CE11. Que los estudiantes hayan demostrado que conocen los conceptos de programación imperativa, genérica, orientada a objetos y funcional y distinguir los lenguajes de programación interpretados, basados en máquina virtual y nativos y el impacto que tienen sobre el rendimiento de algoritmos y aplicaciones. CE21. Que los estudiantes hayan demostrado que comprenden la influencia y utilidad de los fundamentos matemáticos utilizados en los lenguajes de programación funcional y el impacto de la aplicación práctica de dichos lenguajes. RA1. Haber adquirido conocimientos avanzados y demostrado una comprensión de los aspectos teóricos y prácticos y de la metodología de trabajo en el campo de la matemática aplicada y computación con una profundidad que llegue hasta la vanguardia del  conocimiento. RA3. Tener la capacidad de recopilar e interpretar datos e informaciones sobre las que fundamentar sus conclusiones incluyendo, cuando sea preciso y pertinente, la reflexión sobre asuntos de índole social, científica o ética en el ámbito de su campo de estudio. RA4. Ser capaces de desenvolverse en situaciones complejas o que requieran el desarrollo de nuevas soluciones tanto en el ámbito académico como laboral o profesional dentro de su campo de estudio. RA5. Saber comunicar a todo tipo de audiencias (especializadas o no) de manera clara y precisa, conocimientos, metodologías, ideas, problemas y soluciones en el ámbito de su campo de estudio. RA6. Ser capaces de identificar sus propias necesidades formativas en su campo de estudio y entorno laboral o profesional y de organizar su propio aprendizaje con un alto grado de autonomía en todo tipo de contextos (estructurados o no).
Descripción de contenidos: Programa
1.- Paradigma de programación funcional. 2.- Funciones y reducción de expresiones. 3.- Programación funcional y sistemas de tipos. 4.- Clases de tipos. 5.- Funciones de orden superior. 6.- Programación monádica. 7.- Isomorfismo Curry-Howard
Actividades formativas, metodología a utilizar y régimen de tutorías
AF1.CLASES TEÓRICO-PRÁCTICAS. Conocimientos que deben adquirir los alumnos.Estos recibirán las notas de clase y tendrán textos básicos de referencia para facilitar el seguimiento de las clases y el desarrollo del trabajo posterior.Se resolverán ejercicios, prácticas problemas por parte del alumno y se realizarán talleres y prueba de evaluación para adquirirlas capacidades necesarias.Para asignaturas de 6 ECTS se dedicarán 44 horas como norma general con un 100% de presencialidad.(excepto aquellas que no tengan examen que dedicarán 48 horas) AF2.TUTORÍAS. Asistencia individualizada (tutorías individuales) o en grupo (tutorías colectivas) a los estudiantes por parte del profesor. Para asignaturas de 6 créditos se dedicarán 4 horas con un 100% de presencialidad. AF3.TRABAJO INDIVIDUAL O EN GRUPO DEL ESTUDIANTE. Para asignaturas de 6 créditos se dedicarán 98 horas 0% presencialidad. AF8.TALLERES Y LABORATORIOS. Para asignaturas de 3 créditos se dedicarán 4 horas con un 100% de presencialidad. Para las asignaturas de 6 créditos se dedicarán 8 horas con un 100% de presencialidad. MD1.CLASE TEORÍA. Exposiciones en clase del profesor con soporte de medios informáticos y audiovisuales, en las que se desarrollan los conceptos principales de la materia y se proporcionan los materiales y la bibliografía para complementar el aprendizaje de los alumnos. MD2.PRÁCTICAS. Resolución de casos prácticos, problemas, etc. planteados por el profesor de manera individual o en grupo. MD3.TUTORÍAS. Asistencia individualizada (tutorías individuales) o en grupo (tutorías colectivas) a los estudiantes por parte del profesor. Para asignaturas de 6 créditos se dedicarán 4 horas con un 100% de presencialidad. MD6.PRÁCTICAS DE LABORATORIO. Docencia aplicada/experimental a talleres y laboratorios bajo la supervisión de un tutor.
Sistema de evaluación
  • Peso porcentual del Examen Final 40
  • Peso porcentual del resto de la evaluación 60

Calendario de Evaluación Continua


Convocatoria extraordinaria: normativa
Bibliografía básica
  • Graham Hutton. Programming in Haskell (2nd edition). Cambridge University Press. 2016
  • Richar Bird. Introduction to Functional Programming using Haskell, Second edition. Prentice-Hall. 1998
  • Richard Bird and Philip Wadler. Introduction to Functional Programming. Prentice-Hall . 1988
Bibliografía complementaria
  • Bartosz Milewski. Category Theory for Programmers. Edited by Igal Tabachnik.
  • Miran Lipovaca. Learn You a Haskell for Great Good!: A Beginner's Guide . No Starch Press. 2011

El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.