6 Assignments

All work will be due at 11:59pm of the indicated day.

The abbreviation ML stands “mystery language”, not the ML family of programming languages. See the Anticipated Frequent Questions to learn more about these assignments and how you’re expected to respond to them.

Note: all submissions must be done using your Brown Google account. Please do not contact us to “request access”. Use a browser that knows your Brown identity to submit.






ML: Numbers


Wed, Sep 07


Thu, Sep 08

ML: Conditionals


Fri, Sep 09


Sun, Sep 11

ML: Named Functions


Mon, Sep 12


Thu, Sep 15

ML: Scope +


Fri, Sep 16


Tue, Sep 20

ML: Function Calls


Wed, Sep 21


Thu, Sep 22

ML: Anonymous Functions


Fri, Sep 23


Sun, Sep 25

Calc Locals Vars


Mon, Sep 26


Thu, Sep 29



Fri, Sep 30


Thu, Oct 06

Type Checker


Fri, Oct 07


Sun, Oct 16

ML: Mutable Variables +


Mon, Oct 17


Sun, Oct 23

ML: Mutable Structures


Mon, Oct 24


Thu, Oct 27

ML: Fields


Fri, Oct 28


Tue, Nov 01

Calc Local Fields


Wed, Nov 02


Tue, Nov 08

ML: Classes +


Wed, Nov 09


Tue, Nov 15

Calc Local Vars: With


Wed, Nov 16


Sun, Nov 20

ML: Evaluation Order


Mon, Nov 21


Tue, Nov 29

Evaluate a Language


Wed, Nov 30


Tue, Dec 06

If you’re new to Pyret, you should consider doing the Learning Pyret exercise, which will help you gain practice with the language. Though this assignment is not required, if you haven’t programmed in Pyret before, we strongly encourage you to complete it. You will use Pyret in the non-ML assignments. This gives you some time to learn the language, but don’t put this off to the last minute.