Contenidos teóricos y prácticos de la asignatura
Tema 1. Modelos de programación.
Lenguajes y Herramientas de Programación. Control de Versiones. Pruebas Unitarias. Desarrollo Dirigido por Pruebas.
Tema 2. Programación imperativa.
Estructuras de Datos. Subprogramas. Abstracción y Encapsulamiento.
Tema 3. Programación concurrente y paralela.
Procesos. Hilos. Programación Distribuida. Computación de Alto Rendimiento. Computación en la Nube.
Tema 4. Programación orientada a objetos.
Clases, Objetos, métodos. Encapsulamiento, Abstracción, Herencia, Polimorfismo, Mixins.
Tema 5. Programación declarativa: lógica y funcional.
Declarativa: Meta Programación. Lenguajes de Dominio Específico. Programación Orientada a Aspectos.
Lógica: Cláusulas. Hechos. Consultas. Reglas.
Funcional: Funciones de Orden Superior. Lambdas. Clausuras. Evaluación Perezosa. Memoización. Listas Infinitas.
Lenguajes y Herramientas de Programación. Control de Versiones. Pruebas Unitarias. Desarrollo Dirigido por Pruebas.
Tema 2. Programación imperativa.
Estructuras de Datos. Subprogramas. Abstracción y Encapsulamiento.
Tema 3. Programación concurrente y paralela.
Procesos. Hilos. Programación Distribuida. Computación de Alto Rendimiento. Computación en la Nube.
Tema 4. Programación orientada a objetos.
Clases, Objetos, métodos. Encapsulamiento, Abstracción, Herencia, Polimorfismo, Mixins.
Tema 5. Programación declarativa: lógica y funcional.
Declarativa: Meta Programación. Lenguajes de Dominio Específico. Programación Orientada a Aspectos.
Lógica: Cláusulas. Hechos. Consultas. Reglas.
Funcional: Funciones de Orden Superior. Lambdas. Clausuras. Evaluación Perezosa. Memoización. Listas Infinitas.
Actividades a desarrollar en otro idioma
La bibliografía y los manuales de las herramientas utilizadas está en inglés, por lo que los alumnos tienen que realizar lecturas compresivas en ese idioma. Sin embargo, esta asignatura no forma parte de un itinerario, por lo tanto estas actividades no contribuyen a la evaluación.