I've been running Code Clubs using micro:bits for the last nine months and I thought it might be useful to share the format I've been using in case others are interested in doing something similar.
Before using the micro:bits I was running a more loosely structured Code Club and found a number of issues with that:
- It was hard to help kids who were at very different experience levels at the same time (required a lot of 1-1 teaching). Having a lot of kids makes this worse.
- You had to police kids who had stopped coding and were playing around instead (distracting the kids who were coding).
- Powerful environments like Scratch make it harder to focus on simple programming (kids can run complex games other people have made, but the code is too complex for them to understand).
I decided to instead try running a single term micro:bit course where everyone worked on the same projects. To do this I found a teacher who was interested in running the course with me. This is essential as that teacher was able to find suitable kids to be part of the course and able to manage them while running the sessions. This leaves me to focus on teaching the material. The course runs for one term (about 8 weeks) with one hour a week (after school in this case). We aimed for 10-15 kids per course.
I have two micro:bit club sets (20 micro:bits, USB cables and battery packs), four MOVE :mini robots (using four of the micro:bits), a pack of crocodile clip cables and four wire paths and wands (used for a specific project). I bought a lot of rechargeable AAA batteries to avoid ongoing costs and the waste from using disposables.
I divided up the club packs so one box has all the micro:bits and the other has the accessories. Having all the micro:bits in one box makes it easier to check if they're all returned at the end of the class (I keep the anti-static bags and let the class go when they're all full again). Every class I bring in the two micro:bit boxes, and I bring in the other hardware only on the days they're needed. This way nothing has to be stored at the school.
- I describe the project we're doing that week and ask the kids questions and get them to discuss it.
- Each kid gets a micro:bit and opens the webpage with the instructions on their Chromebook.
- We complete on the project together. I describe and do each step on my computer connected to the monitor and then walk around and help the kids do the same. Some kids follow the instructions themselves and shoot ahead, others follow what I've done and others are confused and need help. I don't move onto the next step until everyone has completed it.
- There's generally a lot of excitement when the project completes and they have it working. So some time is spent trying the result and showing their friends.
- I talk about some things you could do to modify the project and then see if the kids can work out how to do that by themselves.
- I walk around and give more and more hints until most kids have modified the project in some way.
- We pack up the equipment and I talk a little about which project we're doing next week.
This is the projects I'm currently using. If the term has more classes there's three other CodeClub micro:bit projects that can be used.
This is a really simple introduction to the micro:bit. I start by giving the kids some micro:bits to look at then describe the components on them. I talk about the microcontroller that is the "brain" of the micro:bit and how you'd find something similar in your microwave or other devices they might not consider to be computer controlled. By the end of this project the kids know about input using buttons, display using LEDs, animation using delays, testing using the simulated micro:bit in MakeCode and downloading to a real micro:bit.
This is an implementation of a Magic 8 Ball toy. This is a project that works really well:
- It's a programmatic version of a real world thing, so it's easy for kids to understand.
- Kids like to extend it by adding their own responses, e.g. "ask me tomorrow", "no way!".
- They have a lot of fun asking their micro:bit questions and laughing at the answers.
This project introduces some simple electronics with crocodile clip leads and the wire and pre-assembled wire paths and wands. The kids learn that you can connect things to the micro:bit and it can become part of a larger project. Watch out for kids shorting micro:bit pins together! (Doesn't seem to break anything but makes the micro:bits behave oddly).
One of the great strengths of the micro:bit is how easy it is to use the Bluetooth radio to connect multiple micro:bits together. I made this project to introduce a simple project to send a message from one micro:bit to another. This one can be a bit hard to diagnose when mistakes occur (is it the transmitter or receiver not working?). Good for working in pairs - give each pair a radio group number and then their micro:bits talk to eachother. The range is sufficiently short that the kids can find the limitations of radio.
5. Image Sender
This project is a more complex radio project. It also introduces using binary to encode an image. I wrote another radio project but found it a bit complex for the kids to understand. This is my second attempt to make something simpler and haven't yet tried it with kids.
6+. MOVE :mini
I have four MOVE :mini robots and get the kids to divide into groups of 2-3 to use them. I don't have a written project I get the kids to follow but I talk about how these robots have two servo motors and show them how to set their speed. We use felt tip pens and paper to get the robots to draw shapes. The robots provide 2-3 sessions of work with the following challenges:
- Draw a circle (get one wheel working).
- Draw a bigger circle (get two wheels working at different speeds).
- Draw a square (need to move forwards, turn on spot with one wheel forwards and the other backwards, use timing to keep things square).
- Show colours using the RGB LEDs.
- Remotely control the MOVE :mini using the Bluetooth radio.
I hope this inspires you to try teaching with micro:bits!