I teach a middle- to high-school student for about one hour each week and am looking for engaging projects or challenges that go beyond beginner exercises without requiring a lot of setup. So far, we have covered Scratch, beginner Python and command-line games, basic computer skills, introductory cybersecurity rooms, and Linux virtual-machine commands. The student understands variables, loops, lists, and simple file operations, and has created a text-based Zombie Survival game. I'd especially like ideas that feel game-like while still teaching useful concepts, such as small web projects, capture-the-flag activities, light forensics, debugging challenges, or creative programming tasks. What activities have worked well for students at this level?
4 Answers
Have them build something their friends would actually use, even if it’s simple. A quiz site, branching story, scoreboard, or tiny browser game can be more motivating than a polished exercise nobody sees. Keeping it browser-based also avoids losing valuable lesson time to installing tools. The existing zombie game could grow into a reusable text-adventure engine where students add rooms, items, enemies, and save files.
Building a simple software instrument or sound toy can be surprisingly motivating. Students could experiment with tools such as Pure Data, Faust, or a small microcontroller setup, then create something that produces rhythms or melodies. It combines programming with immediate, audible feedback and can even become a collaborative class project.
Try a Little Man Computer simulator for a while. Students load instructions into memory, work with registers, use jumps for loops, and eventually halt the program. Challenges like multiplying two numbers using only addition and repetition force them to plan the algorithm before coding. It’s a great way to make memory, instructions, and CPU execution feel concrete, and it works in a browser with almost no setup.
A fantasy console such as PICO-8 could be a fun next step. The built-in limitations keep projects small while encouraging creative problem-solving, and students can make tiny arcade games instead of getting buried in frameworks or installation issues. You could also give them deliberately broken Python programs to debug, gradually making the errors less obvious.

Human Resource Machine is another approachable option with a similar low-level programming feel. The puzzles give the same ideas a more game-like presentation.