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 quizzes and exams, and due dates for homeworks. Dates of quizzes and exams are fixed; other items are subject to change.

 
Date Topics Reading Due dates and quizzes
August 28 About the course (Notes)    
September 2 Objects, classes, and UML (Notes) 0, 1  
September 4 Java basics (Notes) 2,3,5,6  
September 9 No class    
September 11 Inheritance in Java (Notes) 4.5 Homework 1 (design)
September 16 Inheritance and polymorphism (Notes)   Homework 1 (code)
September 18 String processing (Notes) 7 Quiz 1
September 23 Arrays (Notes) 8  
September 25 Sorting, searching, and manipulating arrays (Notes)   Homework 2 (design)
September 30 Sorting and searching, continued (Notes)   Homework 2 (code)
October 2 Stacks and queues (array-based) (Notes)   Quiz 2
October 7 Linked lists (Notes) 16.1, 16.2 Homework 3 (design)
October 9 Linked lists and iterators (Notes)   Quiz 3 Homework 3 (code)
October 14 Midterm exam (Review)    
October 16 Stacks, queues, and priority queues (list-based) (Notes) 16.3, 16.4 Homework 4 (design)
October 21 Exceptions in Java (Notes) 11 Homework 4 (code)
October 23 GUIs in Java (Notes) 9  
October 28 No class   Homework 5 (design)
October 30 GUIs in Java, continued (Notes)   Homework 5 (code)
November 4 Graphics in Java (Notes) 10 Quiz 4
November 6 Recursion (Notes) 12 Homework 6 (design)
November 11 Recursion, continued (Notes)    
November 13 Binary trees (Notes)   Quiz 5 Homework 6 (code)
November 18 Heap-based priority queue (Notes)    
November 20 Threads (Notes) 13 Homework 7 (design)
November 25 Files and streams (Notes) 14  
December 2 Files and streams, continued (Notes)   Quiz 6; Homework 7 (code)
December 4 Sockets and networking (Notes) 15  
December 9 Course wrap-up (Notes)    
December 15 (8:30am) Final exam (Review)   Homework 8 (design and code)