Objetivo General:
Este curso introduce los paradigmas de programación funcional y lógica, desarrollando en los estudiantes habilidades para resolver problemas computacionales mediante enfoques declarativos. Se exploran conceptos fundamentales como funciones puras, recursividad, evaluación perezosa, lógica de predicados, unificación y resolución de problemas basados en reglas.
Temáticas Principales:
✔ Fundamentos de paradigmas de programación: Diferencias entre estilos imperativo, funcional y lógico.
✔ Programación funcional: Funciones de primer orden y superior, tipos de datos algebraicos, listas, árboles y evaluación perezosa (ejemplos en Haskell/Elm).
✔ Programación lógica: Lógica de primer orden, cláusulas de Horn, unificación, resolución SLD y control de búsqueda (implementación en Prolog/Datalog).
✔ Aplicaciones prácticas: Manipulación simbólica, bases de conocimiento y solucionadores de restricciones.
Competencias Adquiridas:
-
Diseñar programas usando principios inmutables y composición funcional.
-
Formular problemas computacionales mediante reglas lógicas y mecanismos de inferencia.
-
Analizar ventajas/limitaciones de cada paradigma en ingeniería de software.
Dirigido a: Estudiantes de Ingeniería en Sistemas Computacionales con bases en algoritmos y estructuras de datos.
Metodología: Clases teórico-prácticas, laboratorios con ejercicios guiados y proyecto final integrador.
Duración: 16 semanas (4 unidades).