On this page:
1 Major Labs
2 Minor Labs
3 Written Assignments

Labs and Assignments

1 Major Labs

The course has a number of programming assignments that roughly correspond to one or two labs each, and are your major assignments for the course. Most go out on Friday and are due the Thursday by midnight, but not all, so pay attention to the listed dates (the first two weeks are staggered to make things line up). All deadlines are 11:59PM on the listed date.

The individual lab pages will describe what is required in the separate Test and Reviews steps on a per-assignment basis: basically, you’ll do a small amount of work on writing and reading test cases in the first few days the lab is out. We’ll talk about the details of peer review more in early February, when assignments start using it.










Learning Pyret


Jan 19




Jan 28

Tree Zippers


Jan 29




Feb 5

Basic Interpreter


Feb 6


Feb 8


Feb 9


Feb 12

HoF Interpreter


Feb 13


Feb 15


Feb 16


Feb 19

State Interpreter


Feb 20


Feb 22


Feb 23


Feb 27 (ext)

Type Checker


Feb 27


Mar 2


Mar 3


Mar 6

Spring Break





Type Inference


Mar 17


Mar 19


Mar 23


Mar 30



Mar 31


Apr 2


Apr 6


Apr 13

Explicit Stack Interpreter


Apr 14




Apr 20

Garbage Collection


Apr 21


Apr 25


Apr 27


May 6(ext)

2 Minor Labs

This course will have some lab sessions that don’t directly correspond to working on one of the major labs. These might be experiments with existing languages, an exploration of tweaks to one of your already-done major labs, or practice with a language feature. These will be designed to be finished within the lab session, so they don’t have separate due dates.

Jan 27


Map/filter/fold practice, and other list patterns to try



Feb 3


Sortacle and Peer Review


(bad sorts)

Feb 10




Feb 17


(Choose one)


Feb 24




Mar 3


Type Checking and Inference


Apr 7


TypeScript Unsoundness


3 Written Assignments

There are also written assignments that are not as closely tied to the lab schedule. Typically, a good answer to each question only needs to be a few sentences long; I am not asking you to write papers. Concision, clarity, and correctness will be the main components of your grade on written questions.






Scope Written


Feb 20


Mar 6

Types Written


Mar 20


Apr 2

Objects Written


Apr 3


Apr 16

Control Written


Apr 24


May 1