Martin Tan
S03:E29

Martin Tan

Episode description

Martin Tan joins the show. He and Paul discuss Martin’s new book, micro:bit Projects with Python and Single Board Computers: Building STEAM Projects with Code Club and Kids’ Maker Groups.

Martin’s book at Apress: micro:bit Projects with Python and Single Board Computers

Martin’s book at Barnes & Noble

00:40 Martin’s start with computers and electronics

02:25 micro:bit Projects with Python and Single Board Computers: Building STEAM Projects with Code Club and Kids’ Maker Groups

04:06 What is a Code Club?

05:07 Whom is the book intended for?

6:07 How do you keep the kids engaged?

8:44 Scratch, MicroPython and Python curriculums

10:00 How do the kids collaborate?

12:02 Favorite story from running a Code Club

14:33 Which microcontroller?

Download transcript (.srt)
0:00

[Music]

0:03

Welcome to the Circuit Python Show. I'm your host, Paul Cutler.

0:07

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.

0:15

He also blogs on maker topics, runs a maker store, works in IT security, and contributes to various open source projects and community conferences.

0:24

Martin's latest book, "Microbit Projects with Python and Single-Board Computers Building

0:28

Steam Projects with Code Club and Kids Maker Groups" was published this past April.

0:33

Martin, welcome to the show.

0:36

Thanks.

0:37

Great to be here.

0:39

How did you first get started with computers and electronics?

0:42

I used to do a paper round when I was in grade six, which would probably be maybe 11 or 12

0:48

or something.

0:49

My parents really, they initially wanted me to do it.

0:52

And then they realised that that cost them too much

0:55

to repair my bike and everything.

0:57

So eventually they got a computer and I quit my paper

1:01

and I come home and play with this computer.

1:05

It's the usual thing, get sick of playing games.

1:07

And, you know, we used to have to type in

1:09

all our games as well.

1:11

I noticed that, yeah, there was BASIC

1:14

and then there was assembly language.

1:16

I also went straight to assembly language

1:18

and started looking at how things worked.

1:21

I looked at, "How does this work?

1:24

It's such this code here."

1:26

Then I went through and one thing led to another.

1:31

I'm like, "A system call,

1:33

print something on the screen."

1:34

I'm like, "Okay."

1:35

Then I was like, "That worked.

1:37

So wait, what does that do on the big covers?"

1:41

I looked in the system call and I just saw,

1:43

it just copies a byte from one location to another.

1:48

So what if I copy something to 1024 in memory and it appeared on the screen?

1:54

And so, oh, well, that's another shortcut.

1:57

And then after that, it was, oh, you can do interrupt driven programming and you can make

2:03

all these things happen really quickly unless you just really load it up, which I did and the whole

2:09

computer started to slow down. But yeah, it was pretty exciting. And that's sort of how I got

2:13

started and fast forward to yeah when I got into security and strangely all

2:20

these useless things became really useful for you know reverse engineering

2:23

malware and things like that.

2:25

Your new book Microbit Projects with Python and

2:27

Single-Boarder Computers was released this past April. Tell me a little about the book.

2:32

Yeah, Aaron from Apress hit me up and said oh because I've been

2:36

writing some tutorials on a blog and he said oh yeah who does these and that'd be me.

2:43

Yeah, we had a brainstorming session and it just worked.

2:46

It was probably in the middle of the pandemic where everyone had crazy hair and was getting

2:53

up at silly times of the day and working from home a bit more than they normally do.

2:58

It just came together and pretty much I did several years of Code Club.

3:06

So there's Code Club World, Code Club Australia, Code Club UK.

3:11

At my son's school, I volunteered.

3:14

Well, I actually asked how they registered for Code Club and I asked how it was delivered.

3:19

And that seems to mean I want to volunteer.

3:23

So I ended up volunteering for that.

3:25

Yeah, the teacher who'd been there from the start says, "It's several years now.

3:30

This is quite an epic thing."

3:33

All these things that we learnt from making lots of mistakes

3:38

and getting really frustrated

3:40

and having lots of false starts turned out

3:44

they would be really good to put into a book.

3:46

And that's essentially it in a nutshell.

3:49

That was, this is what we did.

3:51

This is, yeah, I'm not a teacher.

3:53

I do have a certificate in course development and training

3:57

and I do train people in secure development,

4:02

But other than that, I hadn't really taught kids.

4:06

- For those who might not know, what is a code club?

4:09

- So it's an extracurricular activity,

4:12

the way of getting kids coding outside of school.

