Programming with
Data Structures and Algorithms


Assignment Date Out Date Due cs019-handin
Nile Fri, 9/9 Thu, 9/15 nile
Cowabunga! Fri, 9/16 Thu, 9/22 cowabunga
Filesystem Fri, 9/23 Tue, 9/27 filesystem
Oracle Wed, 9/28 Tue, 10/4 oracle
Functional updaters Wed, 10/5 Sun, 10/9 updater
Brown heaps Mon, 10/10 Thu, 10/13 brown_heaps
Amortized analysis Mon, 10/17 Sun, 10/23 amortized
Parallelism pair prefs in: Mon, 10/17; announced: Thu, 10/20
Parallelism* Mon, 10/24 Sun, 10/30 parallelism
Circuits pair prefs in: Mon, 10/24; announced: Thu, 10/27
Circuit analysis* Mon, 10/31 Thu, 11/10 circuits
Tour Guide pair prefs in: Fri, 11/4; announced: Mon, 11/7
Tour guide* Fri, 11/11 Tue, 11/22 tour_guide
Seam carving Mon, 11/28 Tue, 12/6 seam_carving

* indicates a pair project.

All assignments are due at 11:59:00 PM.

Take a look at the short but informative Homework FAQs.


Lab First Day Second Day
Account Setup Thur, 9/8, 5:00 - 6:00 Fri, 9/9, 5:00 - 6:00
Finger Exercises 1 Mon, 9/19, 5:00 - 7:00 Tues, 9/20, 8:30 - 10:30
Finger Exercises 2 Mon, 10/3, 5:00 - 7:00 Tues, 10/4, 8:30 - 10:30

All labs will be held in the first four rows of the Sunlab.

To get started using Racket, see Getting Started: Setting up DrRacket and a brief introduction to the Racket language.

Handing In Assignments

CS 19 is a paperless class. You will be handing in all of your assignments electronically. We have written a handin script to facilitate this process. This script will hand in every file in the directory you are in. If run multiple times, the script will overwrite a previous handin. Handins will be confirmed with an email sent to your CS email.

Save solution files in the appropriate directory in ~/course/cs019/*assignment*/. Then, in the Terminal, run cs019-handin *assignment*. Note that *assignment* should be replaced with the hand-in name assigned above.