I have personal, handwritten lecture notes for each topic. These notes were designed for my own use during lectures, and were not originally intended as complete notes for students' use. In any event, I have decided that they might still be useful for students, and so I have scanned them and will make them available through this webpage. For each lecture, you may follow the link for the "Topic" to see copies of these notes.
Date | Topic | Reading | Lab |
---|---|---|---|
[prerequisite] | Java programming | Review Ch. 1 | |
Tues, Aug 27 |
Introduction (writing programs better) (writing better programs) |
Ch.2 (skim 2.2, 2.4.2, 2.4.3) |
Lab 00 |
Thur, Aug 29 | Stacks and Queues | Ch. 4.1, 4.2 (skim 4.2.4) |
|
Tues, Sep 3 | Analysis Tools | Ch. 3 | Lab 01 |
Thur, Sep 5 | Linked Lists | Ch. 4.3 | |
Tues, Sep 10 |
Double-ended queues (doubly-linked lists) |
Ch. 4.4 | Lab 02 |
Thur, Sep 12 |
Vector ADT and Implementation (amortization) |
Ch. 5.1 | |
Tues, Sep 17 |
List ADT and Positions
Guest Lecturer: Prof. Andy Harrington |
Ch. 5.2 | Lab 03 |
Thur, Sep 19 |
Sequences and containers; Iterators |
Ch. 5.3, 5.5, 5.6 | |
Tues, Sep 24 |
Trees (ADT, Interface) |
Ch. 6.1 | Lab 04 |
Thur, Sep 26 | First
Exam (does not include Sep. 24 material) |
||
Tues, Oct 1 |
Basic Algorithms on Trees (depth, traversals, Euler tours) |
Ch. 6.2 Ch. 6.3.4 |
Lab 05 |
Thur, Oct 3 |
Binary Trees (interface, data structures) |
Ch. 6.3.1-6.3.3 Ch. 6.4.1, 6.4.2 |
|
Tues, Oct 8 | Implementing General Trees, Introduction to Priority Queues |
Ch. 6.4.3, 6.4.4 Ch. 7.1, 7.2 (skim 7.1.2, 7.2.3) |
Lab 06 |
Thur, Oct 10 | Heaps | Ch. 7.3 | |
Tues, Oct 15 | No Class: Mid-Semester Break | ||
Thur, Oct 17 | Text Compression | Ch. 11.4 | |
Tues, Oct 22 |
Sorting (Selection, Insertion, Bubble, Heapsort, Merge) |
Ch. 5.4, 7.1.2, 7.2.3, 7.3.4, Ch. 10.1 |
Lab 07 |
Thur, Oct 24 | Quicksort | Ch. 10.3, 10.6 | |
Tues, Oct 29 |
Comparison Sorting Lower Bound Bucket-sort and Radix-sort |
Ch. 10.4, 10.5 | Lab 08 |
Thur, Oct 31 |
Dictionaries (Binary Search) |
Ch. 8.1, 8.2, 8.4, 8.5 |
|
Tues, Nov 5 | Second Exam
(does not include Oct. 31 material) |
Lab 09 | |
Thur, Nov 7 | Binary Search Trees | Ch. 9.1 | |
Tues, Nov 12 | (2,4) Trees | Ch. 9.3, 9.4 | Lab 10 |
Thur, Nov 14 | Red-Black Trees | Ch. 9.5 | |
Tues, Nov 19 |
Red-Black Trees (continued) |
Ch. 9.5 | Lab 11 |
Thur, Nov 21 | Hashing | Ch. 8.3 | |
Tues, Nov 26 | Introduction to "Graphs" (a.k.a. "networks") |
Ch. 12.1, 12.2 | Lab 12 |
Thur, Nov 29 | No Class: Thanksgiving Break | ||
Tues, Dec 3 | Traversing a Graph Depth-First Search, Breadth-First Search |
Ch 12.3 | NO LAB |
Thur, Dec 5 | No Class: Study Days | ||
Thur, Dec 12 | Final Exam (6:00-8:00pm) |