15-417/817 HOT Compilation
Assignments

Out Assignment Reference Due

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

Jan 30 Lab 2: ND Thu Feb 6 (tests)
Compiler test cases Thu Feb 13 (compilers)
OCaml starter code
Rust starter code
ND VSCode mode
ND Emacs mode

Feb 13 Lab 3: Negatives Thu Feb 20 (tests)
Compiler test cases Thu Feb 27 (compilers)
OCaml starter code
Rust starter code

Mar 13 Lab 4: Adjoint Types Thu Mar 20 (tests)
Compiler test cases Thu Mar 27 (compilers)
Rust starter code
OCaml starter code

Apr 5 Lab 5 (Projects) (lecture note sources) Fri Apr 25 (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-4 have two submissions: test cases after one week and the compilers after two weeks. These submissions are autograded and allow arbitrary resubmission.

Lab 5 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-4, or design their own project. Submission is of code (which is not autograded), plus a templated write-up, 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 may define their own projects or choose one of the suggested projects, with a slightly stricter requirement for the write-up.

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 850 points. 90%+ guarantees an A, 80%+ a B, etc., although grade cut-offs may be lowered at the instructor's discretion.

  • Labs 1-4 are worth 30 (tests) + 120 (compilers) = 150 points each
  • Lab 5 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