
Staff Contact Information 


Instructor
Teaching Fellows:
Course Assistants and Labs

Professor Snyder Wenxin Feng Baichuan Zhou Course Assistants: Andrew, Amalia, Kyle, Viviana, Beth, Srivedi, Monica, and Mahir 



Course Schedule 

Lecture 
Date 
Lecture Topic 
Readings (Java = "Java in a Nutshell") 
Lecture Slides and Code Examples 
Homeworks and Tests 
Labs 
1 
T 1/20 
Overview of Course & Course Policies; Motivational Lecture: Two algorithms for searching an arrayalgorithm, implementation, analysis, and experiments 
Syllabus; 


2 
R 1/22  Introduction to Java: compilation vs interpretation, expressionoriented vs statementoriented, and types.  Read Ch. 1 of Java; and start to look at Ch. 2 up through expressions

Used the board and Dr. Java!

HW01: HTML Part A Solution: HTML 
Lab 01: HTML 
T 1/27  Snow Day! 


3  R 1/29  Java continued: increment and decrement operators, control structures  Continue to read Chapter 2 through the material on increment/decrement operators (++ and ) and control structures (emphasize if, while, and for)  Used the board and Dr. Java!  HW02: HTML Part A Solution: HTML 
Lab 02: HTML 
4  T 2/3  Finishing loops: break and continue; Array literals (how to initialize an array); Defining a static class; The words static, public, & private; Defining and using methods; Local variables vs fields; Scope of variables and fields 
Please read through the next couple sections of the textbook, on defining methods, on the array data type, and on defining classes, but STOP when you get to the part about defining objects using the word new.  Used the board and Dr. Java!  
5  R 2/5  Defining objects (nonstatic classes);  Read the sections in the textbook on "Creating Objects" and "Using Objects"  Used the board and Dr. Java!  HW03: HTML Part A Solution: HTML 
Lab03: HTML 
T 2/10  Snow Day!.  
6  R 2/12  ObjectOriented Design  Lecture 6: PDF  HW04: HTML Part A Solutions: HTML 
Lab04: HTML  
T 2/17  No class  Monday schedule  
7  R 2/19  Reference types: How are the variables for arrays and objects different than for primitive types? Fixing a big problem with stacks and queues: Array resizing Implementing Queues with Ring Buffers. 
Read textbook section on "Array Types" (most of this you already know), and first subsection of "Reference Types" on "Copying Objects and Arrays"; Optional: Read about "Ring Buffers" on Wikipedia 
Lecture 7: PDF  HW05: HTML  Lab 05: HTML 
8  T 2/24  Polymorphic ADTs; Generic classes; Introduction to sorting: Iterative sorts: Insertion & Selection Sort; 
 Lecture 8: PDF  Here is a nice Youtube minilecture on sorting, with associated lectures on all the major sorting algorithms.  
9  R 2/26  Analysis of algorithms, "Big Theta" notation, experimental verification by timing analysis; Complexity analysis of iterative sorts; Recursive sorting: Mergesort

Lecture 9: PDF  HW 06: HTML  Lab 06: HTML  
10  T 3/3  Recursive sorting: Quicksort; Complexity analysis of recursive sorts 
Last day to drop a class without a "W" on your transcript.  
11  R 3/5  Introduction to Linked Lists; Stacks and Queues with LLs  Notes on Iterative LL Algorithms  No HW this week!  No lab this week!  
SPRING BREAKEAK  
12  T 3/17 
Basics of List Processing: Iterative Algorithms  Notes on Iterative LL Algorithms  
W 3/18  Midterm Review Session  
R 3/19  Midterm Exam  HW 07: HTML  Lab 07: HTML  
14  Sat 3/21  Recursive algorithms on LLs  
15  T 3/24  Recursive algorithms on LLs  
16  R 3/26  Binary Trees, Binary Search Trees; Searching and Insertion in BSTs.  HW 08: HTML  Lab 08: HTML  
17  T 3/31  Deletion from BSTs; Recursive tree traversals; Iterative tree traversals using an explicit stack  BinaryTreeCode.html  
18  R 4/2  Performance of BSTs; 23 Trees  HW 09: HTML  Lab 09: HTML Friday 4/3 is last day to drop with a "W". 

19  T 4/7  23 Trees concluded; BTrees and external data structures  Please look at the following Wiki Article: HTML  
20  R 4/9  Array representation of binary trees; Binary Heaps, Heapsort  HW 10: HTML  Lab 10: HTML  
21  T 4/14  The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining  
22  R 4/16  Hash Tables with Linear Probing; Performance of Hash Tables  HW 11: HTML (MiniGoogle)  Lab 11: HTML  
23  T 4/21  Statespace search, recursive backtracking  
24  R 4/23  Game trees: adversary search; implementation issues; example TicTacToe program  HW 12: HTML (Team project: game)  Lab 12: HTML  
25  T 4/28  Alphabeta pruning and refinements to gametree search  
27  R 4/30  Last Lecture: Conclusions, Wrapup, and Course Evaluations  
T 5/5  Final Exam Review Session  
W 5/6  Final Exam 