
Staff Contact Information 


Instructor
Teaching Fellows:
Course Assistants and Labs




Course Schedule 

Lecture 
Date 
Lecture Topic 
Readings (mostly from Sedgewick & Wayne) 
Lecture Slides and Code Examples 
Homeworks and Tests 
Labs 
1 
T 9/2 
Overview of Course & Course Policies; Motivational Lecture: Two algorithms for searching an arrayalgorithm, implementation, analysis, and experiments 
Syllabus; pp.838, 8081 as needed 

2 
R 9/4  Abstract Data Types: ObjectOriented Design, and Interfaces  pp.6466, 7475, 8489; also Google "Java Interfaces" and read the top link. 


3 
T 9/9  Collection ADT; advanced array manipulation: arrays as objects, references, & resizing; Stack ADT.  pp. 1819 (review of Java arrays); Chapter 1.3 up to p.137 (but ignore the stuff about generics and iterators)  HW01: HTML 

4 
R 9/11  The Queue ADT; circular buffer implementation; Priority Queue ADT.  Wikipedia article on "Circular Buffers" 
QueueClient.java (ring buffer queue) 
Lab01 (Postfix Evaluator): HTML


5 
T 9/16  Polymorphic ADTs; Generic classes; Generic classes satisfying an interface; Introduction to sorting: Iterative sorts: Insertion & selection sort;  Polymorphic ADTs and Java Generics Reading: pp.122123; 134135 plus: this and this Sorting: Reading: 244253. 


6 
R 9/18  Analysis of algorithms, "Big Theta" notation, experimental verification of timing analysis; Lexicographic order and sorting; stability of sorting algorithms. 
pp.178179 Google “lexicographic order” and read the definition..... and then Google “Sorting” and read the section on “Stability” 
Lecture06.pdf  HW02: HTML (due W 9/24)  Lab 02 (Java Generics): HTML 
7 
T 9/23  Recursion  Review your CS 111 materials; read my Notes on Recursion.  HW03: HTML  
8 
R 9/25  Recursive sorts: Mergesort and Quicksort; analysis and experiments.  pp.270277; 288292  Lab 03 (Visual Recursion)  
9 
T 9/30  Introduction to Linked Lists; Stacks and Queues with LLs;  pp.142153; also read Exceptions in Java Tutorials: HTML  HW04: HTML  
10 
R 10/2  Iteration on LLs  Iterative LLs Algorithms  Lab 04 (Implementing Linked Lists)  
11 
T 10/7  Recursive algorithms on LLs 


12 
R 10/9  Binary Trees, Binary Search Trees  pp.396414; BinaryTreeCode.html  Lab 05  
T 10/14  Monday Schedule: NO CLASS  
13 
R 10/16  Recursive Algorithms on BSTs  pp.396414;  Lab 06 

14 
T 10/21  Recursive tree traversals; Iterative tree traversals using an explicit stack  Please look at the following Wiki Article: HTML



15 
R 10/23  Performance of BSTs; 23 Trees; BTrees and external storage 

Lecture 15.pdf  
16 
T 10/28  Array representation of binary trees, Heaps, Heapsort 
Here is how heapSort does compared to the other algorithms: Avg, Worst 

17 
R 10/30  The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining  Used the board: Here is a cleaned up version of the lecture code: HashTableSC.java Here is a summary: How to Implement Hash Tables in Five Minutes or Less: HTML 

18 
Hash Tables with Linear Probing  Used the board: Here is a cleaned up version of the lecture code: HashTableLP.java 

