Programming with Scratch – An educator guide.

An underrated programming language.

03

The ‘Hello World’ program written in Scratch – Hello World is often used as a simple program to illustrate the basic syntax of a programming language for a working program.

Scratch is a graphical programming language and online community where users can program and share interactive media such as stories, games and animations. Whilst it is targeted at 8 to 16 year olds, anyone of any age can write a program in Scratch.

At first glance Scratch looks pretty basic, which for a large part it is. As a visual programming interface, blocks are dragged from a palette and assembled to create programs without the need for the user to type written commands or syntax for the computer to process.

However, when I work with some teachers who have wider experience in computer programming languages, they are often critical of Scratch for reasons such as:

“It isn’t a real programming language!”

“Real coders don’t use blockly…”

“It’s far too basic and not challenging enough!”

“Would a paid computer programmer use Scratch in their workplace?”

Beliefs such as these miss the point that a programming language is a language that allows people to communicate instructions to a computer. This is exactly what Scratch does, without the worry of having to manually type and assemble the commands through text. For example, a user can give instructions like “make that character move forward on the screen”, or “wait 5 seconds, then play this sound”. The friendly and easy to use approach with blocks means that the gap towards understanding computer programming is minimised, as it is far easier to use and evaluate intended code. Hence, children as young as 8 years can be immersed in the world of computer programming with much delight.

However, beyond moving and meowing cats (which is what users typically create the first time they use Scratch), projects can be far more complex because of important features such as ‘loops’ (repeat blocks) and ‘conditionals’ (if-then blocks). With these commands, users can create algorithms, or instructions to complete specific tasks upon specific events. This ties in beautifully with the scope of Digital Technologies found in the Australian Curriculum, where students from even as early as Foundation begin to conceptualise algorithms.

 

The Papert legacy heralded by Resnick.

Long time advocate and founder of Scratch, Mitch Resnick, believes that as children create with Scratch, they learn to think creatively, work collaboratively and reason systematically (Resnick, 2014).

Today, Resnick leads a research group at Massachusetts Institute of Technology’s Media Lab, where amongst many other initiatives, the team continues their work on the Scratch programming language and social platform. There are more than 20 million users worldwide, known as ‘Scratchers’.

Scratch is based on the seminal work of Seymour Papert, who died in 2016. Papert developed the Logo programming language, which was essentially the first programming language for kids. He was a pioneer of educational technology and among the first to advocate laptop programs in schools. Papert pushed the envelope for young children to explore, experiment and express themselves through the use of computers (Papert 1980).

Resnick has written about the profession’s default assumption that computers are a way to pour knowledge into our kids. He argues that we should be focusing instead on creating open sandboxes with “low floors” (easy ways to get started), “high ceilings” (ways to chain together tools to make sophisticated projects), and “wide walls” (lots of paths to accommodate many learning styles). (Resnick, 2017)

In my experience, Scratch really is a perfect experimental and development playground when it comes to developing notions of computer science with young children. The interface and language is intuitive and logical to express simple ideas, yet expansive enough to make even sophisticated games, animations and stories.

01

The Scratch Cat is the mascot of Scratch and the default sprite when opening a new Scratch project. He / She becomes the protagonist for many projects.

 

The 4 P’s of Creative Learning.

Resnick and the Lifelong Kindergarten team attribute the success of Scratch upon 4 ideas or elements: Projects, Passion, Peers and Plays (Resnick, 2014). The so-called Four P’s of Creative Learning are strongly aligned with (and inspired by) the Constructionist approach to education, which emphasizes the value of learners playfully creating personally-meaningful projects in collaboration with peers:

ProjectsWe learn best when we are actively working on projects – generating new ideas, designing prototypes, making improvements, and creating final products.

Peers – Learning flourishes as a social activity, with people sharing ideas, collaborating on projects, and building on one another’s work.

Passion – When we focus on things we care about, we are likely to work longer and harder, to persist in the face of challenges, and to learn more in the process.

Play – Learning involves playful experimentation — trying new things, tinkering with materials, testing boundaries, taking risks, iterating again and again.

