
Staff Contact Information 


Instructor
Teaching Fellows:
Course Assistants and Labs
Resources 



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 HW01.PartA.Solution: 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)
PriorityQueueGradingClient.java Solution Graph for Problem B.3: PNG HW02.PartA.Solution: HTML 
Lab 02 (Java Generics): HTML 
7 
T 9/23  Recursion  Review your CS 111 materials; read my Notes on Recursion.  Lecture07.pdf  
8 
R 9/25  Recursive sorts: Mergesort and Quicksort; analysis and experiments.  pp.270277; 288292  Lecture08.pdf  HW03: HTML Code Distribution: ZIP HW03.PartA.Solution: HTML 
Lab 03 (Debugging): HTML 
9 
T 9/30  Introduction to Linked Lists; Stacks and Queues with LLs; Generics and LLs.  pp.142153  Lecture09.pdf  
10 
R 10/2  Basics of List Processing; Iteration vs Recursion  Used the board!  HW04: HTML Solution to Part A: JAVA 
Lab 04 (Linked List Processing): HTML  
11 
T 10/7  Recursive algorithms on LLs  Used the board and the lecture notes to the left! 


12 
R 10/9  Recursive algorithms on LLs  Used the board and the lecture notes to the left! Here are the slides on Exceptions: PPT  HW05: HTML No Part A! 
Lab 05 (Exceptions): HTML  
T 10/14  Monday Schedule: NO CLASS  
13 
R 10/16  Binary Trees, Binary Search Trees  pp.396414; BinaryTreeCode.htm  Lecture13.pdf  Lab 06: HTML 

14 
T 10/21  Recursive Algorithms on BSTs; Recursive tree traversals; Iterative tree traversals using an explicit stack  pp.396414; Please look at the following Wiki Article: HTMLBinaryTreeCode.htm  Lecture14.pdf  HW06: HTML HW06 Part A Solution: HTML 

15 
R 10/23  Performance of BSTs; 23 Trees  pp.424431; there are also various Java Applets on the web which will demonstrate how insert works! 
Lecture15.pdf  Lab 07: HTML  
16 
T 10/28  23 Trees concluded; BTrees and external data structures; Array representation of binary trees;  pp. 313  316 on binary heaps 
Used the board!  
17 
R 10/30  Binary Heaps, Heapsort; Comments on Midterm  pp. 313  316 on binary heaps; Midterm Study Guide: HTML 
Used the board! Here is how heapSort does compared to the other algorithms: Avg, Worst 
No HW this next week; study for the midterm exam!  No lab this week! 
18 
T 11/4  Midterm Exam 

Midterm study guide is above in Announcements. 


19  R 11/6  The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining  Used the board! Here is a summary: How to Implement Hash Tables in Five Minutes or Less: HTML 
Lab08: HTML  
20  T 11/11  Hash Tables with Linear Probing; Performance of Hash Tables  Used the board! Here is the code for Linear Probing that I put on the board: JAVA 
HW07: HTML Short note on Cosine Similarity: HTML 

21  R 11/13  Presentation of HW 07  Lab09: HTML  
22  T 11/18  Directed Graphs and State Space Search  Lecture22.pdf  
23  R 11/20  Game trees: adversary search; implementation issues; example TicTacToe program  Reading on MinMax Search and ABPruning  
24  T 11/25  Presentation of final project  HW08: HTML  
Thanksgiving Break!  
25  T 12/2  Alphabeta pruning and refinements to gametree search;  Reading on MinMax Search and ABPruning  
26  R 12/4  Directed Graphs continued; Undirected graphs  
27  T 12/9  Undirected graphs concluded and course review  
R 12/18  Final Exam  12:302:30 