← Back to Teaching

Programming Paradigms 2

Second semester 2026 · Taught by Bruno Cattáneo.

Description

Continuation of Programming Paradigms 1. 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 or compiler for a simple language.

Like Paradigms 1, 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, second semester.

Date Unit
August 6 Introduction to the course
August 13–September 3 Functional programming — Haskell
September 10–24 Code generation — algebraic types and Common Intermediate Language (.NET)
October 8–22 Asynchronous programming — JavaScript (ES2022+)
October 29–November 12 Abstract interpretation and code transformations — Babel/EcmaScript
November 19–26 Query languages — SQL

Note: no class on August 27.

Note: no classes between September 28 and October 2 (Semana UCU).

Grading

Bibliography