Build a falling-stars game with many turtles, and tidy it step by step: from separate variables to lists, dictionaries and classes.
Many turtles at once, then lists and dictionaries to keep track of them.
Make more turtles with Turtle(), give each one its own commands, and find out what a game with several stars costs in code.
Keep the stars in a list and their speeds and points in lists beside it, so one loop moves them all, and find out why lists side by side are fragile.
Keep everything about one star together in a dictionary, so adding a property is one line and nothing can fall out of step.
Make your own kind of object with class, then give it methods: one line adds another star.
Make a new kind of object with class, set up each one in __init__, and store its values with self.
Give the Star class methods (move, restart, touches), so the game loop is short and a new kind of falling thing is one class.
Progress is saved in this browser only. Nothing is sent anywhere.
For teachers: Teacher guide (notes, answers, solutions, slides and worksheets)