Hello World

What can computing educators learn from industry?

July 11, 2022 Hello World Season 4 Episode 4
Hello World
What can computing educators learn from industry?
Show Notes Transcript

Recently we've been thinking about the connection between computing education and the computing workplace and asking "What can computing educators learn from industry?"

Full show notes:
https://helloworld.raspberrypi.org/articles/what-can-computing-educators-learn-from-industry

Mark Calleja:

But it's just one step at a time. You can build entire cities, one brick at a time.

Julia Roebuck:

Huge amount that they have to learn that they But you know there is a job for everybody in Computing, at any level

James Robinson:

Hello and welcome back to Hello World a Computing and digital making. I'm James Robinson Computing educator and paired programming promoter.

Mark Calleja:

And I'm Mark Calleja. Raspberry, Pi Foundation content creator, digital, delivery expert, and king of kanban. As ever we really value all your comments and feedback which you can share at Hello World.cc/podcastfeedback.

James Robinson:

This week Mark and I had been thinking about our current roles and wondering what can Computing Educators learn from industry? Are there specific skills practices or approaches? That could benefit Educators and their learners. Mark you've had a lot of experience working with learners developing their own projects on ideas. What are your thoughts on this question of bringing industry practices into education?

Mark Calleja:

I think bringing industry practices in first sort of thing that you're trying to teach when it comes to digital making and digital skills in general. But I think from the industry things that you can take away, that will be really important things that I love to use in my classroom, is first of all, the concept of fail faster. The idea that we've got a wrong answer and that means we now know, one way not to do this. The answer is to not stop here, but to keep going, keep iterating, and changing. And the idea also that in addition to that, the anything that you make is never really finished, right? There's always new things to fix new things to iterate ways to move it forward. We're on iPhone 13 now. So nothing is ever done. Nothing is ever finished. And I think the other one that I really like to talk about agile, like I love working with agile, I love teaching young people how to do agile because often the idea you come up with the beginning is not the best solution to the problem. And agile and teaching those skills helps them work through that problem solving stage. The idea of working out a first answer and then iterating that answer again until you have the best answer and that's one of my favorite things to do with young people.

James Robinson:

I really like that answer of like things are because there's quite a lot of things in my life that you know, projects I've started and not finished. So I'm I feel like I'm doing the right thing. I think for me as well like coming from education, one of the things that I found quite difficult with my, particular with the older kids was wanting them to sort of start engaging in collaborative techniques, which, you know, they're so important in industry and we know we spend a lot of our time collaborating across teams with lots of different sort of sort of professionals in different different skills and I think collaboration is so important to development and to programming and computer science. But it's really hard to do sometimes in a formal education setting and that's kind of where I'm coming at it from. And so I remember in my classroom we would often try to do things like we'd use GitHub to do track, not tracked changes but we'd sort of track the development of a program and allow students to comment on each other's work. And that was really hard to do but it's so important and so I think there's this sort of tension when we come to formal education particularly of what's like, on the exam specification, if I thinking look at secondary school and and what actually a useful pragmatic skill for learners to take away with them into industry. Thankfully, our listeners don't have to just rely on our ramblings, as interesting as we are Mark. I think we need some support here talking about this topic. So let me introduce our first guest. The guest Matthew Wimpenny-Smith who's a Raspberry Pi Certified educator former assistant head and now a Senior lecturer for initial teacher education, particularly focusing on partnerships and primary Computing. So Matthew, you recently wrote a piece for an issue of Hello World where you were talking about trialing an agile approach and referring back to what Mark was talking about a moment ago in your Computing lessons. How did that work? And what did you learn from it?

Matthew Wimpenny-Smith:

