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 (from the textbook unless otherwise indicated), dates of exams, and due dates for homeworks. Dates of exams are fixed; other items are subject to change.

 
Date Topics Reading Due dates
August 25 (Th) About the course (Notes)    
August 30 (T) No class    
September 1 (Th) Objects, classes, and UML; introduction to Java basics (Notes) 1 (skim), 2  
September 6 (T) Java basics, continued (Notes) Dr. Lewis's From C to Java  
September 8 (Th) No class    
September 13 (T) Inheritance in Java (guest lecture, Dr. Lewis) (Notes)    
September 15 (Th) More about Java and inheritance (Notes)    
September 20 (T) Generics in Java (Notes)   Homework 1 (design)
September 22 (Th) Strings; arrays (Notes)   Quiz 1; Homework 1 (code)
September 27 (T) Homework review; more about arrays (Notes)   Homework 2 (design)
September 29 (Th) Sorting, searching, and manipulating arrays (Notes) 5 (optional) Quiz 2; Homework 2 (code)
October 4 (T) No class    
October 6 (Th) Array-based stacks and queues (guest lecture, Dr. Lewis) (Notes) 6.1, 6.2, 6.3, 6.5, 7.1, 7.2, 7.3, 7.6, 7.7  
October 11 (T) More about sorting and searching; introduction to linked lists (Notes)   Homework 3 (design)
October 13 (Th) Linked lists, continued (Notes) 3, 4, 8 Quiz 3; Homework 3 (code)
October 18 (T) Midterm exam (Review in HTML or PDF)    
October 20 (Th) Exceptions (Notes)    
October 25 (T) GUIs in Java, introduction (Notes)   Homework 4 (design)
October 27 (Th) List-based stacks, queues, and priority queues (Notes) 6.4, 6.6, 6.7, 7.4, 7.5, 7.8 Homework 4 (code)
November 1 (T) GUIs in Java, continued (Notes) Sun's tutorial Learning Swing by Example  
November 3 (Th) GUIs in Java, continued (Notes)   Quiz 4
November 8 (T) Graphics in Java (Notes) Sun's tutorial Implementing a Custom Component Homework 5 (design)
November 10 (Th) Graphics in Java, continued (Notes)   Homework 5 (code)
November 15 (T) No class    
November 17 (Th) No class    
November 22 (T) Recursion (Notes) 4 Homework 6 (design)
November 24 (Th) No class (holiday)    
November 29 (T) Trees, sorted binary trees, and heaps (Notes) 12, 13.1., 13.2, 13.3, 15.1, 15.3, 15.5 Quiz 5
December 1 (Th) Files and I/O in Java (Notes) Sun's tutorial I/O Quiz 6; Homework 6 (code)
December 6 (T) Course wrap-up and evaluations, plus a little about threads and networking (Notes)    
December 14 (8:30am) Final exam (Review in HTML or PDF)   Homework 7 (design and code) and/or Homework 8 (design and code)