We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Snap! Build Your Own Blocks

Formal Metadata

Title
Snap! Build Your Own Blocks
Subtitle
Interactive visual programming
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
"Snap is Scheme disguised as Scratch" Snap is the programming language used in UC Berkeley’s introductory CS coursenamed “The Beauty and Joy of Computing” (BJC). As part of the BJC curriculum,Snap is currently being disseminated nationwide across the U.S. to support thenew AP CS-Principles course created by the College Board. The NSF has awardedlongstanding grants to bring Snap and BJC to every high school in New YorkCity, the largest school district in the U.S. Snap is Scheme disguised as Scratch, a free and open web browser based visualprogramming language aiming to support a technically rigorous introductory CScurriculum at the college and high school level. Snap has been translated into39 languages and is used around the world, both as a teaching environment andin research projects. Snap borrows from Scratch its graphical LEGO blocks grammar and its 2D cartoonthemed microworld around a stage with sprite actors, costumes, events, andparallelism, combining it with Scheme’s dynamically typed and lexically scopedvariables, first-class lists, lambda (closures), first-class continuations andproper tail recursion, encouraging programmers to create their own controlstructures (loops, catch/throw, higher-order functions such asmap/filter/reduce) tail recursively without having to worry about stackoverflows. Snap supports nested sprites and lets programmers turn arbitraryJavaScript code into graphical blocks. Its “codification” mechanism cantranscompile graphical scripts into arbitrary textual code, offering a two-waytransition between blocks and text. Snap is implemented in JavaScript using HTML5 APIs. It has been renamed fromBYOB to Snap since version 4.0. Snap’s development has been supported by twoNSF grants.