Snap! is a block-based programming language (similar to Scratch) that is designed for learners and for more serious computer science study. It runs in the browser and supports building interactive stories, simulations, and games while introducing core CS ideas like abstraction, procedures, and data.
Link to Tool
What it is (at a glance)
- Visual, block-based coding that lowers the barrier for beginners.
- Designed for kids through adults, with features that scale into deeper CS concepts.
- Great for game logic, simulations, and interactive media.
- Web-based, so it works well on shared devices and in labs.
Student Examples
- Browse featured and community projects: https://snap.berkeley.edu/projects
- Classroom mini-project ideas:
- Maze game (movement + collision + win condition)
- Clicker / incremental game (variables + UI)
- Platformer prototype (gravity, scrolling, levels)
- Simple AI opponent (rules-based behavior)
Tutorials and Lessons
<aside>
💡
Classroom tip: Have students remix an example project first, then require a “feature add” list (new mechanic, new level, scoring, sound, or accessibility improvements). This reinforces reading code and iterative design.
</aside>
Notes for Secondary CS
- Works well for bridging from Scratch into more explicit CS ideas (procedures, data, abstraction).