Class Schedule (tentative)

The following table is meant to provide an overview of the class content, which will be covered roughly in the order specified. The precise schedule is subject to change. Lecture notes available on this page are for Section 1. Notes for Section 2 are available on Courseworks.

Week ofTopicsReadingMaterials
9/7 Overview. Abstract Data Types. Arrays and Linked Lists.Weiss Ch. 3.1-3.5
9/14Java Review.. ADTs in Java. Weiss Ch. 1.4-1.6Code developed in class: Node.java,SimpleLinkedList.java
9/21Intro to Algorithm Analysis and Recursion. Math Review: Proofs, Series. Weiss Ch. 1.2,1.3 and Ch. 2
9/28 Stacks and QueuesWeiss Ch. 3.6-3.7 Stack.java ArrayStack.java Queue.java CircularArrayQueue.java TwoStackQueue.java
10/5Intro to Trees. Binary Search Trees.Weiss Ch. 4.1-4.3 OneStackQueue.java BinaryTree.java BinarySearchTree.java Map.java Pair.java BstMap.java
10/12 AVL Trees, B-Trees.Weiss Ch. 4.4, 4.6-4.7
10/19 Hashing. Midterm Review.Weiss Ch. 5.1-5.6sample midterm (pdf). sample solutions (pdf)
10/26Hashing (probing hash tables). Midterm exam on 10/28, 10/29
11/2 Priority Queues (Heaps). Weiss Ch. 6.1-6.5
11/9Sorting Algorithms I, Sorting II Weiss Ch. 7.1-7.7, 7.11
11/16Graphs. Graph Search. Shortest Paths (updated). Weiss Ch. 9.1-9.3
11/23 Spanning Trees. Weiss Ch. 9.5
11/30 Applications of DFS. Algorithm Design Techniques (updated). Weiss 9.6, 10.1-10.3
12/6 Final review. NP Completeness (Wednesday) /Data Structures in OS (Thursday). Weiss 9.7Sample final questions on Courseworks.
TBD Final exam.

We will make code from the lecture and recitation sessions available through a Git repository (coming soon).