In the first two lessons of our computer science unit, my first graders learned that anyone can code, even without a computer (and proved it!), and that software engineers use their imaginations to plan their work.This week, we learned that software engineers work together. Working in groups, the students started the coding project that will continue until the end of the unit – making their own online game using Scratch. I’ve seen a lot of educators use Scratch with middle school and high school students, but it works well with first graders too! Read on for step by step instructions for your classroom. As always, click the thumbnail images to download all the free resources you will need for this lesson.
Step 1: Be prepared!
If you’re new to coding (like me) then you’ll need to do a bit of prep before you start this project. Becoming familiar with Scratch beforehand definitely helped me feel more confident during my lesson. It also helped me to adapt when I found out that one of my students had seen Scratch before and was keen to jump ahead of the rest of the class! I worked my way through this Scratch tutorial, which helped me to understand how the system works. This tutorial teaches you far more than you need to know for this project, so if you’re pushed for time (what teacher isn’t?) then check out the tutorials and videos on the official Scratch page. To work with Scratch, students will need a computer with internet access that is able to run flash (not an iPad). We used a combination of teachers’ laptops and the class desktop to make sure we had one computer for each group of students.
Before the lesson started, I organized my students into groups of 4-5 and created a free Scratch account for each group, as well as one for myself. If you have a computer lab, you could have each student make an individual project, but personally I prefer to have the students collaborate in groups. This way students can support each other, learn from each other, and gain important skills in negotiation, compromise, conflict resolution, and group decision making. After setting up each group’s account, I logged in to each account and created a new project. The default project on Scratch gives you one character, or sprite, but I wanted students to choose their own sprites, so I deleted the default cat sprite and left their new projects totally blank.
Step 2: Introduce today’s learning outcome
We began this lesson by reviewing our previous learning outcomes, and briefly discussing today’s focus – software engineers work together. I think it’s really important to challenge the stereotype of a coder as a lone, usually male, geek programming in isolation in his bedroom. I want my students to understand that writing software is most often a collaborative process, done by all sorts of people, not just people who look like this!
Step 3: Introduce Scratch to the students
Today, I told the students that they’d done so well with Kodable that it was time to move on from playing games, to making them. Over the course of the next few weeks, first grade will be working in groups to make an online game that they anyone can access and play online. To make the game, we are going to use Scratch, a programming environment designed for kids and beginning software engineers. To start, I gave the students a quick demo of a game I started working on last night. I then clicked the ‘see inside’ button to show the students the programming environment they would be using. The code I wrote appeared on the right hand side of the screen, but I quickly deleted it, so that I could show the students how to put the code together (just drag the scripts back to the script bank to remove them from the program). Just like in Kodable, we can write programs by dragging commands from a bank on the left to a box on the right. Unlike Kodable however, there are lots of different commands, and they are labelled with text rather than symbols.
Step 4: Teach basic commands
Using student helpers to demonstrate, I showed how to drag commands from the script bank to the programming area. Together, we made the first block of code, which moves the bug to the left when the left arrow key is pressed. As a class, we then worked through how to program the bug to move to the right when the right arrow was pressed. I used the printable commands to display our code on the board so that students could refer to it later as they worked independently. Although Scratch is a big step on from Kodable, the concepts are very similar and the students picked it up right away and were keen to get started!
Step 5: Students begin to create their games
The students split into their groups and moved to their group’s computers (which I had already set up to be logged in to their group’s Scratch profile, with a new blank project ready and waiting for them). They worked together to choose a sprite and write a program that would move the sprite around. This took most groups around 30 minutes, but one group finished quickly and began exploring other commands, ending up with a sprite who would not only move but glide when the space bar was pressed.
Step 6: Stop, collaborate and listen
After each group had chosen a sprite and worked together to make their sprite move, we regrouped to discuss our day’s progress. All of the groups had been successful in programming a sprite to move, and everyone was confident about their ability to use Scratch to write code. Lots of people had ideas of what they wanted to program next. However, we acknowledged that sharing and collaboration had been by far the hardest part of today’s session. Some students had found it difficult to give their opinion without dominating their group, while others had found it difficult to make their voices heard. We all agreed that we would need to continue working on our collaboration skills next week.
In which our programs get more complex, and we try out some strategies for working together as a group. Read on….