Schedule

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.