4:16

Some code clubs run in conjunction with the school,

4:20

which is what ours was,

4:21

and others are at the local library.

4:24

Coding over here in Australia is in the curriculum,

4:29

but it wasn't so much.

4:31

And I really liked the idea because I sort of feel like coding and those kinds of other skills,

4:38

they seem to be more empowering when there's something that's yours rather than something that's thrust upon you.

4:46

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.

4:57

And we just sort of pushed it harder and harder.

5:00

It ended up venturing into things like electronics, 3D printing, that sort of thing.

5:07

Who is the book intended for?

5:08

Is it more for the kids or more for the folks running the code club?

5:12

So the book is really for anyone who's keen to run a code club or make a group for kids.

5:21

So that could be kids.

5:23

There's quite a few teenage kids who do that.

5:27

but also parent volunteers who are really keen.

5:31

There's also a lot of teachers that are quite keen,

5:34

which is really, really good to see.

5:36

There's a big difference between when a teacher embraces it

5:41

and does this sort of tinkering for fun

5:44

rather than just part of their job.

5:46

It's a hard message to get across.

5:49

And you get that look where,

5:53

are you some kind of weirdo who likes this stuff?

5:56

And it's always a little bit disappointing when I get that,

6:00

but then you get the teachers

6:02

and they get really excited about things

6:04

and that's where you're, oh, this is really good.

6:07

- Kids learn in different ways and at different speeds.

6:10

How do you keep the kids interested

6:11

and not get discouraged?

6:13

- I guess a lot of it is reading what the kids are into.

6:18

At the start, we were just really happy

6:22

get through one session. It's strange because you know not much should have

6:27

changed since we started to now but when we started we had a lot of kids that had

6:32

grown up with tablets and iPads and phones and we would say something like

6:38

you know I'll go to the drop-down menu and they would just look at us blankly

6:42

and I'm like oh that's interesting or they wouldn't know how to use a mouse

6:49

or they would touch the screen and be like, "Don't touch the screen!"

6:54

And yeah, so there are a few challenges with that, but we started to read what

7:00

different kids from into. So for example, if you get a kid who sits down and puts

7:05

his fingers on, you know, WASD and holds the mouse, then this kid plays games.

7:12

So you can kind of hook into that. Other times you might just see different

7:18

things that the kids like about things and you can talk to them about that.

7:22

And the other thing is just I guess telling them what we're thinking. So we would sit down

7:29

and verbalise and that's something that I talk about in the book is verbalising what you're

7:33

thinking, your thought process. And then we get the kids who've coded before. So yeah,

7:40

they're pretty easy. I guess that there were limits though with that. We did try and just

7:47

focus only on Python because you know if everyone's doing the same thing it's just so much easier but

7:54

I feel like we had we had one hour a week if we showed them five or six different languages they

8:01

just wouldn't get fluent in any of them and the whole idea was to empower kids and and give them

8:07

something that they could whatever language it was stick on that language and get them at least

8:13

fluent enough to be able to not just follow copy directions, to actually think of something that

8:21

they want to do and be able to express themselves by creating this with code and communicate with it.

8:28

We did see a few really good school projects that came out of it as well. So we would go along to

8:34

some kind of open day or something like that and they'll be one of the Code Club kids and they've

8:40

written something. So yeah, it was always really good to see that.

8:44

So in addition to Python, the book talks about the microbit and micropython.

8:49

Did the kids favor Python or the microbit projects one over the other, or

8:53

does the curriculum take them through both? The co-club curriculum

8:58

does have microbits, but more the sort of drag and drop type

9:04

of thing. So they've got to like scratch more

9:07

And so there's a whole curriculum of Scratch modules.

9:10

I can't remember how many there are, but I think there's over 100 modules there, and they're all free.

9:15

And it's free to sign up for a code club, which I think is a really, really good thing.

9:20

I think the kids just with Python, they saw it as Python, and it was pretty universal.

9:28

So I would talk a lot about, hey, why don't we do this project?

9:34

Because you've learned about lists, you've learned about these.

9:36

these and we try and put in a bit of terminology in there. I guess not to make it technical,

9:42

but just to give them a way of, you know, if they talk to someone who has accomplished programming,

9:48

they could communicate with them. And that collaboration is something that we talk about

9:54

as well, like Co-Club, and I've also included a lot of that in the book as well.

9:59

How did the kids collaborate rather than working on each project by themselves?

10:04

I think it was just inevitable that they would start to collaborate because we'd end up with a

10:10

