Lectures Tue, Thu, Fri 13:30–15:15 in SI-006
Prerequisites Software Atélier IV, Computer Architecture, Algorithms and Data Structures, Automata and Formal Languages
Lecture Notes
Compiler 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.
  • [Appel] Modern Compiler Implementation in Java, 2nd edition, Andrew W. Appel and Jens Palsberg, 2002. (amazon.de)
Python References
LLVM References
Class Q&A Website Compilers on Moodle - for all questions related to the material
Staff Mailing List for administrative questions
Grading Written assignments and in-class exercises: 10%, Programming assignments: 60%, Exams: 30%
Syllabus PDF


  • Coming soon!

Course staff

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

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

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.

Programming Assignments

Since each phase of the project builds on the previous phase, it is important that you correctly implement each phase before starting the next. Programs should not be submitted unless they successfully run according to specification. You must demo your correct program and give a code walkthrough to the course staff within two days of the submission. Ten percent credit is taken off per day late (a weekend counts as one day). Correct programs submitted on time will receive full credit. If your program is incorrect, you may be asked to fix the major problems, resubmit with a late penalty, and demo the program again.


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 plagiarized will be given a grade of -100%.