Course Guide¶
The curriculum is designed to be modular with continuity. Each module has a concrete student artifact, but the artifacts also build toward the final robotic Tic-Tac-Toe system.
The source curriculum in Facing.md is organized around the same progression:
students first play an unplugged version, then write a small program, then add
an extension that makes the program more expressive or strategic. The course
is intentionally project-based rather than a sequence of disconnected syntax
exercises.
Continuity Thread¶
The course works best when students repeatedly see the same pattern:
- Play or inspect a small system.
- Identify the state, actions, and rules.
- Write a Python version.
- Improve the algorithm.
- Connect the algorithm to graphics, vision, or robot motion.
That thread starts with number guessing and ends with a camera-informed robot action.
Six-Week Arc¶
| Phase | Focus | Representative activities |
|---|---|---|
| Week 1 | Lab orientation, setup, Python basics | Introduction to Python, Guess My Number, Pig |
| Week 2 | Game logic and algorithmic thinking | Rock Paper Scissors, Tic-Tac-Toe, Hangman |
| Week 3 | Graphics and interaction | Pygame drawing, Pop the Balloon, Race for the Treasure, Tic-Tac-Toe GUI |
| Week 4 | Hardware build and calibration | 3D-printed arm parts, wiring, Dynamixel Wizard, position recording |
| Week 5 | Vision and decision making | Camera setup, board detection, Teachable Machine object sorting, minimax, robot game player |
| Week 6 | Integration and presentations | Robotic Tic-Tac-Toe, student extensions, final demos |
Full Activity Coverage¶
The following table maps the complete activity list from the source curriculum to the public module pages.
| Source-curriculum strand | Activities | Public documentation |
|---|---|---|
| Python foundations | Introduction to Python; Guess My Number; binary-search and recursion extensions | Python Sequence, Introduction to Python, Guess My Number |
| Text games | Pig and strategy extension; Rock Paper Scissors and Rock Paper Scissors Lizard Spock; Tic-Tac-Toe and computer-player extension | Pig, Rock Paper Scissors, Tic-Tac-Toe |
| Data-driven games | Hangman and frequency/autocomplete extensions; Element Symbols; State Capitals; Mastermind design extension | Hangman, Hangman Topic Frequency, Quiz Games, Mastermind |
| Graphics | Pygame basics; Pop the Balloon and class extension; Race for the Treasure; Attack of the Clones; Tic-Tac-Toe GUI; Connect Four and minimax | Graphics and Pygame, Pop the Balloon, Race for the Treasure, Attack of the Clones, Tic-Tac-Toe GUI, Connect Four |
| Robot arm | 3D printing, building, wiring, Dynamixel setup, leader arm, position recording, camera, and robotic Tic-Tac-Toe | Robot Arm Sequence, Motor Setup and Control, Vision and Game Integration |
Mastermind is included as a student-designed text-game extension: its role in the sequence is to reuse the same state, feedback, and strategy ideas from the other games without pretending that the source notes contain a finished starter implementation.
Modular Use¶
Teachers can shorten the course by choosing one coherent path:
| Path | Modules to use | Good for |
|---|---|---|
| Intro Python | Guess My Number, Pig, Rock Paper Scissors | A few class periods of beginner programming. |
| Algorithms through games | Tic-Tac-Toe, Hangman, extensions | Students who know loops and conditionals. |
| Graphics | Pygame basics, Pop the Balloon, Race for the Treasure, Tic-Tac-Toe GUI, Connect Four | Moving from text programs to visual programs and visual strategy games. |
| Robotics lab | Setup, motor control, vision, robot game integration | Students with prior Python experience. |
| Full course | All modules in order | A multi-week internship or summer program. |
Student Outputs¶
By the end of the full course, students should have:
- Several playable Python games.
- A graphics-based program using Pygame.
- A working local Python environment and GitHub repository.
- A calibrated robotic arm with recorded board positions.
- A robot-controlled Tic-Tac-Toe demonstration.
- A short explanation of how their system senses, decides, and acts.
Instructor Notes¶
The programming modules intentionally begin with unplugged versions of the games. This gives students a shared mental model before they write code.
The robotics modules should be run with explicit hardware safety norms. Students should use small motion increments at first, keep hands clear of the arm during powered motion, and know how to disconnect power quickly.
The arm build is also a learning sequence: print and assemble the follower and leader arms, wire one arm at a time, identify the motors in Dynamixel Wizard, record named positions, identify the camera, and only then connect board vision to game strategy and motion.