| 1/20 | Course introduction & overview |
| 1/24 | Java basics |
| 1/27 | Classes and abstract data types (ADTs) |
| 2/03 | Lists as arrays |
| 2/07 | Sets as lists |
| 2/10 | Computational complexity |
| 2/14 | Simple searching & sorting |
| 2/17 | Memory allocation |
| 2/21 | Linked-lists |
| 2/24 | Arrays vs. linked-lists |
| 2/28 | Recusion review |
| 3/02 | Stacks |
| 3/06 | Queues |
| 3/09 | Heaps |
| 3/13 | no class ---- Spring Break |
| 3/16 | no class ---- Spring Break |
| 3/20 | no class ---- Spring Break |
| 3/23 | no class ---- Spring Break |
| 3/27 | Priority queues |
| 3/30 | Tree structures |
| 4/03 | Binary search trees |
| 4/06 | Balanced binary trees |
| 4/10 | Hash functions |
| 4/13 | Hash tables |
| 4/17 | More sorting |
| 4/20 | and more sorting |
| 4/24 | Greedy algorithms |
| 4/27 | Minimum spanning trees |
| 5/01 | Graphs |
| 5/04 | Shortest-path problems |
| 5/08 | ??? |
| 5/11 | ??? |