Lectures Mon, Wed 10:30–12:15 in Room SI-007
Programming languages references
[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.
[PLP] Programming Language Pragmatics
Michael L. Scott, 2009
[Bird] Thinking Functionally with Haskell
Richard Bird, 2015
(Earlier edition: Introduction to Functional Programming by Richard Bird and Philip Wadler, 1988)
Haskell references
Real World Haskell
Bryan O'Sullivan, Don Stewart, and John Goerzen, 2008
Introduction to Functional Programming Using Haskell
Richard Bird, 1998
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
Class Q&A Website L&C on Moodle - for grading
L&C on Google+ - for all questions related to the material
Staff Mailing List for administrative questions
Grading 20% Homeworks, 40% Midterm exam, 40% Final exam
Syllabus TBA


  • Coming soon!

Course staff

IMPORTANT Contact us using the for administrative questions. Post questions about assignments to the Moodle forum.

Nate Nystrom instructor

Office SI-203
Office hours TBA

Amanj Sherwany teaching assistant

Office SI-205
Office hours TBA

Schedule Subject to change

Date Topic Preparation Lecture notes Assignment out Assignment due


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.


Homework should be submitted through Github.

Programming assignments will have specific submission instructions included with the handouts. We will use a certain amount of automatic grading to help us deal with the massive amounts of code everyone submits, so please follow the submission instructions exactly as written!

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%.