Snap! (programming language)
|Paradigm(s)||object-oriented, educational, event-driven|
|Designed by||Brian Harvey and Jens Mönig|
|Stable release||3.1.1 / May 19, 2011|
Snap! (formerly Build Your Own Blocks (BYOB)) is an educational programming language blocks-based graphical programming language that allows students to create interactive stories, animations, games, and more, while learning about mathematical and computational ideas. Snap! was inspired by Scratch, but also targets both novice and more advanced students by including and expanding Scratch's features. Notably, Snap! features the ability to create your own blocks, essentially custom functions and procedure, making Snap! useful as a beginning or intermediate programming language.
Snap! 4.0 is entirely browser-based with no software that needs to be installed on the local device.
Online and offline versions
The offline (pre-4.0) versions are available also for Windows, Mac OS X or Linux. The open-source pre-4.0 code is made available under a license that allows modifications for non-commercial uses and can be downloaded from the UC Berkeley website or CNET Download.com and CNET TechTracker's download page.
The most important features which differentiate Snap! from Scratch, include:
- first class functions or procedures (their mathematical foundations are called also "Lambda calculus"),
- first class lists (including lists of lists),
- first class sprites (in other words prototype-oriented instance-based classless programming),
- nestable sprites
- free cloud storage for storing and sharing projects
Both Snap! and BYOB versions were developed by Jens Mönig with design ideas and documentation provided by Brian Harvey from University of California, Berkeley and has been used to teach "The Beauty and Joy of Computing" introductory course in CS for non-CS-major students.
|BYOB 1.0||Jens Mönig|
|BYOB 2.0||Jens Mönig|
|BYOB 3.1.1||Jens Mönig, Brian Harvey||May 19, 2011|
- for versions before 4.0
- Snap! download page http://snap.berkeley.edu/ at UC Berkeley website
- CNET Download.com and CNET TechTracker's BYOB for Mac download page
- CNET Download.com and CNET TechTracker's BYOB for Windows download page
- Github Snap! page
- Jens Mönig user contributions page
- Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
- Brian Harvey user contributions page
- Brian Harvey's homepage
- The Beauty and Joy of Computing course homepage