Course Schedule
| Week | Day | Date | Topic | Reading Due | HW Due |
| 1 | M | August 29 | Introduction | ||
| W | August 31 | Bits, bytes, and logic | Hillis, chapters 1-3; Harel chapter 1 | ||
| F | September 2 | Truth tables and circuits | Hillis, chapters 4-6 | ||
| 2 | M | September 5 | Abstraction | Hillis, chapters 7-9 | |
| W | September 7 | Control structures and variables | Harel, pp. 19-26, 33-38 | HW 1 | |
| F | September 9 | Bubble sort and subroutines | pp. 26-30 | ||
| 3 | M | JSeptember 12 | Recursion | pp. 30-33; Knuth article | |
| W | September 14 | Recursion | |||
| F | September 16 | Stacks and Queues; Traversing a maze | pp. 38-39 | HW 2 | |
| 4 | M | September 19 | More on maze traversals | ||
| W | September 21 | Infix to postfix notation | |||
| F | September 23 | Evaluating postfix expressions | |||
| 5 | M | September 26 | Binary search trees and traversals | pp. 39-44 | HW 3 |
| W | September 28 | Treesort and infix/postfix | |||
| F | September 30 | Exam 1 | |||
| 6 | M | October 3 | Programming languages | pp. 49-58 | |
| W | October 5 | Review exam and Writing | Handouts and Writing with Sources | ||
| F | October 7 | Imperative languages and Python | pp. 58-64 | HW 4 | |
| 7 | M | October 10 | Paper topics | ||
| W | October 12 | Python | |||
| F | October 14 | Python | |||
| 8 | M | October 17 | Sequential search | ||
| W | October 19 | Binary search | pp. 81-85 | Paper 1 draft 1 | |
| F | October 21 | HW 5 | |||
| 9 | M | October 24 | Divide and Conquer Min/Max algorithm | pp. 85-86 | |
| W | October 26 | Mergesort algorithm | |||
| F | October 28 | Greedy algorithms; MST | pp. 87-88 | ||
| 10 | M | October 31 | Huffman coding | Paper 1 draft 2 | |
| W | November 2 | Dynamic programming; shortest paths | pp. 89-91 | HW 6 | |
| F | November 4 | NO CLASS | |||
| M | November 7 | NO CLASS | |||
| 11 | W | November 9 | Bellman-Ford shortest path algorithm | Paper 1 final draft | |
| F | November 11 | Sequence alignment algorithm | |||
| 12 | M | November 14 | Sequence alignment algorithm | HW 7 | |
| W | November 16 | Exam 2 | |||
| F | November 18 | Paper 2 draft 1 | |||
| November 21-25 | Thanksgiving Break | ||||
| 13 | M | November 28 | Algorithm correctness Algorithm efficiency: linear and binary searches | pp. 99-107, 129-138 | |
| W | November 30 | Algorithm efficiency: bubblesort and mergesort | pp. 139-143 | ||
| F | December 2 | Intractability and NP-complete problems | pp. 159-180 | Paper 2 final draft | |
| 14 | M | December 5 | Noncomputable problems | pp. 191-205 | |
| W | December 7 | Review for Exam 3 | HW 8 | ||
| F | December 9 | Exam 3 | |||
| T | December 13 | Final paper due | Final paper |
