What to do, When
Monday Wednesday Thursday
Session 1
(November 26)

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

Session 2
(November 28)

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

Session 3
(November 29)

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
(December 3)

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

Session 5
(December 5)

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

Session 6
(December 6)

Pair Programming
Introduction to Robots (Motion)

Session 7
(December 10)
Exercise handed out in class

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

Session 8
(December 12)
Exam 1
(to appear here at exam time)

Exam 1 - Evening Exam
Tuesday Dec. 11, 7:30 p.m. to 10 p.m.
Rooms for Sections 1, 2, 3, 4, 5:   Olin 157, 159, 267, 269, 259, respectively.
No class Wed. Dec. 12

Session 9
(December 13)

Implementing Classes, I

Session 10
(December 17)

Implementing Classes, II

Session 11
(December 19)

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

Session 12
(December 20)

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

Winter break
December 24
Winter break
December 26
Winter break
December 27
Winter break
December 31
Winter break
January 2
Winter break
January 3
Session 13
(January 7)

Debugging Revisited
Practice for Exam 2

Session 14
(January 9)

Waiting for Events; Indefinite Loops
Input from a Console
Project Kickoff: Robots and the RoseBot class (Drive Motors)

Session 15
(January 10)

Putting It All Together
More Practice for Exam 2


Answer Key to Paper-and-Pencil practice (note: the answer key is correct only through problem 37)
Session 16
(January 14)

Sequences, III
More Patterns: XXX
Mutating Lists

Session 17
(January 16)
Exam 2
(now present)

Exam 2 - Evening Exam
Tue. Jan. 15, 7:30 to 10 p.m.
No class Wed. Jan. 16

Session 18
(January 17)

Loops within Loops and Sub-Sequences within Sequences

Session 19
(January 21)

More Loops within Loops and Sub-Sequences within Sequences

Session 20
(January 23)
Session 21
(January 24)

Iterative Enhancement

Functional Decomposition

Bigger problems; More complicated logic and loops

Session 22
(January 28)

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

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

Session 23
(January 30)

Event-Driven Programming

Graphical User Interface (GUI) Programming

Robots and the RoseBot class (Mini-projects, Part 3a: Tkinter for a GUI for Teleoperation)

Session 24
(January 31)

MQTT for Computer-to-Computer Messaging

Robots and the RoseBot class (Mini-projects, Part 3b: Integrating MQTT with Tkinter for a GUI for Teleoperation)

Exam 3 - Evening Exam
Thursday Jan. 31, 7:30 p.m. to 10 p.m.
Rooms for Sections 1 (Boutell), 2 (Wilkin), 3 & 4 (Mutchler), and 5 (Alangar):
Olin 159, 169, 267, 269, 259, respectively.

(The exam is in ADDITION to regular class Thursday.)

Exam 3
(NOW present)
Session 25
(February 4)

Robots and the RoseBot class (Mini-projects, Part 4: 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)

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

Session 28
(February 11)

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

Capstone Project Features to implement

Updates to rosebot.py. Your instructor will tell you what to do with this.

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.