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.

Assignment

     

Out

     

Tests

     

Reviews

     

Final

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

Javette

     

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

    

(answers)

Feb 3

    

Sortacle and Peer Review

    

(bad sorts)

Feb 10

    

Parsing

    

Feb 17

    

(Choose one)

    

Feb 24

    

desugaring

    

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.

Assignment

     

Out

     

Final

Scope Written

     

Feb 20

     

Mar 6

Types Written

     

Mar 20

     

Apr 2

Objects Written

     

Apr 3

     

Apr 16

Control Written

     

Apr 24

     

May 1