Funcional
Módulo 1: Introducción. Función. Variable. Primeros ejemplos. Aplicación. Guardas.
Módulo 2: Composición. Aplicación parcial.
Módulo 3: Modelado de información.
Módulo 4: Recursividad. Evaluación diferida.
Módulo 5: Orden superior.
Módulo 6: Expresiones lambda.
Módulo 7: Sistema de tipos.
Módulo 9: Tipos de datos avanzados. Kinds.
Módulo 10: Functores. Entrada/Salida. Trabajo con bindings.
Anexo A: Testeo con HSpec
Lógico
Módulo 1: Predicados. Individuos. Consultas. Universo Cerrado.
Módulo 2: Variables. Consultas Existenciales. Reglas simples y compuestas. Inversibilidad.
Módulo 3: Estructuras de datos. Individuos simples y compuestos.
Módulo 4: Predicados de orden superior.
Módulo 5: Recursividad.
Módulo 6: Elementos de Diseño. Delegación. Acoplamiento. Code smells.
Módulo 7: Explosión combinatoria. Orden superior (definición). Efecto.
Anexo A: Testeo con PlUnit
Objetos
Módulo 01: Objeto. Mensaje. Métodos.
Módulo 02: Referencias. Estado. Compartir objetos. Identidad.
Módulo 03: Introducción a Polimorfismo.
Módulo 04: Objetos básicos. Números. Strings. Fechas. Conjuntos. Listas.
Módulo 05: Introducción al testeo unitario automatizado.
Módulo 06: Objetos anónimos y repaso polimorfismo.
Módulo 07: Propiedades.
Módulo 08: Clases. Method lookup y polimorfismo con clases.
Módulo 09: Herramientas de instanciación.
Módulo 10: Manejo de errores.
Módulo 11: Testeo unitario automatizado avanzado.
Módulo 12: Colecciones. Bloques de código.
Módulo 13: Herencia. Self, super. Redefinición.
Módulo 14: Mutabilidad. Igualdad e identidad.
Módulo 15: Elementos de Diseño (introducción).
Módulo 16: El proceso de Diseño.
Anexo: Guía de shortcuts del entorno Wollok
Anexo: Diagrama estático de Wollok
Anexo: Para realizar diagramas de clase y de objetos
Manejo de Git
Instrucciones básicas para suscribirse a Github Classroom