A project to create curriculum for middle school to early high school students using Microbits and MicroPython to teach coding in a physical computing and Maker world. This is a Python version of the same book which was written for Microsoft's MakeCode programming.

View the Project on GitHub CarlLyman/Python-Microbits

Coding & Innovation using Microbits & Python


This is an introduction to coding and computer science by way of making and design, using the revolutionary new Microbit microcontroller board, and MicroPython coding environment. It is a project-based curriculum with a maker philosophy at its core; the idea is that by making physical objects, students create a context to learn computer science concepts, to think creatively, to code, and to become innovative. This project is a Python version of the same book that was written for Microsoft’s MakeCode. Coding & Innovation using Microbits

alt text

Module 1: Design & Making with Microbit

This module introduces the microbit as a piece of hardware that has a specific size and weight, and generally must be supported and incorporated as an essential component of a tangible artifact. Focus on making a pet robot and incorporating the physical microbit as the face of the project.

Module 2: Software & Hardware (Algorithms)

This module introduces a conceptual framework for thinking of a computing device as something that uses code to process one or more inputs and send them to an output(s). Questions to be answered include: What is a computer? What is a microbit and what can it do? Students will be introduced to the basic algorithm of input, processing, and output (IPO). Students will be making projects that utilize the microbit sensors to get input, the microbit and basic math to process the input, and the LED screen to output the results.

Module 3: Everything Counts (Variables)

Computer programs process information. Some of the information that is input, stored, and used in a computer program as values that vary or change during the running of a program. Programmers create variables to hold the value of information that may change. In a game program, a variable may be created to hold the player’s current score, since that value would hopefully change during the course of the game. Students will be making projects that utilize variables and basic math, like: a people counter, pedometer, score keeper, and/or dice roll.

Module 4: Making Decisions (Conditionals)

Computer programs are instructions telling the computer how to process input and deliver output. An important part of programming is telling the computer WHEN to perform a certain task. For this, we use something called ‘conditionals’. Conditionals get their name because a certain condition or rule has to be met. Conditionals are usually implemented using an ‘if (condition) then action’ statement. Students will be creating and making projects like coin toss, Magic 8 Ball, and/or dice toss with dots instead of numbers.

Module 5: Music, Designs & LEDs (Loops)

The microbit has several General Purpose Input Output pins (GPIO) that can be used get additional inputs or to direct output to. The ability to process inputs and control external outputs devices is the basis for much of the technology innovation that is happening in the world today. One of the things that computer are really good at is doing the same thing over and over again without getting tired. In this module students will use loops to compose music, connect headphones/speaker, connect external LED’s, and designs that repeat.

Module 6: Radio Communications

This module covers the use of more than one microbit to share and combine data. Students will explore the Radio functionality of the microbit. Students will send and receive numbers and strings in a series of guided activities. Finally, students are asked to collaborate so that they can share their microbits and create a project together that uses the radios as part of their project.

Module 7: Innovative Project

In this module students will be reviewing the concepts they covered in the previous weeks, and providing some ideas for an independent “mini-project” students can focus on. We will also introduce a framework for keeping students accountable to the work they are doing individually and in groups, and providing a rubric for assessment of the development process, as well as the finished product. It is important to allow students to practice accounting for the work they are doing on a short “mini-project” like this, so that when they move on to an independent project spanning multiple weeks, it will be easier for you to keep track of what everybody is doing. Programming is a process of patient problem-solving, and finding ways to value, acknowledge, and reward the problem-solving process is an important part of assessment.

Module 8: Functions

In this module students will learn to create and use functions to streamline the coding process.

Module 9: Speech Synthesis (Strings)

MicroPython for the Microbit has the ability to do speech synthesis. In this module students will learn to create speech from text and how to manipulate text using string functions.


Instructions to update the firmware on the Microbit.

Google Doc link

MicroPython Editors

In the browser MicroPython editor: Downloadable MicroPython editor Mu can be found at: It will run on Windows or Mac OS.


This project heavily utilizes the open source work done by Douglas & Mary Kiang who wrote the course “Intro to CS using Micro:bits”. It is published by Microsoft MakeCode team and