Win/osx/linux Application: Snap! Programming in a Browser
Steve Hamersky · Mathematics and computer education · 2016
Snap! programming language provides a free, browser-based, drag-and-drop programming environment using an interface very similar to Scratch. Snap! was designed to go beyond Scratch by providing a simple way to create new commands, reporters, and predicates, allowing users to expand on the language and explore more advanced topics. Introductory courses in computer science (CS) and computer programming can be taught at the pre-college or college level using these advanced features of the Snap! programming environment.The original desktop version of Scratch was released in 2003 by Mitchel Resnick, Brian Silverman, and Paula Bonta of MIT Media Lab's Lifelong Kindergarten group, with Scratch 2, the browser-based version, released in 2007. Snap! followed a similar development path starting in 2011 with a desktop version called Build Your Own Blocks (BYOB) that was an extension of Scratch. Snap! version 4, released in 2015, is browserbased and includes features of Scratch, BYOB, and Scheme. First-class lists, first-class functions, and continuations from the Scheme programming language allow anything in Snap! to be treated as data including userdefined blocks. This makes Snap! an excellent choice for introductory computer science courses even at the college level since advanced programming patterns can be easily illustrated.Snap! has been used to teach The Beauty and Joy of Computing, an introductory course in computer programming for non-CS majors at the University of California, Berkeley. course has been modified for use in New York City high schools for teaching the Advanced Placement® Computer Science Principles course curriculum as defined by College Board. Course topics include elements of Snap! programming such as drawing graphics with sprites and control structures, creating blocks, manipulating lists, analyzing algorithms, and working with recursion. social implications of computing are also included in the course through Internet research activities and readings from the online book, Blown to Bits by Harry Lewis, Gordon McKayre, and Ken Ledeen.Snap! is freely available and requires a computer with a modem browser where JavaScript functionality is enabled. Programs can be written anonymously in the Snap! environment and saved to the local computer. Or users can create a free account and save programs to the Snap! cloud, which can then be accessed from any Internet-connected computer. In the Snap! environment users create programs by connecting command blocks that look like puzzle pieces from palettes for motion, looks, sound, pen, control, sensing, operators, and variables. Additional command blocks can be added to the palettes from Snap! libraries such as iteration, composition, list utilities, and words and sentences. …