Scratch 3: what does the new version of Scratch mean for your Code Club?

The team behind Scratch have announced that they are releasing a new version of the drag-and-drop programming language in January 2019. Here Martin O’Hanlon, Content and Curriculum Manager at the Raspberry Pi Foundation, tells us what this means for people running Code Clubs, and what new features you can look forward to.

A new version of Scratch is on its way, and it looks fantastic!

Scratch 3 will be the latest version of the free block-based programming language that you’re familiar with, and there is a lot to be excited about. The Scratch team has released the beta version of Scratch 3 at beta.scratch.mit.edu, and it’s definitely worth a try.

New in version 3

The look and feel have been given an upgrade, with perhaps the most notable change being that the stage is now on the right-hand side. Plus, there are new paint and sound editing tools, and larger, easier-to-read code blocks.

user-interface

There are also loads of new sprites, backdrops, and sounds.

sprites

The Scratch team has also released a new extension system that allows you to use web services such as Google Translate in your projects.

Screen Shot 2018-08-16 at 14.47.07

There are also new extensions for hardware such as micro:bit and LEGO Mindstorms, making it much easier to use Scratch to program these devices.

Screen Shot 2018-08-16 at 14.48.23

And another very exciting update: Scratch 3 will work on tablets, making coding more accessible to those children who don’t have access to a computer.

tablet

Release dates

Scratch 3 will be released on 2 January 2019. It will replace the current Scratch 2 editor on scratch.mit.edu, meaning Scratch 2 will no longer be available online. At this point, you’ll also be able to download and install an offline version of Scratch 3.

If you are using Internet Explorer as your browser, then please note that it will not support Scratch 3. Scratch 3 will however be supported on the newer version of the Microsoft browser, Edge.

On our side, by January 2019 we will also update the Code Club projects so that they work with Scratch 3, although we’ll make sure that Scratch 2–compatible versions remain available so that you have time to upgrade your offline versions.

And we’ll also release brand-new Scratch 3 projects, which will take advantage of the newly introduced features, before January so that your club members can start to have fun with the new version.

Talk to us about Scratch 3

If you have any questions about the upcoming release of Scratch 3,  feel free to reach out to us via hello@codeclub.org.uk or on Twitter and Facebook.

You can also share your experience of using the Scratch 3 beta version with our community on social media — we’d love to see your projects and experiments!

Rik explains: encouraging learners to collaborate in Scratch

Rik Cross is the Interim Head of Content and Curriculum at the Raspberry Pi Foundation. He also runs a Code Club and is a former secondary school teacher. So he has a wealth of knowledge about all things Code Club and Scratch, which he shares with you in our blog series ‘Rik explains’. 

Today I’m going to talk about some of the ways in which you can use Scratch to encourage collaborative programming in your Code Club. I’ll first discuss some general approaches and then give you examples of practical activities to promote collaboration in Scratch.

ghosts

Approaches to collaborative programming

Pair programming

Pair programming is exactly what it sounds like: two learners program together! Usually, one learner takes on the role of ‘driver’ and writes the code, while the other learner is the ‘navigator’ who observes, reflects on, and reviews the code as it’s written. Pairs swap roles regularly, say every ten minutes.

As paired learners need to discuss the code before writing it, they are automatically encouraged to think logically and discuss solutions. They are also less likely to produce bugs, but if they do, discussing with each other will help them to debug their code more easily.

It has been shown that pairing more able and less able learners is of benefit to both: the less able learner sees how a more experienced programmer approaches and solves problems, and the more able one learns how to explain solutions in a clear and understandable way.

It’s also worth noting that this approach works best when learners collaborate on a project about a shared interest. This means that with some forward planning to decide on who to pair up in your Code Club, you will maximise learning.

Remixing

Collaborative coding can also happen remotely in the awesome Scratch online community! Learners can take online Scratch projects and change, personalise, and expand them. This is called ‘remixing’ (and it works with or without a Scratch account).

To remix a project online, simply log in and click the ‘Remix’ button in the top right-hand corner of the Scratch editor to create your own copy. (To remix without a Scratch account, download the project to your computer instead.)

Screen Shot 2018-07-06 at 11.01.02

You can see who is remixing your projects on your main project page:

