
Staff Contact Information 


Instructor
Teaching Fellows:




Course Schedule 
Lecture 
Date 
Lecture Topic 
Readings (mostly from Sedgewick & Wayne) 
Lecture Slides and Code Examples 
Homeworks and Tests 
Labs 
1 
M 6/30 
Overview of Course & Course Policies; Motivational Lecture: Two algorithms for searching an arrayalgorithm, implementation, analysis, and experiments 
Syllabus; 

2 
T 7/1  Abstract Data Types: ObjectOriented Design, Interfaces, and the Collection ADT; array implementation and algorithms.  Section 1.2 up to p.89; web reading on interfaces: HTML

Homework One (due Thursday 7/3 @ midnight): HTML Code Distribution: Grading Clients: Solution (Part A): HTML 
Lab 01: HTML Code Distribution: 

3 
W 7/2  Collection ADT continued: advanced array manipulation: arrays as objects, references, & resizing. Stacks, Queues, & Priority Queue ADTs  Chapter 1.3 up to p.137 (but ignore the stuff about generics and iterators);  No lecture notes (used the board); 


4 
R 7/3  Implementing the Queue and Priority Queue ADTs with circular buffers  Wikipedia article on "Circular Buffers" 
QueueExample.java (ring buffer queue) 
HW02: HTML (due T 7/8) Test Clients:HW02P1Test.java 

5 
M 7/7  Polymorphic ADTs; Java Generics  pp.12223; 13435; plus: JavaPolymorphism; 



6 
T 7/8  Introduction to sorting: Iterative sorts: Insertion & selection sort; analysis of algorithms, "Big Theta" notation, experimental verification of timing analysis.  Lecture.pdf  
W 7/9  Class cancelled


7 
R 7/10  Recursion  Review your CS 111 materials; read my Notes on Recursion.  Lecture.pdf  HW03: HTML (due M 7/14) Part A Solution: HTML Solution Graph: PNG 
Lab 2 is in HW 03 
8 
M 7/14  Recursive sorts: Mergesort and Quicksort; analysis and experiments.  pp.270277; 288292  Lecture.pdf  
9 
T 7/15  Introduction to Linked Lists; Exceptions  pp.142153; also read Exceptions in Java Tutorials: HTML  Lecture.pdf  HW 04: HTML (due F 7/18) Part A Solution: HTML 
Lab 03: HTML 
10 
W 7/16  Iterative algorithms on Linked Lists; Stacks and Queues using LLs  Notes on Iterative Linked List algorithms;

Used the board for most, but here is a PPT on stacks and queues: Lecture.pdf 


11 
R 7/17  Recursive algorithms on LLs  Used the board! 

12 
M 7/21  Midterm  HW 05: HTML HW 05 Part A Solution: HTML 

13 
T 7/22  Binary Trees, Binary Search Trees  pp.396414; BinaryTreeCode.html  Lecture: PDF  Lab 04: HTML 

14 
W 7/23  Recursive Algorithms on BSTs; Recursive tree traversals; Iterative tree traversals using an explicit stack; Deletion in BSTs  pp.396414; Please look at the following Wiki Article: HTML 
Lecture on Traversals: PDF Lecture on Deletion in BSTs: PDF 

15 
R 7/24  Performance of BSTs; 23 Trees 

Lecture on 23 Trees: PDF  
16 
M 7/28  Array representation of binary trees, Heaps, Heapsort 
Here is how heapSort does compared to the other algorithms: Avg, Worst 
HW 06: HTML (due F 8/1)  
17 
T 7/29  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 
No more labs!


18 
W 7/30  Hash Tables with Linear Probing  Used the board: Here is a cleaned up version of the lecture code: HashTableLP.java  
19 
R 7/31  Game trees: minmax trees, adversary search; implementation issues  Reading on MinMax Search and ABPruning  Lecture22: PDF  HW 07: HTML (to completed by teams of two people)  
20 
M 8/4  Alphabeta pruning and other refinements of MinMax; Example of TicTacToe program;  Reading on MinMax Search and ABPruning  Lecture23: PDF  
21 
T 8/5  Undirected Graphs: Basic Notions; Depthfirst search, connected components; implementation issues  Lecture19: PDF  
22 
W 8/6  Directed graphs  Lecture21: PDF  
23 
R 8/7  Final Exam 