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 the textbook (T:1 means chapter 1 of the textbook) or Dr. Lewis's From C to Java (C2J:1 means section 1 in this document) unless otherwise indicated.

Date Topics Reading Due dates
August 23 (Th) About the course (Notes)    
August 28 (T) Objects and classes; Java basics (Notes) T:1 (skim); T:2; C2J:1-9 (skim)  
August 30 (Th) UML diagrams; inheritance in Java (Notes) C2J:10-11 Homework 1 (design)
September 4 (T) Interfaces in Java; packages and importing; generics (Notes) C2J:12-16  
September 6 (Th) No class    
September 11 (T) No class    
September 13 (Th) No class    
September 18 (T) A little more about generics; arrays (Notes) C2J:18 Homework 1 (code)
September 20 (Th) String processing (Notes) C2J:17; API for java.lang.String Quiz 1; Homework 2 (design)
September 25 (T) Sorting, searching, and manipulating arrays (Notes) T:11 (sections 1-8) Homework 2 (code)
September 27 (Th) Exceptions (Notes)   Quiz 2
October 2 (T) Array-based stacks and queues (Notes) T:6 (sections 1-3, 5); T:7 (sections 1-3, 6-7)  
October 4 (Th) More about homework; review for midterm (Notes)   Quiz 3; Homework 3 (design)
October 9 (T) Midterm exam (Review in HTML, PDF)   Homework 3 (code)
October 11 (Th) Linked lists (Notes) T:4  
October 16 (T) Iterators (Notes) T:8 Homework 4 (design)
October 18 (Th) List-based stacks and queues (Notes) T:6 (sections 4, 6-7); T:7 (sections 4-5, 8) Homework 4 (code)
October 23 (T) Priority queues; GUIs in Java (Notes) Sun's tutorial Learning Swing by Example Quiz 4
October 25 (Th) GUIs in Java, continued (Notes) C2J:20 Homework 5 (design)
October 30 (T) No class    
November 1 (Th) Graphics in Java (Notes) C2J:21;Sun's tutorial Implementing a Custom Component Homework 5 (code)
November 6 (T) Graphics in Java, continued (Notes) Sun's tutorial 2D Graphics (skim)  
November 8 (Th) Recursion (Notes) T:10; T:11 (sections 9-10) Homework 6 (design)
November 13 (T) Trees and sorted binary trees (Notes) T:12; T:13 (sections 1-3); T:15 (sections 1, 3, 5) Quiz 5
November 15 (Th) Heaps and heap-based priority queues (Notes) T:15 (sections 1, 3, 5) Homework 6 (code)
November 20 (T) No class    
November 22 (Th) No class (holiday)    
November 27 (T) Files and I/O in Java (Notes) Sun's tutorial I/O (skim) Quiz 6; Homework 7 (design)
November 29 (Th) Multithreading in Java (Notes) Sun's tutorial Concurrency (skim)  
December 4 (T) A little about networking; course wrap-up and evaluations (Notes) Sun's tutorial Custom Networking (skim) Homework 7 (code)
December 7 (noon)     Homework 8 (design)
December 12 (8:30am) Final exam (Review in HTML, PDF)   Homework 8 (code)