Tuesday
Wednesday
Friday
Week 0:
No class
August 31
No class
September 1
Session 1
September 3
Introduction to Python and PyCharm.
Objects: Constructing, methods, instance variables.
Week 1:
Session 2
September 7
Expressions, names (variables), and assignment.
Objects: Constructing, methods, instance variables.
Functions and methods. Parameters and arguments.
Control flow.
Session 3
(September 8)
Loops and summing.
Scope, namespaces, returning values.
Unit testing, specifications, and test-first programming.
Objects and APIs.
Session 4
(September 10)
Conditionals / Boolean Logic.
The Accumulator Pattern and Counting.
Pair programming
The first-do-a-concrete-example-by-hand principle.
Week 2:
Session 5
(September 14)
Debugging and stack traces.
Code reviews.
Exam 1 practice.
Session 6
(September 15)
Tracing code by hand.
More Exam 1 practice.
Session 7
(September 17)

No regular class.

Exam 1 is an EVENING exam on Monday, September 20, from 7:30 p.m. to 10:30 p.m. Rooms TBA.
Week 3:
Session 8
(September 21)
Names and references, box-and-pointer diagrams.
Classes: the concept and notation.
Implementing classes.
Session 9
(September 22)
More implementing classes.
Determining when instance variables are needed.
Session 10
(September 24)
Range expressions.
Sequences.
Week 4:
Session 11
(September 28)
Patterns for sequences.
Session 12
(September 29)
More patterns for sequences.
Session 13
(October 1)
Exam 2 practice.
Solving larger problems, combining patterns.
Week 5:
Session 14
(October 5)
Tracing code by hand through class implementations.
More Exam 2 practice.
Session 15
(October 6)

No regular class.

Exam 2 is an EVENING exam on Wednesday, October 6, from 7:30 p.m. to 10:30 p.m. Rooms TBA.
Session 16
(October 8)
Console input.
The wait-until-event pattern, WHILE (indefinite) loops.
Week 6:
Session 17
(October 12)
Loops within loops, sequences within sequences.
Two-dimensional printing and graphics.
Session 18
(October 13)
More loops within loops, sequences within sequences.
Fall break
October 14-15
Week 7:
Session 19
(October 19)
Mutating sequences, box-and-pointer diagrams.
Implementing classes, revisited.
Session 20
(October 20)
Exam 3 practice.
Session 21
(October 22)
Capstone Team Project: introduction and PyGame Tutorials.
Note that Exam 3 is an EVENING exam; see Session 22.
Week 8:
Session 22
(October 26)

No regular class.

Exam 3 is an EVENING exam on the PREVIOUS evening, that is, on Monday, October 25, from 7:30 p.m. to 10:30 p.m. Rooms TBA.
Session 23
(October 27)
PyGame Tutorials continue.
Capstone Team Project: your game begins.
Session 24
(October 29)
PyGame Tutorials continue.
Capstone Team Project: your game continues.
Week 9:
Session 25
(November 2)
PyGame Tutorials continue.
Capstone Team Project: your game has implemented initial features.
Session 26
(November 3)
PyGame Tutorials end.
Capstone Team Project: your game continues.
Session 27
(November 5)
Capstone Team Project: your game is playable, essential features are implemented.
Week 10:
Session 28
(November 9)
Capstone Team Project: your game continues.
Session 29
(November 10)
Capstone Team Project: your game continues.
Session 30
(November 12)
Capstone Team Project: your game is complete or nearly so.
Exam week
Final exam and project due
Day and time TBD.
Final exam and project due
Day and time TBD.
Final exam and project due
Day and time TBD.