CS 361: Algorithms & Data Structures

Syllabus

You can download the syllabus here. The syllabus includes information on grading, course goals, and policies I will use in teaching this course.

Text

Sedgewick & Wayne

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.

Class-Only Information

Click here if you're in the class, for more useful information.

Other Resources

Additional resources will be placed here, if needed.

Homework

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.

Class Schedule

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