5 Assignments
All work will be due at 11:59pm of the indicated day.
5.1 Supplemental Homeworks for CSCI 0170
Before you can take this course, you must complete all the homeworks (until this course begins) of CSCI 0170 with high grades and all of the following supplemental homeworks with high grades. At the beginning you may find this especially difficult, but don’t despair! Keep at it! If, however, by the last of these you find the pace is still far too great for you, then you may find CSCI 0170 a better course for you than 0190 for the rest of the semester.
Title |
| Out |
| In |
| Fri, 09/11 |
| Thu, 09/17 | |
| Fri, 09/18 |
| Sat, 09/26 | |
| Fri, 09/25 |
| Thu, 10/01 | |
| Fri, 10/02 |
| TUE, 10/06 |
5.2 Homeworks for CSCI 0190
The regular assignments for CSCI 0190 are as follows.
Title |
| Published |
| Sweep Due |
| Final Due |
| Thu, Oct 8 |
| —none— |
| Tue, Oct 13 | |
| Wed, Oct 14 |
| —none— |
| Sun, Oct 18 | |
| Mon, Oct 19 |
| Wed, Oct 21 |
| Sun, Oct 25 | |
| Mon, Oct 26 |
| —none— |
| Thu, Oct 29 | |
| Fri, Oct 30 |
| Sun, Nov 1 |
| Tue, Nov 3 | |
| Mon, Nov 2 |
| —none— |
| Mon, Nov 2 | |
| Wed, Nov 4 |
| —none— |
| Tue, Nov 10 | |
| Wed, Nov 11 |
| Fri, Nov 13 |
| Tue, Nov 17 | |
| Wed, Nov 11 |
| Fri, Nov 13 |
| Tue, Nov 17 | |
| Wed, Nov 18 |
| —none— |
| Sun, Nov 22 | |
| Mon, Nov 23 |
| —none— |
| Tue, Dec 1 | |
| Wed, Dec 2 |
| Fri, Dec 4 |
| Sun, Dec 6 |
* Lightning will effectively be an in-class assignment. We will not have class on this day; instead, you will have the hour to do the assignment (you don’t have to come to class; do it wherever you like). The entire assignment needs no more than two hours, and is a check that you can do straightforward programming tasks properly without spending too much time on them.
+ Join Lists and Map Reduce will be done in pairs. You will be given instructions on forming and joining pairs. Buddy up!
‡ Name credit to Juliet Norvig.
5.3 Clinics
5.4 Language Use
The course homeworks will be programmed in Pyret, which 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, 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
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.