Yeah, sure. So yeah, so basically, the inquiry around "Can we make it better?" And that was a sort of the sort of stem question that the children were focusing on. And I thought, well, this kind of lends itself to this to this, to this agile, engineering Process. And so really thought about, you know, actually that be great to introduce that and go through that whole process and explain the steps that go through it and then really sort of like help the children to understand what's kind of doable and you know, and the different steps that you would go through. For example, like ask, imagine, plan, create and improve and how it would cycle around because quite often we know that primary school children will always just go just go straight to the create stage and you know, they just wanted make stuff. Whereas I wanted them to really think about all those other steps. And I was interested to see whether going through that agile process would A improve outcomes, you know, but also improve their understanding of why they were doing things and the reasons behind that. At and it was also as well alongside that it was, it was building their learning power in some ways because that's something that the school has been looking at and looking at different learning habits that children are having and those, some of those habits we've been looking at were collaboration and, and imagination and, and, you know, sort of flexibility and all of those sort of habits. And this using this model, we had an imagine step in the model. And we had a plan step, so we had which enabled collaboration and so, on so forth. So the model kind of lent itself to the habits we were trying to develop as well within our Learners. So making it doable improving outcomes and improving habits of learning and that's where the model I think fitted really nicely in the primary classroom. I linked it to the 3D modeling unit of work from the Teach Computing Curriculum because I thought actually, this is quite a nice unit work where they're actually you know, modeling something making something and we can use this process to go through that whole product that they're kind of producing really. So So yeah. So and actually the outcome of it was that the children found that actually breaking it all down into chunks like this. Going through that iterative cycle, they actually found had a better understanding of the project as a whole. And the also kind of had a map a route map that they could use to be able to, you know, to sort of structure their their work really. And it really helped them to to get, you know, to understand it better basically. So yeah.

James Robinson:

Great. And it's a really nice diagram in your So, and we'll probably dig into that a little bit more as we chat. But Mark do you want to introduce our second guest.

Mark Calleja:

Also joining us today everybody is Julia years Works in multiple languages, and Technologies and since 2015 has been teaching Computing online. So, Julia, what inspired you to move into Computing education?

Julia Roebuck:

Hi. Yeah. So I home educate my own children and I had been teaching them most subjects myself with my husband and actually teaching was something. I never even dreamt about 20 years ago, when I first graduated 25 years ago. Now, since I first graduated, but the more I got into teaching my own children, the more I got to meet other home educated children and was starting to teach them a bit of computing. So it kind of took off from there really.

James Robinson:

And and having worked in both education and coming from industry into education, how do they differ? Particularly, when it comes to things like programming, have you found that you've wanted to try certain practices or that have been particular challenges?

Julia Roebuck:

I think for me, the way that I started in then went to do a computer science degree and with very little programming experience. And so when I started, it was a baptism by fire, it was learning C++ at a level standard immediately. I started that degree. And so I really struggled to start within that first year everybody was off partying at university. And I was there every night and afternoon that I could get into the computer room to practice my programming. So I really have a real empathy and understanding for any student who is struggling with programming. So, really that approach is, and that knowledge and memories of trying desperately, trying to learn how to program and not getting it to start with is really what has driven me a lot since I started teaching.

Mark Calleja:

That's quite a common story actually hearing that and having to do the hard road in the beginning. I think it's have you found the reverse anything that's happened like by teaching programming has that impacted your own programming? Like, have you found it goes both ways.

Julia Roebuck:

No, not really because I was doing a lot of previous experience, so unfortunately, I say, unfortunately but I've to dumb down my programming considerably. And even the A-level that I teach is very basic compared to some of the things that I was doing in industry. But it's, and, you know, those aspects of it that I really miss like working with databases and you know, I know database is back to front structurally as well as programming with them. So, it is very different. But again, it's just the drive to kinda get the next younger generation into it and not have the hurdles that I had.

James Robinson:

And I think in your, because you will also practices that people from industry who might be thinking about doing a similar sort of switch can bring into their interactive teaching and learning. What do you think that that past experience as ,you know from industry apart from you know what you just sort of mentioned about the sort of that the empathy and the kind of, you know, what sort of skills and practices do you think you brought with you from industry or other people from industry might bring into their teaching?

Julia Roebuck:

So I think the in-depth knowledge of I think just just from the fact that you are a computing professional, you will know computing and computers back to front and you have so much knowledge you probably don't even realize that most people don't have. And having that as a real background and stability, you can really help show the students how it is to work in the industry, what it's like to work in the industry. And yes, some of the things that they're learning at school or college or wherever they are, they're not going to use, which is a bug bear of mine. That is a huge amount that they have to learn that they don't use. But, you know, there is a job for everybody in Computing at any level and you can show them by talking about all the different people that you work with at different levels, different jobs. You know, there's so many jobs in Computing, but people just have no idea about that you can bring forward to them. And say, look, you could do this. If you're interested in Computing, you don't have to be a programmer, you don't have to be able to program to be in Computing. So, you know, obviously there's lots of things as well with the way that you work as well. And you can talk about the Agile development, but and obviously there's lots of skills that you'll get, if you have a degree and you can bring. But just having gone through that process of software development or working in a computer environment, that's not just using a computer but developing or whatever is just a massive advantage to show the real life and bring the real life into the classroom.

