Assignments🔗

Logistics

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.

Assignment Schedule

Name

 

Group?

 

Late?

 

TA?

 

Published

 

Due

DocDiff

 

no

 

no

 

yes

 

Wed, Sep 4

 

Fri, Sep 6

Nile

 

no

 

no

 

yes

 

Sat, Sep 7

 

Tue, Sep 10

Sortacle

 

no

 

no

 

yes

 

Wed, Sep 11

 

Sun, Sep 15

Tables

 

no

 

yes

 

no

 

Mon, Sep 16

 

Thu, Sep 19

Oracle

 

yes

 

no

 

yes

 

Fri, Sep 20

 

Tue, Sep 24

Tables PR

 

no

 

no

 

yes

 

Wed, Sep 25

 

Thu, Sep 26

Updater

 

yes

 

no

 

yes

 

Fri, Sep 27

 

Wed, Oct 2

JoinLists

 

no

 

yes

 

yes

 

Thu, Oct 3

 

Thu, Oct 10

Join List PR

 

no

 

no

 

yes

 

Tue, Oct 15

 

Wed, Oct 16

Contfracs

 

no

 

yes

 

yes

 

Thu, Oct 17

 

Sun, Oct 20

Reactive

 

opt.

 

no

 

yes

 

Mon, Oct 21

 

Thu, Oct 24

MST

 

no

 

yes

 

yes

 

Fri, Oct 25

 

Thu, Oct 31

Conversions

 

no

 

yes

 

no

 

Fri, Nov 1

 

Thu, Nov 7

MST PR

 

no

 

no

 

yes

 

Fri, Nov 8

 

Sat, Nov 9

MapReduce

 

yes

 

no

 

no

 

Sun, Nov 10

 

Thu, Nov 14

Fluid Images

 

no

 

yes

 

yes

 

Fri, Nov 15

 

Sun, Nov 24

24.1

 

no

 

no

 

no

 

Mon, Dec 2

 

Tue, Dec 3

24.2

 

no

 

no

 

no

 

Wed, Dec 4

 

Thu, Dec 5

All SRC tasks will be due two days after the corresponding assignment.

The Group? column says whether you have to do that assignment solo or in a group. A group is two to three people. We will post instructions on group formation on EdStem. If it says that groups are optional, then you can form a group of one or two other people on your own, or work solo, whichever you prefer. You cannot repeat partners across group assignments. Please read and follow these rules and guidelines for all group assignments.

The Late? column says whether you are allowed to use late days for this assignment. Please see the Syllabus and Course Policies for information about late days.

The TA? column indicates whether you can get help from course staff (whether in person or on EdStem) for this assignment. For many assignments you can. But for a handful (usually simpler) assignments, we want you to work through them on your own and make sure you can do the work in this class by yourself—think of it as exam mode. (If it’s a group assignment, then you can of course work together as a group.) EdStem posts will be limited to clarifications of errors on the assignment: you can’t ask for help, but you can check if you think, for instance, there’s a mistake.

Lab Schedule

Week of

   

Topic

Sep 15

   

Big-O

Sep 22

   

Tree Iterators

Sep 29

   

Shell

Oct 6

   

Queues and Priority Queues

Oct 20

   

Flexible Arrays

Oct 27

   

SQL

Nov 10

   

Git

Nov 17

   

Help with ssh, etc. (optional!)

Written Material Turnin

Please turn in all written material (big-O analysis, SRC, etc.) in one of only two forms: text file or PDF. Those are the only formats that Gradescaope can preview, so graders can see and review them in-place instead of having to download them (which clutters up their filesystem), open them in a separate app (which they may not have), etc. In particular, if you use Word, please export the file to PDF for upload.

Pyret Rules

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:

Finally, when you have a -common.arr file, please do not define any required functions inside it. To test your tests, we run our implementation of the required functions against your -tests.arr file. We also include the bindings and definitions inside the -common.arr file, since you might have graph definitions or testing-related functions inside the common file. At the same time, we also include our implementation of the required functions. So, now the file has conflicting definitions for the required functions, and the autograder fails.