7 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 5


Thu, Sep 6

ML: Conditionals


Fri, Sep 7


Sun, Sep 9

ML: Named Functions


Mon, Sep 10


Thu, Sep 13

ML: Scope


Mon, Sep 10


Thu, Sep 13

ML: Function Calls


Fri, Sep 14


Sun, Sep 16

ML:Big Mystery Part 1


Mon, Sep 17


Thu, Sep 20

ML: Anonymous Functions


Fri, Sep 21


Tue, Sep 25

ML: Loops


Fri, Sep 21


Tue, Sep 25

Interpreter: Base


Wed, Sep 26


Sun, Sep 30

Calc Locals Vars


Mon, Oct 1


Thu, Oct 4

ML: Fields


Wed, Oct 10


Sun, Oct 14



Wed, Oct 10


Sun, Oct 14

ML: Typed Systems


Mon, Oct 15


Tue, Oct 16

Type Checker


Wed, Oct 17


Sun, Oct 21

Calc Local Fields


Mon, Oct 22


Thu, Oct 25

ML: Mutable Variables


Fri, Oct 26


Tue, Oct 30

ML: Mutable Structures


Wed, Oct 31


Thu, Nov 1

Calc Local Vars: With


Fri, Nov 2


Sun, Nov 4

Interpreter: State


Mon, Nov 5


Sun, Nov 11

ML: Evaluation Order


Mon, Nov 12


Tue, Nov 13

Interpreter: Lazy


Wed, Nov 14


Sun, Nov 18



Mon, Nov 19


Tue, Nov 27

ML:Big Mystery Part 2


Wed, Nov 28


Sun, Dec 2



Mon, Dec 3


Thu, Dec 6

Please program according to the Pyret Style Guide.

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.

You may also find these two labs useful:

If you know Racket, you may find this guide helpful.