You can download the syllabus here. The syllabus includes information on grading, course goals, and policies I will use in teaching this course.
We will be using Algorithms (4th ed.), by Sedgewick and Wayne, shown at right. The authors have supplied many online resources, which you can access by clicking on the book.
Click here if you're in the class, for more useful information.
Additional resources will be placed here, if needed.
Specific assignments are given below. Please note that homeworks are very important, and make up a very large portion of your grade. Most of the work you do will probably be in Java or Python. Please see me if you wish to use another language.
Homeworks can be turned in here.
This is a tentative schedule for the class. I may change it depending on how the class progresses.
Week | Dates | Homework | Due Date | Files | Readings | |
---|---|---|---|---|---|---|
1 | Aug. 28 - Sep. 1 | 1a: Asymptotic Analysis | Sep. 6 (class) | — | Chapter 1 (§4, skimming §1,2,3) | |
2 | September 5-8 | 1b: The Master Theorem | Sep. 13 (class) | — | Chapter 1 (§4, skimming §1,2,3) | |
3 | September 11-15 | — | — | — | Chapter 2 | |
4 | September 18-22 | 2: Priority Queues | Sep. 27 | BestFirstSearch.java bestfirstsearch.py example.graph |
Chapter 2 | |
Yom Kippur (יום כפור) | ||||||
5 | September 26-29 | — | — | Chapter 3 (§1,4) | ||
6 | October 2-6 | Midterm 1 | ||||
7 | October 9-13 | 3: Hash Tables | Oct. 18 | WordFreqs.java wordfreqs.py alice.txt frankenstein.txt moby-dick.txt two-cities.txt | Chapter 3 (§1,4) | |
Fall Break! | ||||||
8 | October 18-20 | — | — | — | Chapter 3 (§2,3,5) | |
9 | October 23-27 | 4: Red-Black Trees | Nov. 7 | WordFreqs2.java wordfreqs2.py | Chapter 3 (§2,3,5) | |
10 | Oct. 30-Nov. 3 | — | — | — | — | |
11 | November 6-10 | Midterm 2 | ||||
12 | November 13-17 | 5: USA* | Nov. 22 | CityNavigator.java citynavigator.py US-capitals.geo |
Chapter 4 | |
13 | November 20-21 | — | — | — | Chapters 4-5 | |
Thanksgiving! | ||||||
14 | Nov. 27 - Dec. 1 | — | — | — | Chapter 5 | |
15 | December 4-6 | 6: Topological Sorting | Dec. 6 | TaskSorter.java tasksorter.py cyclic.task acyclic.task |
Chapter 5 | |
Final Exam: Monday December 11, 4pm |