15-417/817 HOT Compilation
Assignments

Out Assignment Reference Due

Jan 16 Lab 1: Sax Thu Jan 23 (tests)
OCaml starter code Thu Jan 30 (compilers)
Rust starter code
SML starter code
Sax Emacs mode
Sax VSCode mode

Jan 30 Lab 2 Thu Feb 6 (tests)
Thu Feb 13 (compilers)

Feb 13 Lab 3 Thu Feb 20 (tests)
Thu Feb 27 (compilers)

Mar 11 Lab 4 Tue Mar 18 (tests)
Tue Mar 25 (compilers)

Mar 25 Lab 5 Tue Apr 1 (tests)
Tue Apr 8 (compilers)

Apr 8 Lab 6 Tue Apr 15 (plan)
Thu Apr 24 (code & write-up)

Labs

The course is entirely based on Labs, which can be done solo or in pairs. Labs are handed in Gradescope. Labs 1-5 have two submissions: test cases after one week and the compilers after two weeks. These submissions are autograded and allow arbitrary resubmission.

Lab 6 is differentiates between the cross-listed 15-417 (undergraduate) and 15-817 (graduate) courses.

  • 15-417 students or teams may pick between several projects that are somewhat more loosely defined than Labs 1-5. Submission is of code (which may or may not be autograded), plus a templated write-up (which is manugraded), both of which are due at the end of the semester. 15-417 students may also opt for a more open-ended projects (see below).
  • 15-817 students should define their own projects. Plans for these projects are due after one week, code plus a free-form term paper at the end of the semester. One possibility for the self-defined project is to take a predefined topics and take it further than the specified goals.

Late Policy

Each student or team will have 6 late days to use throughout the semester, but no more than 2 days on any individual lab. For extraordinary circumstances, please contact the instructor via email at fp@cs.

Grades

Grades are based on the lab scores, out of 1000 points. 900+ guarantees an A, 800+ a B, etc., although grade cut-offs may be lowered at the instructor's discretion.

  • Labs 1-5 are worth 30 (tests) + 120 (compilers) = 150 points each
  • Lab 6 is worth 250 points

Academic Integrity

You are expected to comply with the university policy on academic integrity (see also The Word and Understanding Academic Integrity).

Concretely, for this course, you may:
  • Collaborate freely with your lab partner (if you have one), but you are responsible for the totality of the code and write-up (for Lab 6) that is handed in. We plan check out your code from Github, which means individual contributions may be visible.
  • Discuss general points of the labs, including abstract algorithms, solution ideas, broad implementation strategies, etc. with other classmates. You may also discuss specifics points regarding your implementation language, as long as it does not reveal concrete solution code. Copilot and other AI-based coding tools are also permitted.
  • You are not permitted to share any code, or look at or debug code of those not in your team.
  • You must include a file readme.txt with your submissions that details any nontrivial sources you consulted. This could be external code libraries you copied or modified, scientific papers, materials from other courses, etc.

[ Home | Schedule | Assignments | Resources ]

fp@cs
Frank Pfenning