8 Assignments
Please make sure all submissions are anonymous. Be sure to read the Anticipated Frequent Questions before you begin!
All work will be due by 11:59pm of the indicated day.
Title |
| Pair? |
| Late? |
| Published |
| Due |
| no |
| no |
| Wed, Sep 4 |
| Fri, Sep 6 | |
| no |
| yes |
| Sat, Sep 7 |
| Tue, Sep 10 | |
| no |
| yes |
| Wed, Sep 11 |
| Sun, Sep 15 | |
| no |
| yes |
| Mon, Sep 16 |
| Tue, Sep 17 | |
| no |
| yes |
| Wed, Sep 18 |
| Sun, Sep 22 | |
| no |
| yes |
| Mon, Sep 23 |
| Tue, Sep 24 | |
| yes |
| no |
| Wed, Sep 25 |
| Tue, Oct 1 | |
| no |
| yes |
| Wed, Oct 2 |
| Sun, Oct 6 | |
| no |
| yes |
| Mon, Oct 7 |
| Thu, Oct 10 | |
| yes |
| no |
| Tue, Oct 15 |
| Sun, Oct 20 | |
| yes |
| no |
| Tue, Oct 15 |
| Sun, Oct 20 | |
| no |
| yes |
| Mon, Oct 21 |
| Tue, Oct 22 | |
| no |
| no |
| Wed, Oct 23 |
| Sat, Oct 26 | |
| no |
| yes |
| Sun, Oct 27 |
| Tue, Oct 29 | |
| no |
| yes |
| Wed, Oct 30 |
| Thu, Nov 7 | |
| no |
| yes |
| Fri, Nov 8 |
| Thu, Nov 14 | |
| no |
| yes |
| Fri, Nov 15 |
| Sun, Nov 24 | |
| no |
| no |
| Sun, Dec 1 |
| Tue, Dec 3 |
For assignments marked “pair”, you must work with at least one partner. If multiple “pair” assignments are out simultaneously, you must use the same partner(s) for all of them. However, you cannot repeat a partner across non-simultaneous “pair” 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.