[Music]
Welcome to the Circuit Python Show. I'm your host, Paul Cutler.
This episode I'm joined by Martin Tam. Martin wrote the first Code Club moon hack projects in Scratch and Python, used by over 10,000 kids in Australia.
He also blogs on maker topics, runs a maker store, works in IT security, and contributes to various open source projects and community conferences.
Martin's latest book, "Microbit Projects with Python and Single-Board Computers Building
Steam Projects with Code Club and Kids Maker Groups" was published this past April.
Martin, welcome to the show.
Thanks.
Great to be here.
How did you first get started with computers and electronics?
I used to do a paper round when I was in grade six, which would probably be maybe 11 or 12
or something.
My parents really, they initially wanted me to do it.
And then they realised that that cost them too much
to repair my bike and everything.
So eventually they got a computer and I quit my paper
and I come home and play with this computer.
It's the usual thing, get sick of playing games.
And, you know, we used to have to type in
all our games as well.
I noticed that, yeah, there was BASIC
and then there was assembly language.
I also went straight to assembly language
and started looking at how things worked.
I looked at, "How does this work?
It's such this code here."
Then I went through and one thing led to another.
I'm like, "A system call,
print something on the screen."
I'm like, "Okay."
Then I was like, "That worked.
So wait, what does that do on the big covers?"
I looked in the system call and I just saw,
it just copies a byte from one location to another.
So what if I copy something to 1024 in memory and it appeared on the screen?
And so, oh, well, that's another shortcut.
And then after that, it was, oh, you can do interrupt driven programming and you can make
all these things happen really quickly unless you just really load it up, which I did and the whole
computer started to slow down. But yeah, it was pretty exciting. And that's sort of how I got
started and fast forward to yeah when I got into security and strangely all
these useless things became really useful for you know reverse engineering
malware and things like that.
Your new book Microbit Projects with Python and
Single-Boarder Computers was released this past April. Tell me a little about the book.
Yeah, Aaron from Apress hit me up and said oh because I've been
writing some tutorials on a blog and he said oh yeah who does these and that'd be me.
Yeah, we had a brainstorming session and it just worked.
It was probably in the middle of the pandemic where everyone had crazy hair and was getting
up at silly times of the day and working from home a bit more than they normally do.
It just came together and pretty much I did several years of Code Club.
So there's Code Club World, Code Club Australia, Code Club UK.
At my son's school, I volunteered.
Well, I actually asked how they registered for Code Club and I asked how it was delivered.
And that seems to mean I want to volunteer.
So I ended up volunteering for that.
Yeah, the teacher who'd been there from the start says, "It's several years now.
This is quite an epic thing."
All these things that we learnt from making lots of mistakes
and getting really frustrated
and having lots of false starts turned out
they would be really good to put into a book.
And that's essentially it in a nutshell.
That was, this is what we did.
This is, yeah, I'm not a teacher.
I do have a certificate in course development and training
and I do train people in secure development,
But other than that, I hadn't really taught kids.
- For those who might not know, what is a code club?
- So it's an extracurricular activity,
the way of getting kids coding outside of school.
Some code clubs run in conjunction with the school,
which is what ours was,
and others are at the local library.
Coding over here in Australia is in the curriculum,
but it wasn't so much.
And I really liked the idea because I sort of feel like coding and those kinds of other skills,
they seem to be more empowering when there's something that's yours rather than something that's thrust upon you.
And so, yeah, so Code Club is essentially a bunch of volunteers, a group of kids sitting down and going through a bit of a curriculum.
And we just sort of pushed it harder and harder.
It ended up venturing into things like electronics, 3D printing, that sort of thing.
Who is the book intended for?
Is it more for the kids or more for the folks running the code club?
So the book is really for anyone who's keen to run a code club or make a group for kids.
So that could be kids.
There's quite a few teenage kids who do that.
but also parent volunteers who are really keen.
There's also a lot of teachers that are quite keen,
which is really, really good to see.
There's a big difference between when a teacher embraces it
and does this sort of tinkering for fun
rather than just part of their job.
It's a hard message to get across.
And you get that look where,
are you some kind of weirdo who likes this stuff?
And it's always a little bit disappointing when I get that,
but then you get the teachers
and they get really excited about things
and that's where you're, oh, this is really good.
- Kids learn in different ways and at different speeds.
How do you keep the kids interested
and not get discouraged?
- I guess a lot of it is reading what the kids are into.
At the start, we were just really happy
get through one session. It's strange because you know not much should have
changed since we started to now but when we started we had a lot of kids that had
grown up with tablets and iPads and phones and we would say something like
you know I'll go to the drop-down menu and they would just look at us blankly
and I'm like oh that's interesting or they wouldn't know how to use a mouse
or they would touch the screen and be like, "Don't touch the screen!"
And yeah, so there are a few challenges with that, but we started to read what
different kids from into. So for example, if you get a kid who sits down and puts
his fingers on, you know, WASD and holds the mouse, then this kid plays games.
So you can kind of hook into that. Other times you might just see different
things that the kids like about things and you can talk to them about that.
And the other thing is just I guess telling them what we're thinking. So we would sit down
and verbalise and that's something that I talk about in the book is verbalising what you're
thinking, your thought process. And then we get the kids who've coded before. So yeah,
they're pretty easy. I guess that there were limits though with that. We did try and just
focus only on Python because you know if everyone's doing the same thing it's just so much easier but
I feel like we had we had one hour a week if we showed them five or six different languages they
just wouldn't get fluent in any of them and the whole idea was to empower kids and and give them
something that they could whatever language it was stick on that language and get them at least
fluent enough to be able to not just follow copy directions, to actually think of something that
they want to do and be able to express themselves by creating this with code and communicate with it.
We did see a few really good school projects that came out of it as well. So we would go along to
some kind of open day or something like that and they'll be one of the Code Club kids and they've
written something. So yeah, it was always really good to see that.
So in addition to Python, the book talks about the microbit and micropython.
Did the kids favor Python or the microbit projects one over the other, or
does the curriculum take them through both? The co-club curriculum
does have microbits, but more the sort of drag and drop type
of thing. So they've got to like scratch more
And so there's a whole curriculum of Scratch modules.
I can't remember how many there are, but I think there's over 100 modules there, and they're all free.
And it's free to sign up for a code club, which I think is a really, really good thing.
I think the kids just with Python, they saw it as Python, and it was pretty universal.
So I would talk a lot about, hey, why don't we do this project?
Because you've learned about lists, you've learned about these.
these and we try and put in a bit of terminology in there. I guess not to make it technical,
but just to give them a way of, you know, if they talk to someone who has accomplished programming,
they could communicate with them. And that collaboration is something that we talk about
as well, like Co-Club, and I've also included a lot of that in the book as well.
How did the kids collaborate rather than working on each project by themselves?
I think it was just inevitable that they would start to collaborate because we'd end up with a
bunch of kids who were a little bit ahead or had finished a bunch of projects and then we wanted
everyone to complete projects because we did find that when people stopped when it got hard
they wouldn't learn. I mean we all know what it's like when you start debugging things yourself and
And then you realise you actually understand more from that,
but it's quite easy to just stop there. So we,
we really focus on completing the projects, not,
not just for the sake of completing them,
but to make sure that people broke through that gateway of
understanding how to overcome the adversity of, you know,
things aren't working as they should. How do I, how do I fix it? You know,
how do I, how do I discover what went wrong? That sort of thing.
And so then it just came into, I think we,
the first project that we did as a group was called Devs and Testers.
Essentially the kids just had a,
they picked a project that one of them made.
It was pretty generic little game. Some of them were devs,
some of them were testers and I just had a Kanban thing on the, you know,
with three columns were, uh, much like GitHub,
a very simplified GitHub on the whiteboard.
and they had post-it notes and say,
"All right, this group of testers
they need to find bugs or find things that can be improved."
And then you put them on a post-it note
and the devs team will look at it and work out,
yeah, they'll prioritize which ones
are worth fixing and adding.
I thought we would have issues with collaboration
because you can't, it's really hard to merge code
on something like Scratch.
- Kids like to surprise us.
Do you have a favorite story from your time
running a kids' club that may have surprised you?
- We had this one guy, Jamie, and I wouldn't say he was,
he came back as a volunteer as well later on.
But when he was in Code Club, he would,
and this was back in the Scratch days,
But he was just so prolific.
He would sit there and he would work out
what he wanted to do,
and he would just sit there and nut out.
Like, he'd have all bits of code back in Scratch
that would be a bunch of blocks
just sitting somewhere orphaned.
And he would have all those things so he could remember
in case it didn't work.
But one time I do remember he came back from holidays
and he was messing around with the game.
And I said, "Oh, is that your new game?"
And I knew he made multi-level games.
And I said, "How many levels have you got?"
And he's gone, "13."
And I'm like, "So you just, over a couple of weeks,
you've just written a 13-level game."
And they were just jumping blocks and things like that.
It's the type of thing that you would see is,
I don't know whether he ever went on to, you know,
make a mobile game and that,
that that would be the type of game that would just take off on on mobile and I think that was
that was one of those times where that was just mind-blowing that you know someone did that and
the other time was where I was on one of the school cabs that I used to go along to had one
of the students sit next to me you know as my your bus buddy you had to have a bus buddy didn't say a
word it is a different person didn't say a word it's interesting the people who like coding don't
talk a lot they said "ah she loves Code Club" and I'm like "oh right okay" and as soon as I mentioned Code Club
she just did not stop talking. She was super, she's like "I can't wait to get home and
go and program things and scratch again and that" and so that was one of those things
that we really wanted because those kids will probably still be doing that stuff even you know
long after Code Club and that's, you know, it's become theirs. And I think that was one of the
one of the things that makes Code Club make a difference because you're giving the kids,
you're empowering them to be able to make their own things and to also teach themselves.
So we're almost out of time. Last question I'd like to ask is you're about to start a new project.
Which microcontroller do you reach for? So typically it's the most minimal board,
micro control board that will do the job and is currently available in large enough
quantities for their job which really really narrows it down these days. So you know sometimes
that will be an ESP32 or you know an RP2040 is probably the most readily available boards.
Well I'll make sure that I link to the book in the show notes.
Martin thanks so much for being on the show.
Thanks so much. It's been great.
Thank you for listening to the Circuit Python Show.
You can buy Martin's book, "Microbit Projects with Python and Single-Board Computers, Building Steam Projects with Code Club and Kids Maker Groups,"
directly from A-Press or from Barnes & Noble or Amazon with links in the show notes.
For show notes and transcripts, visit circuitpythonshow.com.
Until next episode, stay positive.
[MUSIC PLAYING]