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.

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