Panoramica sui diversi modelli di computazione oltre la programmazione imperativa e a oggetti. Il corso si focalizza sulla programmazione funzionale (es. Haskell, OCaml), esplorando inoltre i paradigmi logico (Prolog), reattivo e data-flow. Gli studenti apprendono le basi teoriche dei linguaggi e le tecniche per l'implementazione di interpreti, comprendendo la semantica e i limiti logici dei diversi approcci.