What to do, When
Monday Wednesday Thursday
Session 1
(March 4)

Introduction to: Python, Pycharm, Objects, and Simple Loops

Session 2
(March 6)

Defining Functions; Calling Functions & Methods
Using Objects
Correcting Syntax Errors
Tracing Function Calls by Hand

Session 3
(March 7)

Definite Loops, Accumulators, and Summing
Arguments and Parameters
Names: Scope and Lifetime; and Memory: The Stack, Heap and Garbage Collector
Unit Testing; Test-Driven Development
Tracing Loops by Hand; Debugging with Print

Session 4
(March 11)

The Accumulator Pattern: Summing, Counting, and in Graphics
Conditionals
Code Reviews; Tracing Code by Hand

Session 5
(March 13)

Boolean Logic
Debugging Run-Time Errors; Stack Traces
Practice for Exam 1

Session 6
(March 14)

Pair Programming
Introduction to Robots (Motion)

Session 7
(March 18)
Exercise handed out in class

Names are References to Objects
Box-and-Pointer Diagrams
Mutating Objects
The Debugger

Session 8
(March 20)
Exam 1
(to appear here at exam time)

Exam 1 - Evening Exam
Tuesday March 19, 8:30 p.m. to 11 p.m.
Rooms for Sections 1, 2:   Olin 259, 267, respectively.
No class Wednesday, March 20

Session 9
(March 21)

Implementing Classes, I

Session 10
(March 25)

Implementing Classes, II

Session 11
(March 27)

Sequences, I
What is a Sequence?
Patterns for Sequences: Iterating Through All or Part of a Sequence

Session 12
(March 28)

Sequences, II
Patterns for Sequences: Find, Building a Sequence, and Max-Min

Session 13
(April 1)

Classes and Sequences
Project Kickoff: RoseBot, DriveSystem and SoundSystem classes

Session 14
(April 3)

Sequences, III
More Patterns: Two places each iteration, In parallel
Mutating Lists

Session 15
(April 4)

Practice for Exam 2

Spring break
April 8
Spring break
April 10
Spring break
April 11
Session 16
(April 15)

More Practice for Exam 2

Session 17
(April 17)

Exam 2 - Evening Exam
TUESDAY, April 23, 8:30 to 11 p.m.
Rooms for Sections 1, 2:   Olin 157, 159, respectively.

Regular class Wednesday:
Waiting for Events; Indefinite Loops
Input from a Console
Application: Robot events

Session 18
(April 18)

Robots and the RoseBot class (Mini-projects, Part 1 - Simple Sensors)

Session 19
(April 22)

Loops within Loops

Session 20
(April 24)

Sequences within Sequences

Session 21
(April 25)
No Preparation Slides

Bigger problems; More complicated logic and loops
Dictionaries

Session 22
(April 29)

Practice for Exam 3

Session 23
(January 30)

Event-Driven Programming
Graphical User Interface (GUI) Programming
MQTT for Computer-to-Computer messaging
Robots and the RoseBot class (Mini-projects, Part 2: Tkinter and MQTT for a GUI for Teleoperation)

Session 24
(May 2)
Session 25
(May 6)

Robots and the RoseBot class (Mini-projects, Part 3: More Sensors)
Robots: Individual Capstone Project: Sprint 1 begins

Session 26
(February 6)

Procedural decomposition
Simple Object-Oriented Design
Robots: Individual Capstone Project: Sprint 1 continues

Session 27
(February 7)
In-class (do NOT fork until you are told to do so!)

Robots: Individual Capstone Project: Sprint 1 ends, Sprint 2 begins

Session 28
(February 11)

Robots: Individual Capstone Project: Sprint 2 ends, Sprint 3 begins

Session 29
(February 13)

Robots: Individual Capstone Project: Sprint 3 continues

Session 30
(February 14)

Robots: Individual Capstone Project: Sprint 3 continues

PROJECT DEMOs and FINAL EXAM during exam week, times TBD. Final Exam