James Robinson:

It's a really, really good point and you said and made me think of something like they were heard it recently, but someone was talking about as a maths teacher, you might get asked like, oh, when am I going to ever use this sort of sir and that's quite a common question that you might get from from learners. And there are lots of things in school that we learn that we might not apply again. But actually, what's really important is what you're learning is not the subject matter. Not that how to solve that problem, but you're learning problem solving skills. You might never encounter that programming problem again, but you're learning how to approach that programming problem. And I think that's a really fundamental kind of part of education, right? You're not just learning those skills in isolation.

Mark Calleja:

Matthew, we've been talking about lots of What are some of the approaches are tools that you've used with your learners. We've talked about using agile in the classroom, is there anything else you brought in to support that?

Matthew Wimpenny-Smith:

Yeah, I suppose. Well, I mean, I've been Scratch Foundation. So "Coding as a playground" was one of the books I read and, and Mitch Resnick's book and, and within those books, they talk about, you know, this is imagine, create, play, share and reflect model. This cycle that's continuously running. And I just thought this sort of resonates with with stuff that I that I learned when I was doing my undergraduate degree in Business Information Systems, all those years ago and we looked at waterfall models and different, you know, different project management models. And I thought well these are these are really just kind of like primary school versions of industry models. So I thought well, why not? You know, why not? just Implement these in the classroom and I think I, you know, I'd looked at waterfall and waterfall is very obviously very you know, outcome driven and very procedural. But actually, you know, a primary classroom is much more fluid and that's why I thought. Well actually you know, an agile model would be much better and then I now I suppose other things I've kind of experimented with is sort of like you know, Gantt charts and things like that sort of giving children, you know, manageable chunks to try and try and do and then giving them sort of leaders within those collaborative groups. You know, like, for example, the coder and then navigator or the coder and the, you know, the debugger and and giving them roles I suppose within their teams and that kind of helps to so yeah. So that's kind of that's coming from, it's coming from, stuff I learned at University, stuff I've seen in industry and then trying to implement that in a primary classroom.

Mark Calleja:

When you implemented the roles with the young Did you make sure that everybody got a turn at every role? Because that was a problem that I came across developing a similar thing, right? Is do you then force the young people, to see the perspective of every role in that team, which is not necessarily industry authentic in the sense that when you're coming to a team, you're coming with a really deliberate set of skills. So did you force them to swap spots?

Matthew Wimpenny-Smith:

Yeah, no definitely we did yeah. Because because they're not experts so that you know, there obviously novices. So they kind of need to, within their little group yeah, they kind of need to rotate around and have a go at each of those and so, we did. Yeah, we did that to. And of course, there was always the thing with with primary, where, you know, they kind of like they want to do that role, don't they? And they get a bit sort of agitated, if they can't do it, so they all want to have a go with it or, you know, they just they want they want to swap around. So yeah, we did, we did.

Mark Calleja:

Absolutely, we did a similar thing, we did thing every so often we'd stop and then do a stand-up as a handover for the young people and all those sorts of things.

Matthew Wimpenny-Smith:

Yeah.

Mark Calleja:

Very really, really great experience for Had a great time.

James Robinson:

I think there's something really interesting So Julia was you were talking about roles within you know within industry and in fact that you know there are lots of different ways that people can kind of engage with computing roles and we've got, you know, when we take on as a professional, you know, as an adult, we have hopefully enough metacognition and self-regulation to be able to go. "Well, actually, this is the role that I'm best at all" or "This is where my skills are best suited" but obviously, our young people don't have those skills necessarily, and so we have to model that and walk them through it. So I kind of think that all this whole is there's lots of internet-connected things that we're talking about here. I've got no idea where I'm going with this point, by the way, I'm just I'm just talking my way into it. But no, I wanted to bring out another really specific example, as well as something that's come from industry is the idea of pair programming. Which I'm sure. I mean Matthew, you alluded, they're a bit towards driver and navigator, right? So I suspect you're using some paid programming with your learner's, right?

Matthew Wimpenny-Smith:

Yeah, definitely. Yeah.

James Robinson:

