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.

Title

  

Published

  

Due

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

Macros

  

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

Quiz

  

Mon, Nov 19

  

Tue, Nov 27

ML:Big Mystery Part 2

  

Wed, Nov 28

  

Sun, Dec 2

Shell

  

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.