In Scratch, students can create projects which interest them through play. They are able to share their projects through an online community which has the potential to be viewed by others. Providing an audience to students can be incredibly motivating and purposeful. One only has to look at the gallery of published projects on the Scratch home page (see scratch.mit.edu/explore) to find that audience members indicate their enjoyment for a project through comments, and perhaps even more flattering, can also remix and make variations on the original project. It’s not uncommon to find suggestions or questions to the author about why they made certain choices. The author can choose to become engaged with these comments and make changes based upon them, illustrating how something becomes better when people think through it together.

Whilst these four P’s are not radical new ideas, they do provide a valuable framework in supporting creative learning and thinking – an essential 21st century skill to equip our students with.

 

Using Scratch in a classroom setting.

The Scratch team has put in a lot of effort into moderating the community to maintain the type of positive and safe environment where people can play – not just to have fun, but to take risks, test boundaries and try new things.

Scratch originally started as a tool for kids, but it wasn’t necessarily built for classrooms. In the past, managing projects has been challenging for some teachers trying to use Scratch in schools. However, teachers have the option of creating a teacher account to create classes. From within the class, the teacher can send a signup link so that students can sign up for the class and create an account within that class. This process does not require individual email sign-ons for each student, which might be challenging for some schools and age groups.

Within class accounts, teachers can change student passwords, assign projects, send updates and moderate student behaviour. If a student does something against the policies of the Scratch community (see scratch.mit.edu/community_guidelines), MIT will send an email to the teacher. Teachers can also create studios, which is like an assignment, where all students in the class will automatically be followers of the studio and be able to receive updates about it and add projects to it.

 

Scratch platforms

Scratch has seen many versions and iterations since it’s conception in May 2007. For a while, the only way to use Scratch was to use an offline installer on the Linux, Mac or Windows platforms. In May 2013, the arrival of Scratch 2.0 meant that users could now create programs using an online editor at the Scratch website. It also made it possible to instantly see the code inside other’s users projects and remix those.

Scratch 2.0 is fantastic for students who can read, but users younger than 7 or 8 years old often struggle to understand the concepts in Scratch.

In 2014, the Scratch Junior (or Scratch Jr) platform was introduced, specifically designed for younger children. It runs on tablets as well as Chromebooks, and is much more touch friendly and suitable for early year learners with it’s bright and appealing interface. Many of the programming concepts of Scratch 2.0 are also found in Scratch Jr, however the difference is that the commands are made much more simple by representing them as images or symbols, rather than words.  This means that children aged 5 to 8 who are still learning to read can create their own interactive stories and games. Similarly, children snap together the graphical programming blocks to make characters move, jump, dance and sing. Users can modify characters in the paint editor and add their own voices and sounds, even insert photos of themselves – then use the programming blocks to make their characters come to life.

You can get started with Scratch 2.0 at the website scratch.mit.edu/create using most modern browsers (flash enabled) with an internet connection.

Offline versions of Scratch for Windows, Mac and Linux can be found at scratch.mit.edu/scratch2download/

The Scratch Jr app can be located on iTunes for iPads, on Google Play for Android, or the Chrome Web Store for Chromebooks.

Due to be released later this year, Scratch 3.0 will land on public release and will not be reliant on flash, which means it will basically work on anything AND be able to program USB / Bluetooth connected devices / peripheral / robotics. You can check out the pre-release now by going to preview.scratch.mit.edu

 

How to get ‘scratching’

Upon launching the editor you will notice the interface divided into several panes:

  • > The Stage – is where the action happens when the program is run. The stage can also contain several backdrops that can be used for titles or interfaces.
  • > The Sprites – which contains a library of objects or graphics to use in the program. Sprites can also be created from a blank canvas or imported as images from an external source.
  • > The Scripts – which contains the available set of programming blocks.
06

The Scratch interface as viewed by default when the program is launched.

Blocks can be dragged out into the work area to program the various sprites in the project. Snapping together like lego, it’s very easy to see how the relationship and order of the blocks affect each other.

