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 27 (Th) No class    
September 2 (T) About the course (Notes)    
September 4 (Th) (Notes) Objects and classes; Java basics T:1 (skim); T:2; C2J:1-9 (skim)  
September 9 (T) More Java basics (Notes)    
September 11 (Th) UML diagrams; inheritance in Java; (Notes) C2J:10-11 Homework 1 (design)
September 16 (T) Interfaces in Java; packages and importing; generics (Notes) C2J:12-16  
September 18 (Th) Arrays and string processing in Java (Notes) C2J:17-18; API for java.lang.String Homework 1 (code)
September 23 (T) Sorting, searching, and manipulating arrays (Notes) T:11 Quiz 1
September 25 (Th) Sorting and searching, continued; threads (Notes) C2J:19 Homework 2 (design)
September 30 (T) No class    
October 2 (Th) No class    
October 7 (T) Threads, continued (Notes)   Quiz 2; Homework 2 (code)
October 9 (Th) Exceptions; review for midterm (Notes) C2J:22  
October 14 (T) Midterm exam (Review in HTML, PDF)   Homework 3 (design)
October 16 (Th) Array-based stacks and queues (Notes) T:6 (sections 1-3, 5); T:7 (sections 1-3, 6-7)  
October 21 (T) No class    
October 23 (Th) No class    
October 28 (T) Linked lists (Notes) T:4 Homework 3 (code)
October 30 (Th) Iterators (Notes) T:8 Quiz 3; Homework 4 (design)
November 4 (T) List-based stacks and queues; priority queues (Notes) T:6 (sections 4, 6-7); T:7 (sections 4-5, 8) Homework 4 (code)
November 6 (Th) GUIs in Java (Notes) C2J:20; also skim Sun's tutorial Learning Swing by Example Quiz 4; Homework 5 (design)
November 11 (T) GUIs in Java, continued (Notes)    
November 13 (Th) Graphics in Java (Notes) C2J:21; Sun's tutorial Implementing a Custom Component (skim); Sun's tutorial 2D Graphics (skim) Homework 5 (code)
November 18 (T) Recursion; trees (Notes) T:10; T:11 (sections 9-10) Homework 6 (design)
November 20 (Th) No class    
November 25 (T) Sorted binary trees; heaps and heap-based priority queues (Notes) T:12; T:13 (sections 1-3); T:15 (sections 1, 3, 5) Quiz 5; Homework 6 (code)
November 27 (Th) Holiday    
December 2 (T) Files and I/O in Java (Notes) C2J:25; Sun's tutorial I/O (skim) Homework 7 (design)
December 4 (Th) Networking and sockets in Java; RMI (Notes) C2J:25-26; Sun's tutorial Custom Networking (skim) Quiz 6
December 9 (T) Course wrap-up and evaluations (Notes)   Homework 7 (code)
December 17 (W), 8:30am Final exam Review in HTML, PDF)   Homework 8 (design and code)