CMSC 19929 - Syllabus
University of Chicago Pre-College Program — Summer 2026
General Info
Instructor: Minh Tran
- You are welcome to call me Minh (“Mink” with a silent K) or Ms. Tran! Please do not use “Professor” or “Dr.” to refer to me.
- The best way to contact me is via email. Please put “CS 19929” at the beginning of your subject line so the email doesn’t get lost in my inbox (Thank you!). I check my emails between 8AM and 5PM M-F and usually respond within 1 business day.
Office Hours: By appointment (Come talk to me after class or send me an email!)
TA: Han Dang (ghanle18@@uchicago.edu)
Classroom:
- Time: July 7–23, 2026, Monday through Friday (9AM - 3PM)
- Location: Ryerson Phys Lab (Rm 255 - lectures / Rm 277 - labs).
Asynchronous Communication:
- All assignments will be submitted and grades will be released 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.
Course Description
As the computing field continues to advance, interdisciplinary applications of computer science are of increasing importance. This class focuses on a fun approach to the challenge and necessity of designing for human users: Creating Computer Games for Learning. We will explore concepts in educational theories and game design principles and learn game programming in Python. At the end of this class, we create our own games, where incorporating personal experiences and interests will be highly encouraged. During this process, we will also meet active researchers in the field to discuss what they are using computer games to teach and how their games are effectively teaching it.
This is an active learning style course. Lectures are discussion intensive and lab sections are coding extensive.
By the end of this course, you will be able to:
-
Explain the differences between games, gamification, and educational games
- Articulate educational theory concepts that affect how people learn and apply selected concepts to:
- Evaluate real-world educational game products
- Construct a learning trajectory for your educational game
- Articulate game mechanics and game design principles and apply selected mechanics and principles to:
- Evaluate real-world educational game products
- Design your educational game (for all players with no resource limits)
- Write game programs in Python
Materials
You are not required to purchase a textbook for this course. All readings, coding exercises and solutions, and project milestone instructions will be available on the course website.
While the course materials posted will be sufficient for this course, I recommend you get access to a copy of the following resources. You should be able to do so for free online - ways to do so are attached to each individual resource.
How to Think Like a Computer Scientist: Learning with Python 3
by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers
Making Games with Python & Pygame
by Al Sweigart
Grading
Each student’s final grade will be computed according to the following formula:
-
In-class participation – 20%
- Individual “homework” assignments – 20%
- pre-lecture reading responses 10%
- in-lab coding/design exercises 10%
- Game design group project – 60%
- milestones 42% (14% each)
- flash talk 5%
- final presentation 10%
- peer evaluation 3%
- (Extra credit) MVP implementation – up to 5%
This course is graded on a beneficial curve. You are guaranteed not to get lower than straight scale (A>=93%, A- (90->93), B+ (97->90), etc.). The two lowest individual reading/coding scores will be dropped.
Important Note: Due to the group project, a student’s final grade in the course can be no more than one letter grade higher than their performance on individually graded portions. For example, if a student has a C on individually-graded aspects of the course, then they are eligible to earn no better than a B when taking into account the group project.
Class Policies
Attendance and Participation
Attendance and participation are required at all class sessions and project group meetings, unless other arrangements are made with the instructors. Laptops are not allowed in the morning lectures, except for during the in-class participation activities where you will need to participate in small-group discussions and record your responses on Mentimeter.
Academic Dishonesty
In this course, as in all your courses, you must adhere to college-wide honesty guidelines. The college’s rules have the final say in all cases. Our own paraphrase is as follows: Never copy work from any other source and submit it as your own. This includes generative AI or large language models (LLMs), the Internet, etc. Never allow your individual and group work to be copied or seen by other students. Never submit work identical to another student’s or group’s. Never look at someone’s working solution in order to solve your error. Document all collaboration. Generally, collaboration is forbidden on the reading portion of homework assignments. Cite your sources.
We will enforce the following rule as well: Any student who is under suspicion of having violated academic honesty rules will NOT be allowed to withdraw from this course.
Policy on generative AI: You *may use* AI to improve your prose or provide brainstorming for your game design project, but you are responsible for performing any research yourself, such as looking up standards, citations, etc.
Generative AI is, by construction, a next-word predictor trained on the Internet, and it is well known to “hallucinate” or make up facts because it is merely writing words that resemble ones that might be used to answer a particular question. It is not *trying* to be factual. You MUST specify for what purpose you used AI if you used it (e.g. to revise a paragraph, brainstorm ideas related to X, etc.). If you turn in material that is clearly factually incorrect, you will receive no credit for that section. The presence of AI has made it too easy to create factually incorrect, nicely-written text, so you will not receive credit for turning in something that is of the same quality / has the same characteristics as something produced by AI.
Using AI for reading and coding exercises is *not allowed*. These are lightweight assignments designed to help you learn! They will not be challenging at all, and time will be allocated during the lab sessions for help seeking on these assignments.
Late Policy
Given the short duration of the course, late work will *not* be accepted. All assignments are due on the specified date and time listed on Gradescope. However, I understand that genuine, unforeseen emergency situations may arise. In such exceptional cases, you must notify me via email prior to the assignment deadline to discuss your options. Documentation may be required.
Accessibility
Students who have been approved for the use of academic accommodations by Student Disability Services (SDS) should follow the procedures established by SDS for using accommodations. Timely notifications are required in order to ensure that your accommodations can be implemented. Please meet with me to discuss your access needs in this class after you have completed the SDS procedures for requesting accommodations.
Course Schedule
Please note that the current courese schedule is tentative and subjected to changes!
| 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) | ||||