There are 10 types of block categories:

  • Motion — Make the given sprite move, whether by steps, toward another object, or via direct coordinates.
  • Looks — Lets the sprite hide or show itself, switch costumes, change size, or move between layers.
  • Sound — Play sounds, change volume, or adjust the tempo.
  • Pen — Draw with a marker and change its color and shape.
  • Data — Lets you create your own variables. This comes in extremely handy for elements that Scratch doesn’t have built-in.
  • Events — Criteria for kicking off other actions, like when you click the green flag or press the spacebar. These blocks connect with the other blocks to make the action happen.
  • Control — Loops to repeat an action, perform an if-else statement, or stop something.
  • Sensing — Place these blocks into others to perform actions when a sprite is touching another element or the user is holding down a key.
  • Operators — Math elements that let you perform arithmetic or basic boolean operations on variables.
  • More Blocks — Make your own blocks if these aren’t enough!
02

Users can select from various categories of commands. Blocks are colour coded to make it easy to distinguish.

 

Resources

Educators wishing to explore the possibilities of Scratch with their students may find the following resources useful:

Scratch for Educators (scratch.mit.edu/educators) – Contains advice for all educators for using Scratch. See also scratch.mit.edu/parents.

Tutorials and activity cards (scratch.mit.edu/tips) – Easy to follow and navigate, these step-by-step tutorials are a great way to explore application uses within the Scratch platform, for example making objects fly, animating a name, making music, or making a paddle game. Many of these tutorials can also be found in the help tab inside the Scratch editor.

ScratchED (scratched.gse.harvard.edu) – An online community for educators by educators, ScratchED contains resources and ideas for using Scratch with students.

Computer Science First (csfirst.withgoogle.com) – CS First provides enrichment materials for students in Years 4 to 8. Facilitators use video tutorials to teach concepts of computer science through themed clubs, for example Game Making and Storytelling.

05

An example of an animated storyboard that students can be guided through using the CS First materials.

Makey Makey projects for Year 3 to 6 students (anthsperanza.com/2017/06/27/mmprojects/) – Previously, I have written about project ideas and lessons involving Scratch and Makey Makey hardware to make physical objects interactive.

DBRa-90UwAAvICk

An interactive electronic paper circuit, powered by Makey Makey and Scratch.

Let’s Teach Kids To Code, TED Talk by Mitch Resnick (ted.com/talks/mitch_resnick_let_s_teach_kids_to_code) – Mitch Resnick demonstrates the benefits of teaching kids to code, so they can do more than just use new tech toys but also create them.

 

References

Resnick, M (2014) Give P’s A Chance: Projects, Peers, Passion, Play. Paper presented at Constructionism 14 Conference, August 19th – 23rd 2014, Vienna, Austria. Available at: http://constructionism2014.ifs.tuwien.ac.at/papers/1.2_1-8527.pdf

Resnick, M. (2017). Lifelong Kindergarten: Cultivating Creativity Through Projects, Passion, Peers, and Play. MIT Press.

Papert, S (1980) Mindstorms: Children, Computers and Powerful Ideas. Basic Books, Inc. Publishers.

 

About this article

This article was originally prepared for the November 2017 issue of the ACEL e-technology publication, and has been modified to suit this post.

 

Makey Makey projects for Year 3 to 6 students

MaKey-logo-events

Makey Makey together with Scratch is a wonderful combination of tools that can be used to create all sorts of nifty solutions with students, as well as teach the basics of circuity, conductive materials and algorithms. Whilst we have used Makey Makey and Scratch on a small scale at my school before (commonly during Genius Hour projects), this term we have used the CSER lending library so we could teach components of our Digital Technologies Curriculum (Victorian) to all students in Years 3 to 6. You can read more about what our students thought about these projects here.

As all students in year’s 3 to 6 have their own Chromebook, so it was very easy to use the Scratch 2.0 application via the Chrome browser. As Chromebooks all have a USB peripheral port, Makey Makeys will plug directly into Chromebooks and essentially behave like an input device. Therefore, you can program in Scratch to respond in certain ways when specific keys are pressed, and Makey Makey can mimic those keystrokes.

