Creating solutions from the ground up
Agency: For your learners, there’s a massive difference between being asked whether they know the answer to a problem, and being asked to find a solution to one. The first question assumes knowledge (and thereby frames a lack of knowledge as failure) and has a narrow focus, while the second gives learners the room to be wrong or not know yet, and to develop real understanding and practical skills in a self-directed way.
Engagement: Learners with more agency are likely to be more engaged in their learning, too. A huge benefit of project-based learning is the scope it gives you to set relevant, real-world problems for your students. Being able to relate their learning to their own lives motivates students: when they see that they can apply new skills and knowledge to other situations in their lives, they understand the true purpose of the work they’re doing.
Universal skills: Project-based learning doesn’t give students ready answers to a specific problem; it asks them to build a mental toolkit for understanding any problem, so that they can create solutions from the ground up. By enabling this in-depth learning, you equip your students for real life, letting them practise skills required in most industries today: taking initiative, working responsibly, decomposing and solving problems, collaborating in teams, and communicating their ideas clearly.
Giving the power back to your learners
When your learners are interested and engaged with their own learning, your job changes from passing on knowledge and managing motivation to facilitation and inspiration. In project-based learning, you direct learners towards information instead of handing them answers, and you support them in creating something they didn’t know they were capable of.

One way to get started with project-based learning is to use a bank of Python resources that embody the idea, developed with the National Citizen Service. There’s a bank of 14 different helpsheets (with accompanying YouTube animations) that provides images of each basic electronic component, a simple wiring diagram with numbered GPIO pins, and the simplest of gpiozero code snippets to execute its basic functions, all on one handy page.
The helpsheets cover the most common simple components used in digital making, from LEDs to infrared motion sensors, cameras, Bluetooth remote controls, and beyond. There are also sheets that explain the Sense HAT’s on-board sensors, joystick and LED array, with accompanying code examples. We also made some that cover some commonly used processes in digital making, such as playing sounds with Python, making a remote control with the Blue Dot Bluetooth app, and setting up a Raspberry Pi-based gadget to function automatically as your students intend it to as soon as they power it up (known as ‘running headless’).
The intention behind the sheets is that you will first support your students through the design discussions they’ll need to have before they start making things and show them the library of components they have available. When they know what functionality they want from their invention (and what’s possible given their time and hardware constraints), learners need only teach themselves using the sheets and videos to make their ideas real. All of the code is broken into three sections to make each Python script modular; students can simply combine the code snippets on the sheets to make larger scripts that create more complex functionality.
If you’d like to replicate our hackathon model with your own students, we have released the facilitator’s guide to running the full two-day experience, complete with session timings, delivery notes, workshop slides, and a student support document called the ‘Developer’s Guide’ in which participants can make notes and get discussion prompts and tips throughout their build process.

Resources to support project-based learning
Guides for how to run hackathons with your students are available at rpf.io/hackathon-guides and rpf.io/component-sheets.