← Back to Teaching

Programming Paradigms 1

First semester 2026 (finished) · Taught with Diego Romero.

Description

Taught in the first semester of 2026, together with Diego Romero. The course aims to expose students to different variants of the art of programming and programming languages, with an emphasis on semantics.

By the end of the course, students should be able to interpret, evaluate and build algorithms and programs within the paradigms covered, build a representation for an expression in a programming language, and build an interpreter for a simple language.

The course is based on Team-Based Learning: each unit combines a readiness-assurance stage (required prior reading plus individual and team assessment) with team-based application exercises.

Schedule

2026 edition, first semester (course already finished).

Date Unit
March 11 Introduction to the course
March 18–25 Low-level programming — Common Intermediate Language (.NET)
April 8–15 Imperative programming — Rust 1.76+
April 22–29 Object orientation — Ruby 3.0+
May 6–20 Operational semantics and interpreters
May 27–June 10 Logic programming — SWI-Prolog 9.2+
June 17 Course wrap-up

Note: no classes were held between March 30 and April 3.

Grading

Bibliography