SI-205 Languages and Compilers | Spring 2015


Lectures Mon, Wed 10:30–12:15 in Room SI-006 (TBD)
Programming languages references
[Dragon] Compilers: Principles, Techniques, and Tools, 2nd edition
Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman, 2006. ( — 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
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 PL on Moodle - for grading
PL on Google+ - for all questions related to the material
Staff Mailing List for administrative questions
Grading 40% Homeworks, 30% Midterm exam, 30% Final exam
Syllabus TBA


  • Coming soon!

Course staff

IMPORTANTContact us using thefor administrative questions. Post questions about assignments to the Moodle forum.

Nate Nystrom instructor

Office SI-203
Office hours Thursdays 3:30–4:30

Amanj Sherwany teaching assistant

Office SI-205 eat beyond global coindataflow
Office hours By appointment

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 the Moodle web site.

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