The schedule below lists the reading material, recommended start dates for assignments, and topics covered. Due dates for assignments appear on Canvas.
| Week 1: Program structure | |||
| Mar 28 | Syl., 1 | SA 1 | Introduction. Functions, abstraction, and style. |
| Mar 30 | 2 | SA 2 | Variables and expressions. |
| Apr 1 | 3 | SA 3 | Loops and conditions. |
| Week 2: Flow of control. Animation. | |||
| Apr 4 | 5 | SA 4 | Parameters, return value, and scope. |
| Apr 6 | Review and questions | ||
| April 7 | Exam 1: Chapters 1, 2, 3, 5 | ||
| Apr 8 | 6 | SA 5 | Animation, user input, global variables. |
| Week 3: Lists and loops. | |||
| Apr 11 | 7 | Lab 1 | Lists. |
| Apr 13 | 7 | Lists and for-loops. Aliasing. | |
| Apr 15 | 8, 9 | Reading from files. Nested loops. | |
| Week 4: Physical simulation, classes, and objects | |||
| Apr 18 | 10 | SA 6 | Physical simulation. |
| Apr 20 | Review and questions. | ||
| Apr 21 | Exam 2: chapters 6-10 | ||
| Apr 22 | 11 | Classes and objects. | |
| Week 5: Classes and objects | |||
| Apr 25 | 11 | SA 7 | Objects, continued. |
| Apr 27 | 11 | SA 8 | Example of object-oriented design: Pong |
| Apr 29 | 12 | Lab 2 | Recursion. |
| Week 6: Algorithms and sorting | |||
| May 2 | 12 | Recursion, continued. | |
| May 4 | Review and questions. | ||
| May 5 | Exam 3: chapters 11-12 | ||
| May 6 | No class, enjoy the weekend. | ||
| Sorting and data structures | |||
| May 9 | 13 | Lab 3 | Sorting: insertion sort and merge sort |
| May 11 | 13 | Lab 3 | Sorting: merge sort and quicksort |
| May 13 | 16 | SA 9 | Stacks, queues, and dictionaries. |
| Week 8: Graphs and graph algorithms | |||
| May 16 | 17 | Linked lists. | |
| May 18 | 18 | SA 10 | Graphs. |
| May 20 | 18 | Lab 4 | Breath-first search. |
| Week 9: Algorithm analysis | |||
| May 23 | 14 | Algorithm analysis. | |
| May 25 | 15 | Analysis of sorting. | |
| May 27 | TBD | ||
| Week 10: Review | |||
| June 1 | Review day. | ||