Programa

Unidad Temática N°: 1 Conceptos fundamentales de los Paradigmas de Programación

Concepto de paradigma. Diferencias y similitudes entre los paradigmas. Conceptos transversales: Abstracción, tipos de datos, enlace dinámico y estático, asignación destructiva, efecto de lado, transparencia referencial, estructuras de control, primer orden y orden superior, polimorfismo, declaratividad.


Unidad Temática N°: 2 Paradigma lógico

Conceptos generales. Principales características. Campo de aplicación. Historia. Fundamentos lógicos. Lógica proposicional. Unificación. Variables. Hechos. Consultas. Predicados. Reglas de inferencia. Consultas. Inversibilidad. Indeterminación. Negación. Estrategias de resolución: recursividad, generación, suposición de un “mundo acotado”.  Lenguaje Prolog: Sintaxis básica. Ambiente de desarrollo. Predicados de orden superior. Predicados predefinidos. Ejecución dinámica. Backtracking


Unidad Temática N°: 3 Paradigma Funcional

Conceptos generales. Principales características. Campo de aplicación. Historia. Funciones. Fundamentos matemáticos. Mecanismo de evaluación. Pattern matching. Composición. Tipos de datos. Listas y tuplas. Listas por comprensión. Lenguaje Haskell. Sintaxis básica. Funciones de uso frecuente. Ambiente de desarrollo. Funciones de orden superior. Aplicación parcial. Expresiones lambda. Tipos de datos genéricos. Inferencia de tipos. Polimorfismo. Variables de tipo de dato. Evaluación diferida. Listas infinitas.


Unidad Temática N°: 4 Paradigma Orientado a Objetos

Conceptos generales. Principales características. Campo de aplicación. Historia. Objetos y mensajes. Estructura de un objeto. Encapsulamiento. Delegación. Múltiples referencias. Polimorfismo. Lenguaje Wollok. Sintaxis básica. Ambiente de trabajo.  Tests. Diagramas. Colecciones. Comportamiento común. Bloques de código.  Clases. Creación de objetos.  Instanciación. Herencia. Redefinición. Clase abstracta. Composición. Excepciones