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.

 (Notes)
Date Topics Reading Due dates
January 17 (Th) About the course (Notes)    
January 22 (T) No class    
January 24 (Th) Objects and classes; Java basics (guest lecture by Dr. Lewis) T:1 (skim); T:2; C2J:1-9 (skim)  
January 29 (T) Objects, classes, and Java basics (review/continued) (Notes)    
January 31 (Th) UML diagrams; inheritance in Java (Notes) C2J:10-11 Homework 1 (design)
February 5 (T) Interfaces in Java; packages and importing; generics (Notes) C2J:12-16  
February 7 (Th) Arrays and string processing in Java (Notes) C2J:17-18; API for java.lang.String Homework 1 (code)
February 12 (T) Sorting, searching, and manipulating arrays (Notes) T:11 Quiz 1
February 14 (Th) Threads (Notes) C2J:19 Homework 2 (design)
February 19 (T) Array-based stacks and queues (guest lecture by Dr. Lewis) (Notes I would have used) T:6 (sections 1-3, 5); T:7 (sections 1-3, 6-7)  
February 21 (Th) No class T:4 Homework 2 (code)
February 26 (T) Linked lists (Notes) T:4 Quiz 2
February 28 (Th) Iterators (Notes) T:8 Homework 3 (design)
March 4 (T) List-based stacks and queues; priority queues (Notes) T:6 (sections 4, 6-7); T:7 (sections 4-5, 8) Quiz 3; Homework 3 (code)
March 6 (Th) Exceptions; review for midterm (Notes) C2J:22  
March 11 (T) Midterm exam (Review in HTML, PDF)   Homework 4 (design)
March 13 (Th) GUIs in Java (Notes) C2J:20; Sun's tutorial Learning Swing by Example  
March 18 (T) No class (holiday)    
March 20 (Th) No class (holiday)    
March 25 (T) GUIs in Java, continued (Notes)   Homework 4 (code)
March 27 (Th) Graphics in Java C2J:21; Sun's tutorial Implementing a Custom Component (skim); Sun's tutorial 2D Graphics (skim) Homework 5 (design)
April 1 (T) No class    
April 3 (Th) No class    
April 8 (T) Recursion (Notes) T:10; T:11 (sections 9-10) Quiz 4; Homework 5 (code)
April 10 (Th) Trees and sorted binary trees (Notes) T:12; T:13 (sections 1-3); T:15 (sections 1, 3, 5)  
April 15 (T) No class   Homework 6 (design)
April 17 (Th) Heaps and heap-based priority queues (Notes) T:15 (sections 1, 3, 5) Quiz 5; Homework 6 (code)
April 22 (T) Files and I/O in Java (Notes) C2J:25; Sun's tutorial I/O (skim)    
April 24 (Th) Networking and sockets in Java; RMI (Notes) C2J:25-26; Sun's tutorial Custom Networking (skim) Quiz 6; Homework 7 (design)
April 29 (T) Multithreading in Java (Notes) C2J:24  
May 1 (Th) Course wrap-up and evaluations (Notes) C2J:23 Homework 7 (code)
May 10 (Sa), 2pm Final exam (Review in HTML, PDF)   Homework 8 (design and code)