Bridging the Gap from Scratch to Java
There was a time when coding was considered a complex endeavor – one that involved hours of typing letters and numbers, and was primarily the mission of those with computer programming expertise. Today, the coding landscape is vastly different thanks to programming languages that are geared to elementary and middle school students, and are designed to inspire kids to continue coding into adulthood.
Scratch is one of the most popular beginner-level programming languages and allows users to create interactive stories, animations and games. This easy-to-understand, block-based, drag & drop coding language, developed by the Lifelong Kindergarten organization at the MIT Media Lab, has been made available to kids worldwide.
With a background in Scratch, students often transition to other languages like Java or Python, which are also becoming popular with young coding enthusiasts, while providing high-end results. It’s the ease of use and results that have quickly made coding a popular endeavor for all ages. At Empow Studios, the weekend Coding Club has become so popular it recently expanded to two time slots.
Scratch: Not Just For Kids!
The increasing allure of coding is due to the advanced nature of these platforms. Empow senior instructor Kevin Ferreira is an animator and artist and began trying out Scratch, assuming it would be very basic.
“I have to say when I first heard about Scratch I was highly skeptical about what it could do,” notes Ferreira. “Sure it was created by the cunning folks at MIT, but how much creativity and useful function could I really get out of a drag and drop application? It turns out the answer to that question is a whole heck of a lot.”
After learning the basics and getting a handle on the program, Ferreira began teaching kids and helping them come up with solutions for their Scratch projects. “Daily, I’d get questions like, ‘How do you make more levels?’ or ‘How do I make my 10,000 horsepower cat shoot lasers?” he recalls. “And what I found was we had a multitude of possibilities to create the answers for their visions. This encouraged the kids to use their imaginations and I’ve seen them make all kinds of awesome projects as a result.”
Teaching kids Scratch ultimately inspired Ferreira to push the program’s limits with his own projects. “In my spare time, I created a fully functioning character driven game,” he notes. “It was challenging, fun, and satisfying when the game was complete, although I’m still thinking of new ways to improve it.”
“As an artist and a technology enthusiast I can wholeheartedly say that I now know why kids love Scratch and that it’s a tool that should be used or at least experimented with by any adult interested in creating interactive entertainment,” says Ferreira. “You may find it simple at first but once you start dreaming of what you could make, it can become as complicated as you wish it to be. By making these games I found that, in return, they help me inspire the kids I teach by showing them some of the innumerable possibilities of what they could make.”
Creating a Scratch Curriculum
“I like to build Scratch projects outside of club time so that I can display the program and the code on a screen in the room where the students work,” says Empow lead instructor Theo Swartz. “This grabs the attention of wandering eyes and gives students something to be inspired by if they need an idea.”
Swartz is among those creating Empow’s Scratch curriculum, which takes a project-based approach and contains a variety of short, engaging activities. Each covers a learning objective.
“Our Scratch curriculum is based around a list of fundamental programming concepts,” says Swartz. “These include things like knowing what X & Y coordinates are, what an ‘event’ is, what an ‘object’ is, how to use variables, and how to test and debug a program.”
Scratch is a simple example of object-oriented programming (OOP), an attribute which is shared with most of the popular modern programming languages used by professionals.
“It is easy and quick to learn, so it grabs the attention of students right away,” adds Swartz. “It is also a well-known and thriving platform, meaning it gets lots of attention from its developers, so it stays bug-free, and students’ projects have the potential to be seen by lots of people. I was impressed by a few students who spent long periods of time making a game, or getting a complicated concept to work properly in Scratch, like a 3D flight simulator.”
Programming curricula at Empow work in parallel with each other. For example, students who want to try Game Maker’s language (GML), a game building application that does not require users to write code, or LEGO Mindstorms EV3 programming will be covering the same learning objectives as if they were working in Scratch.
“We have many options for coding because each student has different preferences for how they like to learn,” notes Swartz.
Making the Jump to Java
Unlike older, more complex programming languages like C++, newer languages like Java, which are running on billions of devices worldwide, are changing the learning landscape for middle school age students.
“Java is one of the most widely used computing languages in the industry,” says Empow lead instructor Diane Delgado. “It’s also the foundation language for AP computer science at the high school levels. Because of this, we are allowing the students to get exposure to something that is really used in the world and aligns with what they might be doing in high school if they decide to take AP computer science.”
Delgado, a software engineer, has spent more than 25 years in software design and programming and likes the versatility of Java. “Java runs on Apple, Windows, and Linux, so students don’t have to worry about Java being different on Windows or Apple or not being able to run it at all when they are working at home,” she adds.
Delgado says that two of the biggest challenges for students moving from Scratch to Java are typing and syntax errors. “Like other high-level computer languages, students have to type in everything with Java,” she says. “There is no more dragging blocks and then just adding a number here and there. Java relies on grammar. I tell my students that this is like English class. When you write a sentence and the grammar is not correct, your teacher will put lots of red marks on your paper and you have to fix it. Java will put lots of red marks in your code if the grammar is not correct – and then you have to fix it. Scratch does not expose this concept, so students are usually surprised when they start seeing errors.”
In order to help with this transition, Empow uses the tools Greenfoot and BlueJ to bridge the gap and reduce frustration for young students while still exposing them to Java. “The editor for this environment reminds them a little bit of Scratch, so they feel more confidence when they start using it,” says Delgado. “It also gives them hints so that they can figure out what type of Java statement they need to use to write their program.”
Overall, with the editor, students are introduced to Java’s object-oriented terminology without requiring that they memorize the vocabulary. Delgado also makes a point to make sure the first few lessons involve a project that really holds their attention. “They quickly complete writing code that allows them to control a turtle so that it moves around the screen,” she says. “They generally get hooked at this point and are usually very excited that they programmed it using Java.”