Lectures Tue, Thu 08:30–10:15 in SI-007
[TAPL] Types and Programming Languages
Benjamin Pierce, 2002
[SK] Programming Languages: Application and Interpretation
Shriram Krishnamurthi, 2007
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
Other resources
Staff email
Grading Exercises: 40%, Scribing etc: 10%, Midterm: 25%, Final: 25%


  • Coming soon!

Course staff

Nate Nystrom instructor

Office SI-203
Office hours Whenever the door is open

Ilya Yanok teaching assistant

Office Openspace near SI-206
Office hours TBA

Amanj Sherwany teaching assistant

Office Openspace near SI-206
Office hours TBA

Schedule Subject to change

Date Topic Preparation Lecture notes Assignment out Assignment due (night before class)



Each lecture, one or two students will be appointed to take notes during the lecture. After class they should combine their notes, and write them up in a more polished document which will be shared with the class. Every student must scribe at least once, more of needed.

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.

Late Policy

In general, no late assignments are accepted. However, you have two grace days for the entire semester. This means you can be late by one day for two assignments, or use the two days up for one assignment.


Homework should be submitted through the Moodle web site.

Programming assignments will have specific submission instructions included with the handouts. 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 plagiarized will be given a grade of -100%.