Screen Shot 2018-07-06 at 11.01.54

One benefit of remixing is that it allows a learner to start with a project containing some more complicated code. For example, they might find a platform game project in which the code to handle player movement has already been written. This allows them to focus on things like designing levels, adding sounds, and creating custom graphics. As they become more experienced, they can look back through the original code to discover how to program the more complex features of the game. Being able to understand and edit existing code is an important skill to learn — professional developers share and re-use code all the time.

There is a great set of community guidelines that learners should read before joining the online Scratch community. One important piece of guidance is: “Be sure to give credit when you remix”. A good way you can teach this is by encouraging your learners to use the ‘Notes’ section of a project page to thank and give credit to others.

Screen Shot 2018-07-06 at 11.03.44

Activities to encourage collaboration in your Code Club

Custom blocks

A perfect time to encourage your learners to work collaboratively is when you’re showing them how to make their own custom blocks. Scratch allows learners to create their own blocks, which they can even pass data into. The example below shows a simple draw square custom block that is used twice to draw two different coloured squares.

Screen Shot 2018-07-06 at 11.04.27

One of the many advantages of custom blocks is that you can use them for decomposition, meaning you can break down a problem into smaller sub-problems and tackle each one separately. In the example, once you’ve created the draw square block, you’ve solved the sub-problem of drawing a square and don’t need to think about the block’s inner workings anymore. Another advantage is that once you’ve defined a custom block, you can use it as many times as needed. This means that if you, for example, want to draw larger squares, you only need to make one change to the block code, even if you’ve already used it to draw lots of squares.

If you’ve never worked with custom blocks before, you can get started by using our Binary hero project.

To highlight the power of decomposition for your learners, you could divide them into two groups. Then you can task one group with specifying the customm blocks needed (meaning the sub-problems to be solved) and creating the main code that pulls everything together. The other group has the task of creating custom blocks to solve the sub-problems. They can test each of the custom blocks separately before adding them into the ‘main’ Scratch project.

Crowd-sourced projects

Another way of encouraging collaboration in Scratch is inspired by the “Add yourself…” projects (such as the excellent Add Yourself to the Race!). These are crowd-sourced Scratch projects for which community members create sprites that are each coded to respond to messages that are broadcast in the main project.

Start this activity by deciding with your learners what the theme and the rules of the project should be. For example, you might like to work on a dance project in which learners can create sprites to have a dance party together. The moves to be broadcast could be:

  • Move left
  • Move right
  • Jump up
  • Crouch down
  • Make some noise

Once you’ve all agreed on the theme and the rules, you, or one of your groups, create the Scratch project with the broadcast commands, where all the sprites will be brought together in the end. For the dance example, I’ve created a project with a list of ‘moves’, with one of the moves being broadcast at random every time the music loop is played. (This will ensure that the dancing stays in time with the music!)

Screen Shot 2018-07-06 at 11.05.38

Learners can then create their own sprites that respond to the broadcast dance moves. For example, here’s a sprite that’s been coded to jump whenever it receives a ‘jump’ message:

Screen Shot 2018-07-06 at 11.07.24

To combine the different sprites, each learner can save their individual sprite and then upload it into the Scratch project containing the code to broadcast commands.

Screen Shot 2018-07-06 at 11.08.03

You can find an example dance collaboration project at rpf.io/dance-collab.

This activity allows learners to collaborate while still working at their own pace and ability level. It also allows them to be creative in how they fulfil the task you’ve given them. Plus, it’s really fun to see all of the sprites together at the end of the activity!

Check out the Code Club projects

Looking to find out more about what running a Code Club looks like? The best place to start is by checking out the Code Club projects, our free, easy-to-follow learning resources you can use to teach young people Scratch, HTML/CSS, Python, and more.

You don’t need any coding experience to run your own Code Club — get started today!

 

How to move from Scratch to Python in Code Club

Most Code Clubs start out with Scratch, but when the time is right, you might want to try out some text-based languages such as Python in your club. In this post, we explain how to introduce the Python language in a fun and engaging way.

When to introduce Python in Code Club

