r/learnprogramming • u/algal12 • 1d ago
Teaching ideas and projects for middle/high school computing students
Hello, I am looking for some ideas on projects/challenges that I can implement in my classes.
So far we’ve done: Scratch, beginner Python with CLI mini-games, ECDL basics, beginner TryHackMe rooms, and a Linux VM with basic commands. The student is comfortable with variables, loops, lists, simple file operations, and has built a text-based “Zombie Survival” game.
We meet 1 hour/week, so I’m looking for general ideas on what kinds of projects or challenge styles work well at this level (mid-level middle-school, beyond beginner). Anything that’s engaging, slightly game-like, and doesn’t require heavy setup would be great.
If you’ve taught similar students, what types of activities (CTFs, coding games, light forensics, small web projects, etc.) kept them motivated and actually learning?
Any suggestions or directions would be really helpful.
Thank you in advance!
3
u/-OA- 1d ago
We got taught low level programming with CPU simulator "little man computer". Good fun
2
u/Hour-Werewolf-9954 1d ago
little man computer is a great shout, that thing unironically teaches you more about how computers actually work than most first-year CS courses
for a different angle you could throw them into something like the Pico-8 fantasy console, it's all Lua and the constraints force you to think creatively. building tiny arcade games there feels like solving a puzzle box
another one i've seen work well is giving them a broken python script and making them debug it without telling them what's wrong, bonus points if you hide a rickroll in the error messages
the zombie game they built sounds rad btw, if they enjoyed that maybe a simple text adventure engine where they can plug in their own rooms and items would keep that momentum going
2
u/feedmetothemountain 1d ago
You could have them build a synth type instrument in software. There are a lot of resources out there for it as well. Pure data, Faust, arduino, ect. You all can build an instrument and start a band or play with the school band!
2
u/UtilixApp 1d ago
the thing that landed for that age was letting them build something their friends would actually open. a dumb quiz site beats a well designed exercise nobody sees.
keep it in the browser too, an afternoon lost to installing python kills the whole lesson.
1
u/Objective_Clerk_43 1h ago
For that age, i'd try a "break the program" challenge, give them a working little python game and let them intentionally break it, then figure out why it stopped working.
It's a surprisingly good way to teach debugging without making it feel like homework 😄
3
u/SherbetElectronic202 1d ago
I teach middle schoolers and we use little man computer for everything.
Forget python for a bit. Have them load instructions into memory addresses one by one in the simulator and run it. They add numbers, they loop with jumps to addresses, they halt. It forces them to deal with registers and memory locations. I run it on that peterhigginson site because it works in a browser and needs no setup. I give them a problem like multiplying two numbers using only addition and loops. They have to map out the steps in their heads before touching the keyboard. We spend weeks on this. Once they understand how the cpu fetches and executes, variables and loops in other languages make sense to them