A good way to see the potential behind Makey Makey is to check out the Makey Makey Labz page, which includes a gallery and a set of guides or tutorials from other people around the globe who are inventing with Makey Makey. They also have an educator page which contains some basic to advanced lessons, as well as a link to a forum which is growing in user activity.

For further materials and educator resources relating to Scratch and the links to the Digital Technologies curriculum, see these relevant presentations by myself here.

Below is a series of lessons that were conducted with our 3-4 and 5-6 year levels. Our lessons are usually made available on our Google Site or Google Classroom, where the teacher can display the lesson and the relevant part of the lesson on the projector screen. Students can also open the lesson on their own device when required, so you will notice that the lesson has been designed for this in mind. All lessons are licensed with Creative Commons, so feel free to make a copy, add to and modify, simplify or extend. Most of these plans were carried over at least 2 lessons, and in some cases, several weeks. The particular concepts explored could also be made to suit 1-2 or 7-8 level. Do reach out to me if you use these successfully, I’d also love to know if you adapt or modify beyond these plans.

Most of these lessons are designed around Learning Objectives and Success Criteria framed using the SOLO Taxonomy verbs. This was deliberate by design as the SOLO Taxonomy can be useful as a schema towards deep learning and higher order skills required for creative work. For example (below), you wouldn’t expect students to be able to create a drum machine (EXTEND) unless they were able to apply their knowledge of Scratch and Makey Makey (RELATE), of which they wouldn’t be able to do unless they were able to assemble the components in the correct order (MANY IDEAS) after understanding and identifying the correct function of each system component (ONE IDEA).

Capture

Also included in the table is a link to the relevant way of thinking within the Technologies curriculum (Australian) at each SOLO stage, mainly for the teachers as a reminder to be explicit about these concepts and ideas.

Year 3-4 lessons / project ideas

Sound machine project (foil drums) (link) – 3-4 students commenced with a simple sound machine project using plastic cups wrapped in foil, and an alloy bbq tray to act as a grounding point. Students played the electronic drums by placing one hand on earth and the other hand on a foil cup to create a complete circuit. This project could be modified so that students can wear an “earth bracelet” so that both hands are free to play, or conductive materials are used as drum sticks which are connected to earth so the circuit completes when the sticks and cups are connected.

 

Paper circuit project (link) – Students then created a paper circuit that could be touched by finger to create a circuit. It worked surprisingly well using plain white A4 paper and 2B grey-lead / graphite pencil. They observed many examples of paper circuits that were found online before creating their own. If we had more time on this project, it would have been great for students to recreate a musical tune that will play when a finger is run across the circuit page as per one of the examples we saw. This circuit project could also be extended to making interactive posters.

 

Wire game (link) – The final project that 3-4 students worked on was a buzz wire game using wire and play dough (which contains water and therefore makes as a good conductor) to recreate an old carnival fare classic. The game can be made easier or harder depending on the positioning of the wire components. This project was also a good introduction to IF / ELSE conditional loops. This project could be modified so it includes a counter every time the user makes it to the end of the wire, as seen here.

 

Year 5-6 lessons / project ideas

Sound machine project (foil pads) (link) – 5-6 students commenced in a similar way to 3-4 students, except they had to cut and paste foil onto cardboard to make their own synthesizer inspired music pad. Again, this could be modified so that drum sticks or an “earth bracelet” are used to free up both hands.

 

Electronic bin project (link– As part of our term 2 inquiry focus on inquiry, students were invited to make a working prototype of an electronic bin. Working under the umbrella of “How might we change human behaviour to have an impact on our environment?”, students took a design thinking approach to plan, build and improve their designs. This project took a good 6 weeks to complete but could be shortened.

 

Other projects

 

As mentioned earlier, several students have incorporated Makey Makey in their Genius Hour projects over the last few years, for example:

A true / false buzzer system that interacts with a quiz on Scratch (link)

A safe fencing game made out of foil vests and wands (link)

An interactive dance mat (link)

A basketball shot clock and score keeper (link)

A shuttle run counter and timer (link)