And that's something that has been directly, collaboratively live programming with somebody else. Now, of course, when we bring it into a classroom setting, we have to, we have to simplify it a little bit in. In industry again, you might not be quite so strict about how often you swap roles. But in primary we have to model that turn taking and that's something I've used not only in the classroom but I think it's a really good thing with in like clubs and dojos to use as well to model that turn-taking process, particularly with, with young people. Is that something you've been able to use Julia. I mean, I know a lot of your teaching is sort of done online, but are you able to kind of bring that methodology into that practice.

Julia Roebuck:

I can't bring that methodology into my online a week and we do do that sometimes. It can be quite hard to get them to do pair programming. So yeah, it's a struggle with that. They often just want to work by themselves.

James Robinson:

It is that, what age of Learners is that?

Julia Roebuck:

That's 11 to 16.

James Robinson:

Okay. So, they've got that sort of the age. There's a bit of resistance to working with other people, potentially.

Julia Roebuck:

Yeah, once I get on the computer, they want

James Robinson:

Do you see the same thing at the primary end Are your primary Learners as resistant maybe to engage in things like that?

Matthew Wimpenny-Smith:

Yeah, and probably less less so than the the understand something really, really well compared to their partner and this is where you have to sort of social engineering it they will try and dominate and they'll say, no, no, no, this is me. But I think we as a school we're really focusing on this collaborative learning, you know, as one of our learning habits. So I think we're try it, you know, something's we're promoting within the school a lot more. And as long as we get the pairings, right, it works. It does work. I mean, the recent project we're doing with the Vex robot kits we've got I paired them up for that and rotated all the pairs around and you could really see which one's worked well together, which ones were dominant. So yeah, it does bit of social engineering. So, yeah.

Mark Calleja:

I think I think too. There's the way you sit roles of the objectives of the two roles are set to them to. I think there's two ways to do pair programming in that, there's like collaborative programming, which is what I engage in on a daily basis. In my job, we're, we're both working together on this big thing and I can see somebody else working on the code with me. And then the pair programming that you would do in a more primary level, where somebody is making code, and the other person is kind of a backstop to catch typing errors, syntactical problems or white space errors. Just the small things that will end up really making you sort of beat your head against the wall when it comes to debugging. I think, leaning into that much more making sure that you say, hey, this is going to make it so much easier for you guys in the long run, really sells pair programming to young kids and that's usually the way I do it at the dojo. Yeah, it's interesting. The two types.

James Robinson:

I've done a similar sort of thing with the that, we tried pair programming for a few weeks over a couple of sessions. And actually, what we did, is the activity we were doing the project, that was very much secondary and all of the emphasis and the praise and the reward and it was all about the paired programming. And so we were kind of rewarding kids that were working well and sharing well. And then actually after that, it started to become a little bit easier. So I think there is this sort of social engineering, shifting your focus really prioritising it. And I think starting young, I think by the time you get to your 11 to 14 year olds, it becomes much more challenging.

Matthew Wimpenny-Smith:

Yeah, I think it'd be interesting to see what school. Having come from more Primary School, doing more, computer programming and and what they're going to be like when they moving secondary school, having done that paired programming. I know some of the issues is around frustration. So, you know, you get the really wizzy children really want to whizz head and they're bit frustrated because the partner that you probably paired them up with somebody who's a little bit weaker you know to bring that weaker student along and they get frustrated with that. So it does yeah, it needs careful management definitely.

James Robinson:

So my question to all of you and this is for, if for our listeners there was, is there a practice that you would recommend that they maybe try with their Learners whether they're in a classroom or a club, they could try tomorrow and it might have an impact on the learning that's going on in the classroom. Does anyone want to kind of have a good answering that question. What are thoughts?

Julia Roebuck:

I can go first yeah, I would absolutely recommend top-down refinement decomposition. It's something that I still remember using when I was a professional programmer and by breaking the problems down, you know, if you give someone a programming task, and they just kind of look at you blankly like I have no idea how to do this. Break the problem down into bullet points, break it down again and again, and question each time say, you know, do you need an input, you need a print, do you need an if? Do you need a loop, are you repeating something? And then every single bullet point that you've got asked that question, what data structure do I need? And it's just, you know, continuous practice because the whole, what I really noticed across the board at every single level that I've taught is just starting a project is really, really hard. And obviously, we can use scaffolding when we can, but at some point, they're going to have to do something on their own without any help and decomposition stepwise refinement is a really good way to practice that.

James Robinson:

