Lectures Mon, Wed, Fri 10:30–12:15 in Room SI-008
[HtDP] How to Design Programs, Second Edition
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, 2016.
Moodle Moodle
Please use Moodle for all questions! Questions emailed to the course staff will be ignored. Grades will be posted on Moodle.
Documents Syllabus
Homework policy
Coding conventions
Grading Labs 40%, Project 20%, Midterm exam 20%, Final exam 20%


  • Coming soon!

Course staff

IMPORTANT Post all questions about lectures and labs to the Moodle discussion forum. Use should email only for personal matters.

Prof. Nate Nystrom

Office SI-203
Hours TBA

Bin Lin
teaching assistant

Office TBA
Hours TBA

Ly Nguyen
teaching assistant

Office TBA
Hours TBA

Eduardo Rosales
teaching assistant

Office TBA
Hours TBA

Daniele Zuddas
teaching assistant

Office Via Balestra 22
Hours TBA

Schedule Subject to change



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!

See the PF1 homework policy.

Group Work

Assignments will include both written and programming assignments. All assignments, except where specified, should be done in pairs. The contributions of each student must be explicitly described.

Cheating and plagiarism is unacceptable

You are free to discuss assignments and solutions with others. You must not show your code to anyone other than your pair programming partner. You must not look at the code of anyone other than your partner. You must not represent any portion of others' work as your own. Assignments found to have been plagiarized will be given a grade of -100%.