CMSC 19929: Creating Computer Games for Learning
University of Chicago Pre-College Program — Summer 2026
Welcome to Computer Games For Learning!
Please the full course syllabus carefully at least once to make sure you understand the course logistics and expectations!
Classroom:
- Time: July 7–23, 2026, Monday through Friday (9AM - 3PM)
- Location: Ryerson Phys Lab (Rm 255 - lectures / Rm 277 - labs).
Asynchronous Communication:
- All course materials will be released on this website, following the course schedule below.
- All assignments will be submitted and graded via Gradescope.
- General course communication will occur on Piazza.
- This is the best way to ask any and all questions related to this course. I encourage you to post your questions on Piazza instead of emailing me because you will be more likely to get faster responses (from either me or the TA) and other students may also benefit from your questions. We will check Piazza at least 3 times per day and try to address your questions as soon as possible.
- For any general or clarification questions that don’t leak information about your solution, please ask as a public question.
- For any questions they may leak your solution, please ask as a private question.
- For any sensitive communications that you do not wish other students or the TA to see, you are free to email me. Please see course syllabus for some notes on sending email.
Course Schedule (subject to change)
- Coding practice = invidual; Design warmup = group; Open work time = time allocated in class to work on project milestones.
- Expand lecture titles to see reading list for each day. Make sure to submit reading responses on Gradescope before each lecture.
- Lecture slides will be uploaded by the end of day every day; coding practice solutions will be uploaded after each assignment due date.
| Week | Day | Date | Lecture (mornings) | Lab (afternoons) |
|---|---|---|---|---|
| Week 1 | Tue | 7/7 |
Part 1: Introduction & What is an Educational Game?reading:
N/A
Part 2: Python Basics |
|
| Wed | 7/8 |
Part 1: Scaffolding and Learning TrajectoriesPart 2: Strings and Lists |
||
| [Assignment Due] Project Milestone #0: Finalize group members (Wed 7/8) | ||||
| Thu | 7/9 |
Part 1: Constructivism & Flow TheoryPart 2: Conditionals and Iteration |
Open work time
|
|
| Fri | 7/10 |
Part 1: Game Analysis Frameworksreading:
IGDPD (Chapter 2; no Gradescope questions)
Part 2: Functions |
Open work time
|
|
| [Assignment Due] Project Milestone #1: Target Users and Learning Content (Sat 7/11) | ||||
| Week 2 | Mon | 7/13 |
Part 1: Classes and ObjectsPart 2: Motivation, Player Typesreading:
Player Types Handout (no Gradescope questions)
Guest Lecturer: Erica Goodwin
|
Open work time
|
| Tue | 7/14 |
Exploring Pygame |
Open work time | |
| [Assignment Due] Project Milestone #2: Basic Game Design (Tue 7/14) | ||||
| Wed | 7/15 |
Part 1: Inclusive Design, UDLreading:
N/A
Part 2: Designing Interactive Systems to Support
|
Coding practice: Pygame warmup
Open work time
|
|
| Thu | 7/16 |
Collapsing Qubits: A Quantum Themed Card Gamereading:
Collapsing Qubits website
Guest Lecturer: David Gonzalez-Maldonado
|
Coding practice: Mini game (choose 1)
Open work time
|
|
| Fri | 7/17 |
(Students) — Flash Talk and Peer Review Workshop |
Field Trip: Weston Game Lab
Coding Practice: Pygame (cont.)
|
|
| Week 3 | Mon | 7/20 |
Assessment of Learningreading:
N/A
|
Open work time |
| [Assignment Due] Project Milestone #3: Final Game Design & MVP Description (Mon 7/20) | ||||
| Tue | 7/21 |
AI in Gamesreading:
N/A
|
Open work time | |
| Wed | 7/22 |
(Students) — Mock Final Presentation and Peer Feedback |
Open work time | |
| Thu | 7/23 |
(Students) — Final Presentation (“Final Exam”)
|
Movie Time and Bonding Activities | |
| [Extra Credit] Project Milestone #4: MVP Implementation (Thu 7/23) | ||||
Milestones
| Milestone | Description | Due |
|---|---|---|
| #0 - non-graded | Finalize group members | Wed 7/8 |
| #1 - grading criteria | Target Users and Learning Content | Sat 7/11 |
| #2 | Basic Game Design | Tue 7/14 |
| #3 | Final Game Design and MVP Description | Mon 7/20 |
| #4 - extra credit | MVP Implementation | Thu 7/23 |
Resources
Recommended IDE for Pygame:
- PyCharm: Guide to Installing Python and PyCharm (follow the instructions for your operating system)
- VSCode (You can follow the same instructions in the link above to install Python 3 before downloading setting up VSCode)