(Build Your Own Blocks) 4.0 (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students. SNAP! runs in your browser. It is implemented using Javascript, which is designed to limit the ability of browser-based software to affect your computer, so it's safe to run even other people's projects, even if you don't trust our competence or good intentions. SNAP! is presented by the University of California at Berkeley. It was developed by Jens Mönig at MioSoft Corporation, with design input and documentation by Brian Harvey at Berkeley, and contributions by students at Berkeley and elsewhere. This material is based partly upon work supported by the National Science Foundation under Grant No. 1138596. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. Download SVG Alonzo 4.0 is currently in beta test. Try out the language at http://snap.berkeley.edu/run (the button above). Read the Reference Manual for more details about the language. Report a bug at GitHub. Device control extensions (must be downloaded to your computer): Orbotix Sphero guide by Connor Hudson and Dan Garcia Lego NXT package by Connor Hudson Nintendo Wiimote package by Connor Hudson Finch and Hummingbird robots package by Tom Lauwers Parallax S2 robot package by Connor Hudson LEAP Motion by Connor Hudson speech synthesis by Connor Hudson Arduino package by Alan Yorinks Arduino package by Bernat Romagosa/Citilab Privacy Notice For research purposes, this site uses Google Analytics to collect aggregate information about, e.g., how often the site is used and what links are followed from it. We do not collect personally identifiable information, but if you have a Gmail account or have ever Googled yourself from your own computer, then, despite their assurances to the contrary, Google does collect such information. We recommend that you use AdBlock Plus, Ghostery, NoScript, and/or Privoxy to protect your browsing privacy. The first two are really easy to install and use; the last two take a bit more effort to whitelist sites you trust. (You might also consider the tracking-free DuckDuckGo search engine.) See our complete privacy policy here. Teachers, check out the Beauty and Joy of Computing, an AP CS: Principles course using SNAP!. Sample Snap! projects Converted from Scratch projects Star Wars Game Funny Face Paint With Splotches Kanon Flashlight Constraint Converted from BYOB3 projects Vee Double Jurassic Park Math Trainer Tree Animal Game Count Change New! Live Tree by Bill Manaris Thread demo using call⁄cc Fractal fruit tree by Josh Paley BYOB (old version) Downloads: Welcome to the distribution center for BYOB (Build Your Own Blocks), an advanced offshoot of Scratch, a visual programming language primarily for kids from the Lifelong Kindergarten Group at the MIT Media Lab. This version, developed by Jens Mönig with design input and documentation from Brian Harvey, is an attempt to extend the brilliant accessibility of Scratch to somewhat older users—in particular, non-CS-major computer science students—without becoming inaccessible to its original audience. BYOB 3 adds first class lists, sprites, and procedures to BYOB's original contribution of custom blocks and recursion. Also check out Panther, another great advanced spinoff of Scratch with a somewhat different point of view. Panther team member sparks has created a Blocks Library here that includes a collection of downloadable BYOB blocks contributed by users. Thanks, sparks! —Jens and Brian Current released version: 3.1.1 (19 May 2011) Windows installer or files only. (Use "files only" if you're not an Administrator on your computer.) Macintosh (drag into your Applications folder, or anywhere). One Laptop Per Child New: Debian .deb installer courtesy of roijac. Install using GDebi. For Linux systems, first install Scratch (available in .deb and .rpm installers). Then... If you used the .rpm: Put the latest BYOB image and these other files in /usr/lib/scratch (should be the same folder that contains Scratch.image). Finally, put this shell script (tweaked as needed) in /usr/bin/byob or anywhere in your path. If you used the .deb: Put the latest BYOB image in /usr/lib/scratch (should be the same folder that contains Scratch.image). Merge these other files into the subdirectories of /usr/*share/*scratch. Finally, put this shell script (tweaked as needed) in /usr/bin/byob or anywhere in your path. For variants of Unix other than Linux it's a bit harder; first you should install Squeak, then follow the instructions on the Scratch source code page, then copy the media files from the Windows "files only" link above (all but the .exe and .dll files) into the same directory containing the Scratch image. If you have already installed BYOB 3.1, you can just download these files and replace the ones in your BYOB 3.1 folder with them. Or if you want to see what it's all about first, download just the manual (PDF) (included in packages). Greek translation by Nektarios Moumoutzis. Esperanto translation by Sebastian Cyprych. Slovak translation by Peter Štrba. Slovenian translation by Saša Divjak. Spanish translation. Polish translation by Tadeusz Kurpiel. Download these and add them to the locale folder. Please see release notes about localization to other languages, about the debugger, and about the screensaver (included in file README-BYOB.txt in the distribution). Other people's work building on BYOB/Snap!: Enchanting is a BYOB-based interface to the Lego NXT robot. Program the Finch robot in Snap!. Stephen Howell's Kinect2Scratch can be used with BYOB. Bernd Meyer's e-books based on specializations of BYOB Propaganda Note: Everything beyond this point needs minor updating to match the latest version of the software. Coming soon! (a talk at the Constructionism 2010 conference in Paris, as PDF). the trailer as Scratch project as QuickTime movie the full movie as Scratch project BYOB3 tutorials: Tutorial 1: Building Tool Blocks as Scratch project as QuickTime movie Tutorial 2: Lists & Higher Order Functions as Scratch project as QuickTime movie Tutorial 3: Recursion as Scratch project as QuickTime movie Functional programming exercises: Blackjack (21) strategies writeup (pdf) and BYOB project. Church numerals writeup (pdf) and BYOB project. Sample projects (included in distribution): Fractal tree drawing program All the prime numbers inside your computer! GardenSecret (one of the Scratch sample projects) rewritten in BYOB. MouseRecorder (one of the Scratch sample projects) rewritten in BYOB. User contributed resources Lucario621's BYOB3 Forum soupoftomato's BYOB3 tutorial fullmoon's associative memory toolkit and OOP multiple timers Stefano Federici's Italian installer for Windows. Xavier Leroy's tutorial project gallery.