bunch of kids who were a little bit ahead or had finished a bunch of projects and then we wanted

10:17

everyone to complete projects because we did find that when people stopped when it got hard

10:22

they wouldn't learn. I mean we all know what it's like when you start debugging things yourself and

10:29

And then you realise you actually understand more from that,

10:32

but it's quite easy to just stop there. So we,

10:36

we really focus on completing the projects, not,

10:40

not just for the sake of completing them,

10:42

but to make sure that people broke through that gateway of

10:47

understanding how to overcome the adversity of, you know,

10:51

things aren't working as they should. How do I, how do I fix it? You know,

10:55

how do I, how do I discover what went wrong? That sort of thing.

10:58

And so then it just came into, I think we,

11:02

the first project that we did as a group was called Devs and Testers.

11:06

Essentially the kids just had a,

11:10

they picked a project that one of them made.

11:12

It was pretty generic little game. Some of them were devs,

11:16

some of them were testers and I just had a Kanban thing on the, you know,

11:20

with three columns were, uh, much like GitHub,

11:23

a very simplified GitHub on the whiteboard.

11:27

and they had post-it notes and say,

11:29

"All right, this group of testers

11:33

they need to find bugs or find things that can be improved."

11:37

And then you put them on a post-it note

11:40

and the devs team will look at it and work out,

11:44

yeah, they'll prioritize which ones

11:46

are worth fixing and adding.

11:49

I thought we would have issues with collaboration

11:55

because you can't, it's really hard to merge code

11:59

on something like Scratch.

12:01

- Kids like to surprise us.

12:04

Do you have a favorite story from your time

12:06

running a kids' club that may have surprised you?

12:09

- We had this one guy, Jamie, and I wouldn't say he was,

12:12

he came back as a volunteer as well later on.

12:16

But when he was in Code Club, he would,

12:19

and this was back in the Scratch days,

12:22

But he was just so prolific.

12:25

He would sit there and he would work out

12:31

what he wanted to do,

12:33

and he would just sit there and nut out.

12:36

Like, he'd have all bits of code back in Scratch

12:41

that would be a bunch of blocks

12:43

just sitting somewhere orphaned.

12:46

And he would have all those things so he could remember

12:48

in case it didn't work.

12:50

But one time I do remember he came back from holidays

12:55

and he was messing around with the game.

12:57

And I said, "Oh, is that your new game?"

12:59

And I knew he made multi-level games.

13:01

And I said, "How many levels have you got?"

13:04

And he's gone, "13."

13:06

And I'm like, "So you just, over a couple of weeks,

13:08

you've just written a 13-level game."

13:11

And they were just jumping blocks and things like that.

13:13

It's the type of thing that you would see is,

13:15

I don't know whether he ever went on to, you know,

13:18

make a mobile game and that,

13:19

that that would be the type of game that would just take off on on mobile and I think that was

13:24

that was one of those times where that was just mind-blowing that you know someone did that and

13:30

the other time was where I was on one of the school cabs that I used to go along to had one

13:37

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

13:42

word it is a different person didn't say a word it's interesting the people who like coding don't

13:47

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

13:56

she just did not stop talking. She was super, she's like "I can't wait to get home and

14:03

go and program things and scratch again and that" and so that was one of those things

14:10

that we really wanted because those kids will probably still be doing that stuff even you know

14:16

long after Code Club and that's, you know, it's become theirs. And I think that was one of the

14:22

one of the things that makes Code Club make a difference because you're giving the kids,

14:27

you're empowering them to be able to make their own things and to also teach themselves.

14:33

So we're almost out of time. Last question I'd like to ask is you're about to start a new project.

14:38

Which microcontroller do you reach for? So typically it's the most minimal board,

14:44

micro control board that will do the job and is currently available in large enough

14:51

quantities for their job which really really narrows it down these days. So you know sometimes

14:56

that will be an ESP32 or you know an RP2040 is probably the most readily available boards.

15:07

Well I'll make sure that I link to the book in the show notes.

15:10

Martin thanks so much for being on the show.

15:12

Thanks so much. It's been great.

15:14

Thank you for listening to the Circuit Python Show.

15:17

You can buy Martin's book, "Microbit Projects with Python and Single-Board Computers, Building Steam Projects with Code Club and Kids Maker Groups,"

15:24

directly from A-Press or from Barnes & Noble or Amazon with links in the show notes.

15:29

For show notes and transcripts, visit circuitpythonshow.com.

15:33

Until next episode, stay positive.

15:35

[MUSIC PLAYING]