CSCI 1321 (Principles of Algorithm Design II):
Lecture Topics and Assignments

The table below shows what we will be discussing in each class meeting, readings, dates of exams, and due dates for homeworks. Dates of exams are fixed; other items are subject to change. Readings are from Dr. Lewis's Object-Oriented Programming with Java unless otherwise indicated. Homework is due at 11:59pm on the date shown, unless otherwise indicated.

(Notes)
Date Topics Reading Due dates
January 13 (Th) No class    
January 18 (T) About the course (Notes)    
January 20 (Th) Objects and classes; a little about Java basics (Notes) 1, 2  
January 25 (T) Java basics, continued (Notes) 3.1-3.7  
January 27 (Th) Strings and arrays in Java (Notes) 4-5  
February 1 (T) No class    
February 3 (Th) No class    
February 8 (T) Inheritance in Java (Notes) 3.8-3.9  
February 10 (Th) Inner classes; generics; enumerations (Notes) 3.10-3.12  
February 15 (T) Exceptions (Notes) 3.13-3.16 Quiz 1; Homework 1 (design)
February 17 (Th) Review/recap of o-o concepts, miscellaneous Java features (Notes)   Homework 1 (code)
February 22 (T) No class    
February 24 (Th) Sorting and searching (Notes) 6 Quiz 2; Homework 2 (design)
March 1 (T) No class    
March 3 (Th) Sorting and searching, continued   Homework 2 (code)
March 8 (T) Array-based stacks and queues (Notes) 9 Homework 3 (design)
March 10 (Th) Linked lists and iterators (Notes) 10, 11 Quiz 3
March 15 (T) Spring break    
March 17 (Th) Spring break    
March 22 (T) Midterm exam (Review in HTML, PDF)   Homework 3 (code)
March 24 (Th) Linked lists and iterators, continued (Notes)   Homework 4 (design)
March 29 (T) List-based stacks and queues; priority queues (Notes) 13,14 Homework 4 (code)
March 31 (Th) No class    
April 5 (T) GUIs in Java (Notes) 7 Quiz 4; Homework 5 (design)
April 7 (Th) GUIs in Java, continued; graphics in Java (Notes) 12 Homework 5 (code)
April 12 (T) No class    
April 14 (Th) Graphics, continued; multithreading (Notes) 8 Homework 6 (design)
April 19 (T) Recursion; trees; binary search trees (Notes) 16, 17, 18; also the Wikipedia article on binary search trees Quiz 5; Homework 6 (code)
April 21 (Th) Heaps (Notes) 23; also the Wikipedia article on heaps  
April 26 (T) Files and I/O; a little about networking and sockets in Java (Notes) 20, 21 Quiz 6; Homework 7 (design)
April 28 (Th) A little more about networking; course wrap-up and evaluations (Notes)   Homework 7 (code)  
May 9 (M), 8:30am Final exam (Review in HTML, PDF)   Homework 8 (design and code)