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. |