Lectures Mon 8:30–10:15, Wed 10:30–12:15 in Room SI-007
Programming languages references
[PLP] Programming Language Pragmatics
Michael L. Scott, 2009
[Dragon] Compilers: Principles, Techniques, and Tools, 2nd edition
Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman, 2006. (amazon.de) — The first edition is also (mostly) acceptable, and cheaper, but chapter references will be to the second edition.
Haskell references
Real World Haskell
Bryan O'Sullivan, Don Stewart, and John Goerzen, 2008
[Bird] Thinking Functionally with Haskell
Richard Bird, 2015
(Earlier edition: Introduction to Functional Programming by Richard Bird and Philip Wadler, 1988)
Learn You a Haskell for Great Good!
Miran Lipovańća, 2011
A Gentle Introduction to Haskell
Paul Hudak, John Peterson, Jospeh Fasel, 2000
Neil Mitchell, 2012
Scala references
Programming in Scala, 3rd Edition
Martin Odersky, Lex Spoon, Bill Venners, 2012
The first edition is available online
Moodle Website L&C on Moodle
Grading 30% Homeworks, 30% Quizzes, 40% Final exam

Course staff

Nate Nystrom instructor

Office SI-203
Office hours TBA

Luis Mastrangelo teaching assistant

Office Via Balestra 20 (3rd floor)
Office hours TBA

Schedule Subject to change



You will be graded on programming assignments, quizzes, and a final exam. There will be approximately one assignment per week. Assignments will consist of programming exercises in Haskell and a several small compiler implementation projects. There will be approximately one 15-minute quiz per week.

Group Work

Assignments will include both written and programming assignments. You are encouraged to work on the programming assignments with your classmates. The contributions of each student must be explicitly described. All students are responsible for understanding the assignments.


Assignments should be submitted through Github.

Cheating and plagiarism is unacceptable

You are free to discuss assignments and solutions with others. However, you must write your own assignments, and must not represent any portion of others' work as your own. Assignments found to have been plagiarized will be given a grade of -100%.

Collaboration on quizzes and exams is forbidden.