- Syllabus (PDF - needs Acrobat Reader)
- Textbook:Koffman, Wolfgang: Data Structures: Abstraction and Design Using Java 2nd Edition, John Wiley & Sons, 2010

- Program 1, due September 18
- Program 2, due October 10
- Program 3, due October 31
- Program 4, due November 18
There is a 5% bonus for any programming assignment submitted on or before the due date. There is no penalty for late submission. Graded programs may be resubmitted for up to 50% of the lost points.

The

**absolute deadline**for submitting programming assignments 1 and 2 is 11:59:59pm, October 17 (Monday night)The

**absolute deadline**for submitting programming assignments 3 and 4 is 11:59:59pm, November 22 (Tuesday night).

- Exam 1, Oct. 5 (Wednesday)
-- covers All notes (including those not in the textbook), Chapter 1, Chapter 2, and Labs 0-3 -- suggested problems: All self-check exercises in the specified sections, plus the problems below. Answers to Quick-Check exercises are given at the end of each chapter.
- Chapter 1 - Review Questions 1, 5, 7, 8, 10, 12; all Quick-Check Exercises
- Chapter 2 - Review Questions 1, 3, 5, 6, 7; Quick-Check Exercises 1-8, 12 and 13

- Exam 2, Nov. 9
-- covers Chapters 3-6 (except 6.5), and Labs 4-7
- suggested problems: All self-check and quick check exercises for chapters 3-5, (answers provided in the textbook); also, the following Review Questions:
- Chapter 3 - 1, 4, 5
- Chapter 4 - 1, 2, 3, 4
- Chapter 5 - Programming exercise 1 on p. 252, Review Questions 1, 2, Programming Project 5
- Chapter 6 - Quick Check Exercises 1, 2, 4, 5, 9; Review Questions 1-3.

- Final Exam, Nov 21 at 12 noon
-- covers everything with emphasis on untested material: Chapter 6 (section 6.5), 7 (through 7.4), 9.1, 9.3 (except removal), 9.4 (except removal) 9.5 (2-3-4 trees and relating them to red-black trees), and 10.1-10.4 (You are not responsible for the book's implementations in this chapter) and lab 8.
- Suggested problems:
- Chapter 6 - All remaining Quick-Check Exercises, Review Question 4
- Chapter 7 - Quick-Check Exercises 1-7, Review Questions 1,2
- Chapter 9 - Quick-Check Exercises 2-6, Review Question 3-5
- Chapter 10 - Quick-Check Exercises 1-7, 9

- Introduction
- Testing
- Case Study (Lab 1)
- Debugging & Exception Handling (appendix D, sec. 1.6)
- Inheritance and Class Hierarchies (sec 1.2-1.3)
- Java's Object class and more (sec 1.4)
- Efficiency (sec 2.4)
- The List interface and ArrayList class (ch 2)
- Linked Lists (ch 2)
- More on Linked Lists (ch 2)
- Stacks (ch 3)
- Stack Implementations (ch 3)
- Queues (ch 4)
- Recursion (ch 5)
- Introduction to Trees (ch 6)
- Binary Search Tree (ch 6)
- Table ADT and Heap (ch 6)
- 2-3 and 2-3-4 Balanced Search Trees (ch 9.4, 9.5)
- Red Black Tree Demo -- Nice graphics & interactive, but does not split 4-nodes on the way down

- Red Black Tree Implementation (ch 9.3)
- Sets and Maps (ch 7.1, 7.2)
- Hash Tables (ch 7.3)
- Graphs (ch 10)

- Java 6.0 Documentation from Oracle
- Eclipse (Java (+ others) IDE)
- BlueJ (Java IDE)
- JUnit (Unit testing framework)
- Pair Programming in Education (video & worksheet)
- Debugging Video Examples
- Towers of Hanoi
- Data Structure Visualizations - includes binary tree traversals, priority queue (using heap), heap sort, and binary search trees
- Computer Science Research Index
- The Collection of Computer Science Bibliographies