-A A +A


    • From the website scratch.mit.edu:
    • “Scratch is a new programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.”
    • “Scratch is designed to help young people (ages 8 and up) develop 21st century learning skills. As they create and share Scratch projects, young people learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively. “



Dan Garcia's picture

From: Brian Harvey <bh@CS.Berkeley.EDU>

To Computer Science educators looking for a non-intimidating but powerful programming language for introductory courses, we offer the alpha test version of BYOB (Build Your Own Blocks), an extension of Scratch (http://scratch.mit.edu), which is a visual programming language for young people in which programs are constructed by snapping together primitive blocks that control multimedia multi-character presentations.

BYOB extends Scratch to include first class lists and first class procedures.  These additions are all it takes to enable the construction, by the BYOB user, of arbitrary data structures (trees, hash tables, etc.)  without needing primitive blocks for every structure.  BYOB also supports object oriented programming, either using its native animated objects (sprites) or building the OOP facilities explicitly, so students will understand how OOP can actually work, based on BYOB's first class procedures.

The plan is to release the final version of BYOB 3 in August (2010), but a public alpha test version (2.99) is available now at http://byob.berkeley.edu along with tutorial material in the form of Scratch projects (runnable in BYOB).  This is and will remain free software, subject to the MIT Scratch license that sets conditions for distribution of modified versions such as BYOB.  Direct questions to bh@cs.berkeley.edu (especially about the documentation) or jens@moenig.org (especially about the technology).         

-- Jens Moenig, MioSoft Corporation; Brian Harvey, University of California, Berkeley

By Dan Garcia

Perhaps Scratch will fulfil its potential with the BYOB release, but right now it is a very poor system to teach as a first language; it encourages replication via cut&paste and does not support a usable model of subroutine call (it sort-of has co-routines but no cross-calling/recursion or local parameters). The drag&drop interface gets tedious very fast, limiting program development to the trivial, and there is no option to save a program in textual form. (Surely a 1:1 mapping to a logo-like language would have been trivial?) Programming around the limitations is possible but you already need to be a competant programmer to do so.

I see the whole LOGO euphoria from the 70's repeating itself, but with less usable tools. Actually I think that putting the graphics support that Scratch has into an old version of LOGO would produce a much better system.

The collaborative coding site (scratch.mit.edu) is a good idea, but unfortunately the new programmers are copying ideas from the poor programmers far more than they are copying exemplary code.

Scratch's 'strength' is that because of the drag&drop interface you cannot write an invalid program. Well, that's just not true. You can't write a syntactically invalid program, but it is the norm to write semantically invalid programs which will nevertheless execute and perform nonsense. This shielding of the user from runtime errors is in my opinion a very poor practice and will lead to a generation of programmers who don't see any reason for internal consistency checks.

Scratch has it place, but it shouldn't be overhyped. As soon as the children start hitting its limitations, they should move on to a real programming language.

By gtoal