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 24 (Th) About the course (Notes)    
August 29 (T) Objects and classes; Java basics (Notes) T:1 (skim); T:2; C2J:1-2  
August 31 (Th) More Java basics (Notes) C2J:3-9  
September 5 (T) No class    
September 7 (Th) No class    
September 12 (T) UML diagrams; inheritance in Java (Notes) C2J:10-11 Homework 1 (design)
September 14 (Th) Interfaces in Java; packages and importing; generics (Notes) C2J:12-16 Homework 1 (code)
September 19 (T) String processing (Notes) C2J:17; API for java.lang.String Quiz 1
September 21 (Th) Arrays (Notes) C2J:18 Homework 2 (design)
September 26 (T) Sorting, searching, and manipulating arrays (Notes) T:11 (sections 1-8) Quiz 2; Homework 2 (code)
September 28 (Th) More about sorting; exceptions (Notes)    
October 3 (T) Array-based stacks and queues (Notes) T:6 (sections 1-3, 5); T:7 (sections 1-3, 6-7) Quiz 3; Homework 3 (design)
October 5 (Th) Miscellaneous review (Notes)    
October 10 (T) Midterm exam (Review in HTML, PDF)   Homework 3 (code)
October 12 (Th) Linked lists (Notes) T:4  
October 17 (T) Iterators (Notes) T:8 Homework 4 (design)
October 19 (Th) List-based stacks, queues, and priority queues (Notes) T:6 (sections 4, 6-7); T:7 (sections 4-5, 8) Homework 4 (code)
October 24 (T) No class    
October 26 (Th) GUIs in Java (Notes) Sun's tutorial Learning Swing by Example Quiz 4
October 31 (T) GUIs in Java, continued (Notes) C2J:20 Homework 5 (design)
November 2 (Th) Graphics in Java (Notes) C2J:21;Sun's tutorial Implementing a Custom Component   Homework 5 (code)
November 7 (T) Graphics in Java, continued (Notes) C2J:21;Sun's tutorial 2D Graphics (skim)  
November 9 (Th) Recursion (Notes) T:10; T:11 (sections 9-10) Homework 6 (design)
November 14 (T) No class   Homework 6 (code)
November 16 (Th) Trees and sorted binary trees (Dr. Lewis's notes) T:12; T:13 (sections 1-3); T:15 (sections 1, 3, 5)  
November 21 (T) Heaps and heap-based priority queues (Notes) T:15 (sections 1, 3, 5) Quiz 5
November 23 (Th) No class (holiday)    
November 28 (T) Files and I/O in Java (Notes) Sun's tutorial I/O (skim)  
November 30 (Th) Multithreading in Java (Notes) Sun's tutorial Concurrency (optional) Quiz 6; Homework 7 (design)
December 5 (T) A little about networking in Java; course wrap-up and evaluations (Notes) Sun's tutorial Custom Networking (optional) Homework 7 (code); Homework 8 (design)
December 13 (8:30am) Final exam (Review in HTML, PDF)   Homework 8 (code)