Matemáticas
Grado y Doble Grado. Curso 2024/2025.
PROGRAMACIÓN DECLARATIVA - 800618
Curso Académico 2024-25
Datos Generales
- Plan de estudios: 0803 - GRADO EN MATEMÁTICAS (2009-10)
- Carácter: Optativa
- ECTS: 6.0
SINOPSIS
COMPETENCIAS
Generales
Entender los conceptos básicos de la programación funcional. (CG3 del grado)
Entender los conceptos básicos de la programación lógica. (CG3 del grado)
Entender los conceptos básicos de la programación lógica. (CG3 del grado)
Transversales
Todas las correspondientes al grado
Específicas
Desarrollar programas funcionales sencillos apreciando la potencia de abstracción que facilita el paradigma funcional. (CE5 del grado)
Desarrollar programas lógicos sencillos apreciando la potencia de abstracción que facilita el paradigma lógico. (CE5 del grado)
Desarrollar programas lógicos sencillos apreciando la potencia de abstracción que facilita el paradigma lógico. (CE5 del grado)
ACTIVIDADES DOCENTES
Clases teóricas
Clases teóricas magistrales
Seminarios
Las actividades de seminario se integrarán dentro de las clases prácticas e incluirán: resolución de dudas sobre ejercicios y prácticas, presentación de ejercicios por parte de los alumnos, realización de alguna prueba de control con fines de orientación.
Clases prácticas
Clases de resolución de ejercicios y supuestos prácticos
Laboratorios
Las prácticas de laboratorio incluirán sesiones dirigidas dentro del horario lectivo y una práctica de mayor envergadura, que deberá realizarse principalmente fuera del horario lectivo.
Presenciales
2,4
No presenciales
3,6
Semestre
7
Breve descriptor:
El curso introduce al estudiante en los lenguajes de programación funcional y programación lógica, como representantes fundamentales del paradigma de programación declarativa.
Requisitos
Se recomienda haber cursado las asignaturas de: Informática.
Objetivos
Conocer los principios básicos de los lenguajes de programación funcional y programación lógica, como representantes fundamentales del paradigma de programación declarativa.
Apreciar las ventajas del alto nivel de abstracción proporcionado por los lenguajes de programación declarativa.
Diseñar soluciones declarativas a problemas computacionales de tamaño medio.
Apreciar las ventajas del alto nivel de abstracción proporcionado por los lenguajes de programación declarativa.
Diseñar soluciones declarativas a problemas computacionales de tamaño medio.
Contenido
Elementos básicos de la programación funcional: funciones y expresiones, tipos, orden superior, lambda abstracciones.
Ejecución de programas funcionales: evaluación impaciente y perezosa, ajuste de patrones.
Tipos de datos: tipos definidos, polimórficos, clases de tipos.
Técnicas básicas de programación funcional.
Elementos básicos de la programación lógica: relaciones, términos, hechos, cláusulas, variables lógicas.
Ejecución de programas lógicos: unificación, resolución, espacio de búsqueda.
Programación lógica con datos estructurados.
Programación en lenguaje Prolog: control, predicados metalógicos.
Programación multiparadigma.
Ejecución de programas funcionales: evaluación impaciente y perezosa, ajuste de patrones.
Tipos de datos: tipos definidos, polimórficos, clases de tipos.
Técnicas básicas de programación funcional.
Elementos básicos de la programación lógica: relaciones, términos, hechos, cláusulas, variables lógicas.
Ejecución de programas lógicos: unificación, resolución, espacio de búsqueda.
Programación lógica con datos estructurados.
Programación en lenguaje Prolog: control, predicados metalógicos.
Programación multiparadigma.
Evaluación
La calificación, en la convocatoria ordinaria, se basará en las siguientes actividades y pruebas a realizar por el estudiante. Se dará una fecha para la elección de la opción de evaluación para todo el curso:
Opción 1:
A. Un examen parcial: 15%
B. Examen final: 70%
C. Realización y defensa de un trabajo práctico asignado: 15%
Opción 2:
A. Un examen parcial: 15%
B. Examen final: 85%
La calificación, en la convocatoria extraordinaria, se basará en las siguientes actividades y pruebas a realizar según la opción que eligiera el estudiante a lo largo del curso.
Opción 1:
B. Examen final: 85%
C. Realización y defensa de un trabajo práctico asignado: 15%
Opción 2:
B. Examen final: 100%
Si el estudiante ha elegido durante el curso la opción 1 para la convocatoria ordinaria y ha aprobado la práctica, podrá optar a la opción 1 de evaluación en convocatoria extraordinaria.
Si el estudiante ha elegido durante el curso la opción 2 para la convocatoria ordinaria o la opción 1 pero tiene suspensa la práctica, solamente podrá optar por la opción 2 en la convocatoria extraordinaria.
Opción 1:
A. Un examen parcial: 15%
B. Examen final: 70%
C. Realización y defensa de un trabajo práctico asignado: 15%
Opción 2:
A. Un examen parcial: 15%
B. Examen final: 85%
La calificación, en la convocatoria extraordinaria, se basará en las siguientes actividades y pruebas a realizar según la opción que eligiera el estudiante a lo largo del curso.
Opción 1:
B. Examen final: 85%
C. Realización y defensa de un trabajo práctico asignado: 15%
Opción 2:
B. Examen final: 100%
Si el estudiante ha elegido durante el curso la opción 1 para la convocatoria ordinaria y ha aprobado la práctica, podrá optar a la opción 1 de evaluación en convocatoria extraordinaria.
Si el estudiante ha elegido durante el curso la opción 2 para la convocatoria ordinaria o la opción 1 pero tiene suspensa la práctica, solamente podrá optar por la opción 2 en la convocatoria extraordinaria.
Bibliografía
Libros de programación funcional
* Graham Hutton; Programming in Haskell; Cambridge University Press, 2007;
* Alejandro Serrano Mena; Beginning Haskell: A Project-Based Approach; Apress, 2014;
* R. Bird; Introducción a la Programación Funcional con Haskell; Segunda edición, Prentice Hall, 2000;
* B.C. Ruiz, F. Gutiérrez, P. Guerrero, J.E. Gallardo; Razonando con Haskell: un curso sobre programación funcional; Thomson, 2004;
Libros de programación lógica
* L.Sterling, E.Shapiro; The Art of Prolog. Advanced Programming Techniques; The MIT Press, 2ª Edición, 1994;
* P. Julián, M. Alpuente; Programación Lógica, Teoría y Práctica; Pearson, 2007;
* W.F. Clocksin, C.S. Mellish; Programming in Prolog Using the ISO Standard; Springer Verlag, 5ª edición, 2003;
* P. Blackburn, J, Bos, K. Striegnitz; Learn Prolog Now!; College Publications, 2006. (Existe versión on-line);
* Graham Hutton; Programming in Haskell; Cambridge University Press, 2007;
* Alejandro Serrano Mena; Beginning Haskell: A Project-Based Approach; Apress, 2014;
* R. Bird; Introducción a la Programación Funcional con Haskell; Segunda edición, Prentice Hall, 2000;
* B.C. Ruiz, F. Gutiérrez, P. Guerrero, J.E. Gallardo; Razonando con Haskell: un curso sobre programación funcional; Thomson, 2004;
Libros de programación lógica
* L.Sterling, E.Shapiro; The Art of Prolog. Advanced Programming Techniques; The MIT Press, 2ª Edición, 1994;
* P. Julián, M. Alpuente; Programación Lógica, Teoría y Práctica; Pearson, 2007;
* W.F. Clocksin, C.S. Mellish; Programming in Prolog Using the ISO Standard; Springer Verlag, 5ª edición, 2003;
* P. Blackburn, J, Bos, K. Striegnitz; Learn Prolog Now!; College Publications, 2006. (Existe versión on-line);
Otra información relevante
Web sobre la parte de programación funcional: http://antares.sip.ucm.es:8180/pf/
Estructura
Módulos | Materias |
---|---|
CONTENIDOS AVANZADOS DE CIENCIAS DE LA COMPUTACIÓN | PARADIGMAS DE PROGRAMACIÓN |
Grupos
Clases teóricas | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Grupo único | 09/09/2024 - 13/12/2024 | LUNES 13:00 - 14:00 | S-106 | NATALIA LOPEZ BARQUILLA |
MARTES 13:00 - 14:00 | S-106 | NATALIA LOPEZ BARQUILLA |
Clases aula de informática | ||||
---|---|---|---|---|
Grupo | Periodos | Horarios | Aula | Profesor |
Subgrupo U1 | 09/09/2024 - 13/12/2024 | MIÉRCOLES 09:00 - 10:00 | INF4 Aula de Informática | NATALIA LOPEZ BARQUILLA |
MIÉRCOLES 10:00 - 11:00 | INF4 Aula de Informática | NATALIA LOPEZ BARQUILLA | ||
Subgrupo U2 | 09/09/2024 - 13/12/2024 | MIÉRCOLES 12:00 - 13:00 | INF3 Aula de Informática | NATALIA LOPEZ BARQUILLA |
MIÉRCOLES 13:00 - 14:00 | INF3 Aula de Informática | NATALIA LOPEZ BARQUILLA |