And that links very nicely without getting But that's my, that's my want. And but that there's a practice called step wise self-explanation which is where and you can do. So, as, as somebody who understands how to decompose something. You not only do the work but you model it, you verbalize it, you talk your way through that problem. It's basically a fancy way of saying talk to yourself right out loud, You talk your way through that problems, your modeling and then gradually reduce how much you do that. And the student's then hopefully pick that practice up because your externalising that thought process. Anyway, that's just cause I like to add a bit of a bit of bit of research stuff. Matt, Mark, who wants to answer this question.

Matthew Wimpenny-Smith:

Yeah, I think for primary school children, I notional machine. You know, what is going on? When you know, I click the green flag in Scratch, you know, and there's a series of blocks and what are those blocks going to be doing? And its really, so it's really about reading and understanding the program and having an idea in their minds of what is going on. And I think the more we can do that the more we can teach children how to read and understand programs. The better, I think that's a really key and and really understand their knowledge around the, the big three, you know, the sequence, selection, repetition especially at primary. Why we put them together in certain ways and there's something else. So, yeah, notional machine, and all that definitely is my thing.

Mark Calleja:

Yeah, I think it's difficult because you guys I think that both of those are super valid, like the idea that we need to get kids to break problems down into smaller parts, to understand how to build a solution for them. Like, that's, that's a really cool idea. I think what I would like to do there. I think, you haven't tried it already. So this might be my challenge to teachers or educators who are listening. If you haven't done it before, set your young people, a group project and then run it as an agile project. See if you can get them to decompose that problem into all the tiny Steps that need to be done. It's a really great practical hands-on, low stakes way to get your hands dirty with abstracting problems with understanding, how a thing is built and how you can do the full design process, but it's just one step at a time, you can build entire cities, one brick at a time. And I think having young people understand that it might be a long road, but you can definitely get there. And it's just a tiny bit of work here and there, I think that's a really big thing to try and impart. So my challenge would be go out and run an agile development activity with your young people.

James Robinson:

And they can obviously find out more about there's some nice primary friendly language, that sort of helps model that process for primary children. And then have we got any any resources, you'd recommend Mark to find out a bit more about agile development.

Mark Calleja:

There's a bunch of different things you can Well, let's see, James, maybe in, Hello World. I can write an article and some of these agile development things and share some of my resources coming up soon. I'll do one and I'll make sure that I put all the stuff in and I can link to all the documents that we wrote internally, the ones that we use for the NCS delivery project which is like a full two-day, hackathon built around agile development teaching, young people how to make a thing from scratch. So yeah, I'll do an article for you has that you guys.

James Robinson:

I mean, that's now that's now a commitment. I mean, not in writing, but it's now it's now everyone's heard that Mark, so that's going to be an expectation.

Mark Calleja:

I'm done. I'll write that article for you.

Matthew Wimpenny-Smith:

That'll be really great actually up for

Mark Calleja:

No worries.

James Robinson:

I found that conversation really fascinating We asked our audience, whether they were practices experiences or concepts that they think would aid Learners understanding, or better prepare them for future careers.

Mark Calleja:

Ciphersoup came in and told us that code bugs are completely normal, especially for professionals positive collaboration, and communication around code, and always trying to improve. Absolutely agree with that. 100%. So true it's 90% of coding is debugging.

James Robinson:

Yeah, absolutely. And I was actually contacted by some students so as well some ex-students of mine, which I think is really nice perspective. So Bethany who goes by potatoesofddoom on Twitter. No idea why. Says that her perspective was that good things for educators to learn but also to teach their students will include things like source control, code reviews, pair programming and the importance of testing and I think I yeah 100% agree with all of those things.

Mark Calleja:

Absolutely. And Owen told us as well that a when managing IT workload is people's ability to manage their workload and timekeeping particularly communication within the same team. So a big thing is having familiarity with agile PM (project management) methods like scrum kanban t-shirt estimation, etc.

James Robinson:

And so if you have a question for us or can email us via podcast@helloworld.cc, or you can tweet us @helloworld_edu. My thanks to Matthew and Judia for sharing their time experience and expertise with us. Next time, we'll be talking about Computing and sustainability. So Mark, what did we learn today? I think one of the main things we learned today and speaking to the industry professionals first hand, is that bringing industry things into your classroom can only ever really benefit your students. I mean, it adds authenticity, it's exciting for the young people to work on something, they understand to be tech relevant. There's, there's no downside to it. I think everybody should be trying to bring something like that into their classroom. I learnt that scrums are not just for rugby.