Many programmers use text-based languages like Python because of how efficient and powerful they are. While Scratch is a powerful language that can be used to create quite sophisticated games and programs, a time may come when your learners are asking you how to perform tasks that are overly complicated in a block-based programming language and would be much easier to do in Python. This is a great time to consider introducing this language!

hero_360fab49-0552-4b20-87e3-52ef956d5f96Code Club, meet Python

Here are a few great ways in which you can start introducing Python as a concept to your Code Clubbers:

  1. Show them real-world examples of the language: if you aren’t familiar with Python yourself yet, don’t worry! Get your Code Clubbers excited about Python by showing them that the language is used to create many of their favourite sites. This list shows that popular websites such as Google, Facebook, and YouTube are use Python code.
  2. Prove the power of Python: if you are familiar with Python, you could try writing a script that demonstrates how efficient the language is. For example, you could use the language’s built-in mathematical functions to demonstrate how quickly you can solve a maths exercise from a textbook!
  3. Automate tasks with Python: you can also try slowly incorporating Python into the running of your Code Club sessions. For example, you could write a script based on our Team chooser project that randomly picks one of your learners to do show-and-tell at the end of the session.

team-chooser

How to start writing Python in Code Club

Similarities between Scratch and Python

Once you have introduced your learners to the concept of Python, it’s time to get them writing their own code. This means acquainting them with Python syntax (i.e. the specific rules that determine how the language needs to be written).

A great way to do this is to get the young people to translate a simple project they have made in Scratch into the Python language. The Code Club Scratch project Username generator is perfect for this, and the following image demonstrates how one block from the project can be written in Python:

2-3-5

You can find instructions on how to translate this entire project into Python in the Raspberry Pi Foundation’s free online course Scratch to Python: Moving from Block- to Text-based Programming.

Another useful exercise is to show the children how all the basic Scratch blocks can be written in Python. You could ask different Code Clubbers to choose their favourite Scratch blocks and then work together with them to find out how that block would be represented with Python. In our Scratch to Python online course, you can also find illustrations of many Scratch blocks and their Python equivalents.

Code Club Python projects

Just like with Scratch, our Python projects are designed to gradually introduce children to the syntax and concepts of Python. We currently have two Python modules, starting with the project About me. In this project, learners write a Python program that tells people about themselves using the print() function and ASCII art.

Screen Shot 2018-06-06 at 13.41.12

If you’re not familiar with Python, don’t think this means that you can’t introduce the language in your Code Club. Simply try out each project before introducing it to the children and you can develop your Python skills together. You too will start to see how using Python can help you with day-to-day tasks!

Having fun with Python

We know learners love the graphics in Scratch, and moving to Python doesn’t mean you have to say goodbye to nice visual results! Our Turtle race! project in Python module 1 is a great one for demonstrating the fun games and animations you can create with Python:

turtlerace

Using Python in your Code Club means you can also work on long-term projects that show learners the scope and excitement of text-based programming. For example, Astro Pi is an annual coding competition that runs young people’s Python code on the International Space Station, and we always encourage Code Clubs to participate. What’s more exciting than sending your code into space?!

Debugging: community advice

As your Code Clubbers get to grip with this new language, a lot of your session time might be spent on debugging (i.e. fixing errors in code). We asked two Code Club volunteers about their top debugging techniques:

Lorna Gibson, Code Club Regional Coordinator for Scotland:
“When children in my club hit an error in Python, we turn fixing it into a game of ‘spot the difference.’ First I encourage them to compare the worksheet code with their own. If they ask for help again and promise they have already tried to spot the difference, I will go over and have a look. I win a point if I can spot the difference in under a minute. Motivated by competing with me, more often than not they ultimately spot the error anyway. It’s all about scaffolding and building problem-solving skills for the future.”

python-error
Darren Townsend, Code Club volunteer:
“I use comparisons of Scratch to Python at the beginning, for example to explain that ‘while True’ is the same as the ‘Forever’ block. I also have some Python cheat sheets which give examples of common Python code. Some of the learners find it easier to debug Python than Scratch, because Python gives you error messages to indicate what went wrong. It’s usually down to spelling errors!”

More guidance on transitioning from Scratch to Python

Feeling ready to take on Python in Code Club? Now is a great time to take the Raspberry Pi Foundation’s free online course Scratch to Python: Moving from block- to text-based programming.