How I teach Python on the Raspberry Pi 400 at the public library

After a long year of putting plans on hold, declining COVID case numbers in the United States are bringing back community-based programming courses.
177 readers like this.
women programming

WOCinTech Chat. Modified by CC BY-SA 4.0

After a long and tough year, I've been looking forward to once again sharing my love of Python and open source software with other people, especially middle and high school students. Before the pandemic, I co-wrote a grant to teach Python programming to middle school students using Raspberry Pi computers. Like many other plans, COVID-19 put mine on hold for over a year. Fortunately, vaccines and the improved health in my state, New York, have changed the dynamic.

A couple of months ago, once I became fully vaccinated, I offered to self-fund a Raspberry Pi and Python programming course in our local public library system. The Chautauqua-Cattaraugus Library system accepted my proposal, and the co-central library in Olean, N.Y., offered to fund my program. The library purchased five Raspberry Pi 400 units, Micro-HDMI-to-VGA adapters, and inline power adapters, and the library system's IT department loaned us five VGA monitors.

With all our equipment needs met, we invited middle school students to enroll for four afternoons of learning and programming fun.

All the students were socially distanced, each with a new Pi 400 and VGA monitor at their desk. Our class was small, made up of a fourth-grade student and two sixth-grade students. None had a programming background, and their keyboarding skills were rough. However, their innate curiosity and enthusiasm carried the day.

Learning and iterating

We spent the first afternoon assembling the Pi 400s, connecting them to the library's wireless network, and installing the Mu Python editor, which we used for the class.

I followed this with a brief introduction to Raspberry Pi OS and how it differs from Windows and macOS computers and offered a brief tutorial on using the Mu editor.

Since we were meeting in a public library, I emphasized that the library has books covering the concepts and Python programming code used in the class, especially Teach Your Kids to Code by Dr. Bryson Payne and Python for Kids by Jason Briggs. I created daily handouts for the students to refer to alongside the instruction. I also used my own Raspberry PI 400 connected to a 32" LCD monitor to illustrate the code and programming results.

I like to use the turtle module to introduce Python programming. It's always been well received, and the students love the graphics they can create while learning Python basics like variables, for loops, lists, and the importance of syntax.

I learn something new every time I teach, and this was no exception. I especially enjoy watching students iterate on my code examples—some are from books, and others are my own creations. The fourth-grader in our class took this example code and added two more colors and corresponding code to create a six-color spiral.

# multicolor spiral
import turtle as t
colors = ["red", "yellow", "blue", "green"]
for x in range(100):

At the end of the four-day course, each student received a Raspberry Pi 400 and a book explaining how to program their computer. They also got a list of free and open source software resources, a reading list of recommended books available in the library, and some open educational resources available on the web.

Open learning

Mark Van Doren said, "the art of teaching is the art of assisting discovery." I saw that play out in this classroom using open source tools. More students need opportunities like this to help them gain a quality education. The Raspberry Pi 400 is a great form factor for teaching and learning.

The Olean Library plans to offer another similar course later this year. I encourage you to share your love of free and open source software with your own communities.

What to read next
User profile image.
Educator, entrepreneur, open source advocate, life long learner, Python teacher. M.A. in Educational Psychology, M.S. Ed. in Educational Leadership, Linux system administrator.


Most excellent, dude!

At HacDC we recently ran a "prototype" alpha-test run of a six- to eight-week class using the SparkFun / RedHat CoLab robot, based on the BBC micro:bit microprocessor and the SparkFun moto:bit board for controlling motors and sensors. The idea was to run it by some of the more skilled before offering it to a wider audience once we're open for business again.

Great idea. I've used the BBC :Microbit in a prior Raspberry PI and coding class that held in August 2019. I'd like to incorporate that again. I admire your work with HacDC.

In reply to by kjcole

While I laud teaching kids programming and other STEM topics, I have to say that I really really dislike Python, and while it is better than using BASIC, I fear that introducing programming using Python will have negative consequences down the road.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.