Esta es la última asignatura de la materia de programación, y en ella se pretende introduccir al alumno en los distintos paradigmas de programación existentes, y los desarrollos matemáticos que los sustentan. Para ello, se comienza estableciendo los conceptos básicos relacionados con teoría de computabiblidad y la fundamentación matemática en los que se basan los lenguajes imperativos. A partir de esa base, se pueden introducir las teorías y conceptos en los que se basan los diferentes paradigmas de programación declarativa: lógica y funcional. Lamentablemente, y debido a la notable economía de horas de clase disponibles, en relación a la amplitud del temario establecida por los autores del Plan de Estudios, la introducción a estos conceptos y paradigmas ha de ser necesariamente muy limitada.