Assignments
Please make sure all submissions are anonymous.
We will use Gradescope for assignment submission and grading. We will post instructions on EdStem. Please make sure you follow those instructions!
All work will be due by 11:59pm US/Eastern of the indicated day.
The following schedule is tentative.
Please check again once classes begin.
Title
Group?
Late?
Published
Due
no
yes
Wed, Sep 8
Fri, Sep 10
no
yes
Sat, Sep 11
Tue, Sep 14
no
no
Wed, Sep 15
Sun, Sep 19
no
yes
Mon, Sep 20
Wed, Sep 22
yes
no
Fri, Sep 24
Tue, Sep 28
no
yes
Wed, Sep 29
Thu, Sep 30
yes
no
Fri, Oct 1
Wed, Oct 6
no
yes
Thu, Oct 7
Thu, Oct 14
no
yes
Sun, Oct 17
Wed, Oct 20
no
yes
Thu, Oct 21
Tue, Oct 26
no
yes
Wed, Oct 27
Thu, Nov 4
no
yes
Sun, Nov 7
Sat, Nov 13
yes
no
Sun, Nov 14
Thu, Nov 18
no
yes
Sun, Nov 21
Thu, Dec 2
no
no
Fri, Dec 3
Sun, Dec 5
If “Late?” says “no”, you cannot use any late days on this assignment.
For assignments marked “group”, you must work with at least one partner. You cannot repeat a partner across non-simultaneous “group” assignments.
The course homeworks will be programmed in Pyret,Please program according to the Pyret Style Guide. unless indicated otherwise. Pyret is a reasonably large language with many libraries, some of which reproduce functionality (like basic data structures) that we are asking you to create in this course. This can lead to some confusion about what you are and aren’t allowed to use from the language. Each assignment provides information about this when necessary, but in general, the following rules apply:
You can always use the computational core of the language: basic constants, functions, higher-order functions, and composition.
You can always construct your own new data definitions, unless explicitly stated otherwise.
You are allowed to use builtin functions for the following datatypes unless explicitly stated otherwise:
Numbers (functions such as num-abs, num-max)
Strings (functions such as string-to-number, string-length)
Booleans (functions such as not)
You are allowed to use the following libraries unless explicitly stated otherwise:
lists
sets
pick
tables
option
either
You should not use any other built-in functions or libraries unless an assignment explicitly permits you to. When in doubt, ask.
You may not use variables (var) or mutate objects (!) unless explicitly permitted to by an assignment.