Advanced blocks-based programming language from UC Berkeley for teaching real computer science concepts beyond beginner block coding.
Structured overview, strengths, tradeoffs, and related options.
Snap! is one of the best block-programming tools for moving beyond beginner coding into deeper computer science thinking.
Snap! is a blocks-based programming language created at UC Berkeley. Its official positioning emphasizes advanced concepts such as custom blocks, functions, lists, and richer abstraction than simpler children’s coding tools typically offer.
You can use Snap! for teaching algorithms, abstraction, custom procedures, computational thinking, and more serious introductory computer science in a visual format.
Snap! is best for CS teachers, advanced beginners, and classrooms ready to go deeper than basic drag-and-drop coding.
How is Snap! different from beginner block tools? It supports deeper abstraction and more advanced CS concepts.
Is it from UC Berkeley? Yes. That academic background is a notable part of its identity.
June 27, 2026.
Related options explicitly referenced in this overview.
Know a web tool we're missing?
Submit a Tool