Since we started Digital Adventures in 2015, our team has had the pleasure of working with thousands of students in our technology learning studios, with school partners and when we host special events. Our curriculum library has over 500 projects that span 15-20 different hardware and software platforms. Yet, when a new student is just getting started with us, their very first project will be using Scratch. Given all the potential options we have, we thought it would be useful to outline why we start with Scratch.
is a visual based programming language developed at the Massachusetts Institute of Technology
(MIT). The predecessor to Scratch is Logo
which is what many experienced developers in the prior generation got started with. Those who began with Logo will often fondly remember utilizing the language to make a turtle move around the screen. In fact, some of the graduate students who initially were in the MIT Media Lab during the development of Logo were the ones who wanted to create an updated version of Logo for the next generation. So, the technical bonafides of Scratch are difficult to question.
However, what makes this language so special is that it is designed to be beginner focused and introduce students to computer science and technical problem solving without the potential pitfalls of text-based languages which can result in issues if the functional logic is correct but the syntax and grammar are not. Oftentimes when someone is just getting started they have trouble distinguishing between logic and syntax/grammar issues. Scratch largely eliminates this issue through the use of well designed blocks that have the text based code underneath. As a result, if your logic is correct, the blocks of code will work as programmed even if it doesn't necessarily do what you expected.
Similar to Lego, Scratch is a series of visually interesting building blocks that are organized in menus - control, events, motion, looks, sound, and operators. From a constructivist perspective, it is always helpful if you can leverage existing student knowledge to help build knowledge. By the time most students take their 1st class with us, they have already built one or multiple structures using physical Lego bricks. This enables students to quickly get the hang of the language by understanding the overall menu structure and this knowledge is reinforced by the shape of the blocks that are often found within the menu. For example, in the motion menu - there are blocks related to movement in the X direction, movement in the Y direction, and angular movement. So, even if the student does not remember the top level menu is motion, she will start to see that every time we want something to move, we use a blue block from the motion menu.
Within Scratch, there are a wide variety of projects that can be built. In essence, Scratch provides a great canvas for students to understand how to work within a programming language by providing enough freedom that they can build anything they imagine while also making it accessible to those who are just getting started.
One of the most important parts of getting started in anything new is the support of the community. Not only does Scratch provide a great development interface in which students can build projects, they have also heavily invested in creating a framework for community to organically develop. This enables students to have the opportunity to share what they have built with others and allows them to see what others are up to in case that serves as a source of inspiration.
Since the development, compiling and execution of the code is contained in either the desktop editor or on the online platform, students are free to build and experiment without worrying about whether or not they missed a step when trying to get a new program working on their home computer. The self contained nature of Scratch means that it is easy for students to continue building in Scratch when they are at home. Similar to anything else, those that are willing to invest the time and effort in practicing are going to see differential results when it comes to outcomes associated with learning to build with technology.
Due to the introductory nature of Scratch, students can often think they have learned everything they can about the language after just 1 session. This could not be further from the truth. In fact, many colleges and universities utilize Scratch in their introduction to computer science courses
. Beyond this, one of the great things about Scratch is the developers made the language extendable. So, if there isn’t a block that currently exists that enables you to do what you would like, you can build it yourself and utilize it within the platform.
This powerful feature means that even if you initially thought there were limited capabilities with Scratch, you would soon find that there is the opportunity to build much more than you initially thought was possible.
While there are many potential hardware and software options that students can get started with, we believe that Scratch is a great starting point for the reasons highlighted above. Beyond the 1st lesson, we believe that there are added benefits to building a knowledge base within Scratch. When you combine that with the growing community, we think that Scratch should be on your list when getting students started in building with technology.