January 12
                    
Continue Lecture 2
January 17
                    
Finish Lecture 2 and
                    
Lecture 3: ADT and Java Interfaces
January 19
                    
Lecture 4: Dictionaries, Binary Search, Recurrence Equations
January 24
                    
Finish Lecture 4 and
                    
Lecture 5: Hash Tables
January 26
                    
Continue Lecture 5
January 31
                    
Finish Lecture 5 and
                    
Lecture 6: Trees
February 2
                    
Continue Lecture 6
February 7
                    
Finish Lecture 6 and
                    
Lecture 7: Priority Queues and Heaps
February 9
                    
Lecture 8: Binary Search Trees
February 14
                    
Lecture 9: AVL Trees: definition, properties, insertion.
February 16
                    
Lecture 10: AVL Trees: deletion
February 28
                    
MIDTERM Exam
March 1
                    
Lecture 11: Muli-way trees and (2-4) trees: definition, properties, search, insertion
March 6
                    
Finish Lecture 11, and
                    
Lecture 12 B trees.
                    
March 8
                    
Lecture 13 Graphs: definitions, notation.
March 13
                    
Lecture 14: Graph Representation, DFS, Applications of DFS
March 15
                    
Continue Lecture 14
March 20
                    
Finish Lecture 14 and
                    
Lecture 15: BFS.
                    
Lecture 16: Directed Graphs.
March 22
                    
Finish Lecture 16
March 27
                    
Lecture 17: Weighted Graphs, Shortest Paths.
March 29
                    
Lecture 18: Minimum Spanning Trees.
April 3
                    
Finish Lecture 17 and
                    
Lecture 19: Sorting.
April 5
                    
Finish Lecture 19
April 10
                    
Review for the Final Exam