Teaching Coding to Kids Using Raspberry Pi 3 and Scratch

With demand for computer science skills on the rise in America and around the world, it’s become increasingly apparent that elementary school children need to learn basic coding skills and computer science concepts in order to keep pace with the growing demands of our economy. I believe that — much like teaching a child a foreign language at a young age — these skills will be invaluable for any future career prospects that a child might consider once they enter high school and college.

I’ve worked as coordinator of the makerspace at Missoula Public Library — located in the mountainous college town of Missoula, Montana — since August 2016. Over that time, I’ve had many parents and educators inquire as to whether I would ever offer a coding class for elementary school students. Although it’s something I always envisioned offering through our makerspace, I initially felt too overwhelmed in my new position to ever pursue such an endeavor. Furthermore, I have no prior experience teaching children; I’ve worked at the Missoula Public Library since 2011, and prior to that I worked in newspaper journalism.

But thanks to a recent hardware donation from SparkFun of six Raspberry Pi 3 Starter Kits as part of its Community Partnership Program, I was able to kick-start this idea into a reality!

On the afternoon of Monday, Oct. 2, I began teaching the first of five coding classes for children ages 8 through 12 utilizing the Raspberry Pi 3 Starter Kits along with MIT’s Scratch, a block-based programming language for kids that is loaded onto the Raspberry Pi’s Raspbian operating system.

teaching students to code using Raspberry Pi and Scratch

Lessons Learned Teaching with Raspberry Pi 3 and Scratch

I decided to use the Raspberry Pi 3 along with Scratch for this class because I thought it would be a great way to introduce the basics of coding to kids by utilizing a programming language that’s tailor-made for their age group, along with an affordable single-board computer that costs less than $100. Ultimately, the class was a success, but there were a few hiccups along the way. During this whole process I’ve realized a few things that might be beneficial for fellow librarians or educators to know if they are looking to teach programming with the Raspberry Pi 3 and Scratch. These include:

  1. Teaching a class to such a varied age range — ages 8 through 12 — can be difficult due to the various abilities and interests of each student. While some of the younger students struggled to keep pace with each lesson, I noticed that the oldest student in the class finished each lesson more quickly than anyone else and soon became bored. I am planning to offer this class in the future based on grade level versus age range.
  2. Starting out with simple projects during the first few class sessions is key, rather than delving into creating a game right away. I’ve found that the projects located in the “Tips” section of the Scratch website are very easy for students to digest and complete within a one-hour timeframe during the first few class sessions.
  3. When you do decide to create a game with your class, begin with something simple, and then assess whether your class should advance to creating a game that’s more challenging.
  4. One of the biggest lessons I’ve learned is that kids want a return on their investment while learning coding — and they want to see that return immediately. If they don’t see a result, they will get frustrated. Because of this, teaching Scratch projects and games that show an immediate result on the screen should be pursued first in order to keep students engaged and interested.   
  5. Throughout this process, I’ve also learned that there are many printed and online resources available for those wanting to teach Scratch in their libraries and schools. Resources that I found helpful include:
    1. The books “Coding Games in Scratch” and “Coding Projects in Scratch” by author Jon Woodcock
    2. The Raspberry Pi Foundation’s Picademy series of online training courses for educators
    3. Lero: The Irish Software Engineering Research Centre
    4. ScratchED

Diary of  Rookie Instructor

During the first class, I introduced the kids to the Raspberry Pi 3, talked about what it can do, had them boot up Scratch and walked them around the interface. I then led them through a simple exercise where they learned how to use a pencil tool in Scratch in order to draw their own animations using simple algorithms. At one point, I realized that half of the class was confused because their project wasn’t working as intended. While trying to help a handful of these students, the other half of the class either became bored or distracted by their classmates. So for the second week I invited my boss, Honore Bray, the director of the Missoula Public Library, to sit in on the class and offer any suggestions. Since her background is in teaching, she was extremely helpful in directing the students’ attention to the task at hand, which was to create a simple ping pong game utilizing activity cards found on the Scratch website. In the end, we finished making most of the ping pong game, save for a few extra elements that we didn’t have time to add due to time constraints.

Only one student showed up for the third class, but we had a very productive one-on-one teaching session where we started creating a game called “Star Hunter,” which is featured in the book “Coding Games in Scratch” by Jon Woodcock. By the end of the class, we had just about finished creating the game, and the excitement from this student was palpable.

Four of the five students made it to the fourth class. Because of this, I determined we should all start on a game that could be completed in two class sessions, as the last class was the following week. I decided to have them create their own version of “Cheese Chase,” which is also featured in the book “Coding Games from Scratch.” By the time the class ended, we had completed about half of the game. As they left the classroom, I noticed many of the students excitedly telling their parents about the game we were creating.

When we met for our final class, on the afternoon of Monday, Nov. 6, the students were all eager to finish creating their first game in Scratch and show their creation to their friends and family. Although we didn’t quite finish the game due to time constraints, we progressed during this last class to the point where each student would be able to complete their game at home. And even though the students were somewhat disappointed when the clock struck 5 p.m. and we hadn’t finished our game, I could tell that they all had a blast on the last day of class. One student even gave me a hug as he left.

Final Reflections

Upon reflection, I’ve realized that teaching coding to children can present a number of logistical challenges, but that these challenges are ultimately rewarding and have helped me reframe my approach. I’ve also realized that starting out with small, simple projects is key to a successful class session, and that at the end of each class, every student wants a tangible result for their efforts.

I’ve also realized how powerful the Raspberry Pi 3 is in terms of being able to offer students the chance to get into coding and tinkering for less than what it costs to buy a new laptop or desktop computer. I’m truly grateful for the hardware donation from SparkFun of these Raspberry Pi 3 Starter Kits, and I look forward to offering more coding classes to students (and hopefully adults) in the future.  

Get Started with Raspberry Pi with these Resources


Ira Sather-Olson is the senior makerspace associate at Missoula Public Library in Missoula, Montana. It’s a position he’s held since August of 2016 that entails implementing makerspace-related programming and overseeing a dedicated base of makerspace volunteers in Montana’s busiest public library. He has worked at the Missoula Public Library since 2011 and previously worked in the fields of print journalism, music store retail and coffee/tea retail.

Subscribe to SparkFun Education Blog

Recent Posts

Submit Your Idea