Sean Tibor: Hello, and welcome to teaching Python. This is Episode 95. And today, it's all about managing your teacher workload. My name is Sean Tibor. I'm a coder that teaches and my. Kelly Schuster-Paredes: Name is Kelly Schuster Perez, and I'm. Sean Tibor: A teacher that could and Kelly, we have a wonderful guest here today to help us manage our workloads and bring some sanity to our lives. We've got Peter Dring coming from York, England, and I'm super excited to have you. Peter. Welcome to the call today. Peter Dring: Thank you for having me. I've never been introduced as bringing sanity before. I'll Take that. That's A Great Intro. Sean Tibor: Well, any little bit that we can get always goes a long way. So thank you for all the things that you're doing to make this happen. And we'll dig into a few of your projects, but spoiler alert tools that help you grade things or help with your markings for students are always welcome. So we'll get into that when we get to the main topic of the show. So before we get into introductions and everything fun about learning about our guests, let's start with the win of the week. So I think we'll go around and just share a little bit about something good that's happened inside or outside of the classroom. And Peter, we're going to make you go first. So you're up. Peter Dring: Thank you. I Love This Format. I've been sharing it a couple of times. I'm going to introduce the Win of the Week and the Failure of the Week to my department meetings because I love the format. Win Of The Week? Well, it's the holidays at the moment. I haven't been in a classroom for a blissful couple of days. But last lesson. I have an excellent year ten class. I can never quite remember the difference between the US. Grades and the English system. They're really Keen. Some of them lack a little bit of confidence. But we did a slightly different lesson. We're teaching some practical Python, and occasionally I throw in a little bit of blender animation. And for the first time ever, I put the two together to do some python scripting in blender. And I don't know how much you've used blender before, but you can throw in cubes and spheres and monkeys. So we were tying together what we were doing with iteration to write a little one line script, two line script to get multiple monkeys on screen. And it was really fun. It was just a simple, practical explanation of something visual that they could see. It's Great. Kelly Schuster-Paredes: That's really Cool. And what we love about this show and doing these podcasts are all these great ideas of getting new lesson ideas. One of the topics that you're a python during the panel was what resources are out there? And I said, oh, my gosh, there's so many. You can never teach everything that's out there. But we always get bored of teaching the same well, I always get bored of teaching the same thing because I teach it four times a year. So blender and code, I will definitely be putting that on my list of things to check out. Sean Tibor: Yeah, I think anytime you can combine visuals with your code, whether that's through blender or through visualizations, like graphing tools or a lot of stuff that's done with Python Arcade, it's just really kind of magical for students. I think they kind of see the power of that. I wrote two lines of code and I made 1000 Monkeys show on the screen and grind my computer to a halt. And there's something about that. It's just magical, and they love it. Kelly Schuster-Paredes: Yes, absolutely. So, Sean, what do you have for a win? I'll let you go. Sean Tibor: Well, my win this week was working more with my intern. And I think this comes as no surprise. Anybody who's been listening over the summer. But the intern experience has been something I've been working very hard on within our team and within our company to make sure that our interns have the best experience possible. And we were having an almost, like, office hours call yesterday where the four engineering interns and I were on a call together. And ostensibly we were there to talk about some advanced tips and tricks in Python. So we went through things like list comprehensions and generators and talked about why you use each one. Mainly because many of the students are coming from other programming languages. These interns have been coding in Java. JavaScript python C plus plus. They've got a lot of different backgrounds, and they're all converging on Python this summer to run some AWS Lambda functions. And these are students that are kind of at the end of their formal education in computer science. So they're all juniors and seniors in university, so the third and fourth year. And they've had a lot of different experiences now with learning computer science in a classroom setting or in their cases, hybrid setting or virtual setting or whatever. And what I found fascinating about it was that we had this really great conversation about how the teacher that you have or the instructor that you have that's teaching you the programming language heavily influences your perception of that programming language. Like, why do you love Python? Because I had a great teacher. Like the python community taught me. Python? Right? One of my interns was like, Well, I hate Python because the teacher who taught it to me was awful and didn't help me with any of it. And not even like, oh, you should struggle. It's just like, I don't know how to run this Python code on an iPad because that's what I have at home. During the start of the pandemic, he's like, Well, I hope you figure it out. Right? So her entire perception of Python was colored by her teacher. And the way that that teacher supported. And it was just a really good reminder of the impact that we can have for students the way that we teach, it doesn't mean that we need to hold their hands all the way through or that we need to do it for them. But being compassionate, being dring, being intuitive, insightful and empathic with their experience as learners goes a long way to the way that they view not just the programming language, but the profession that they're choosing to go into. And it was just a really nice moment to have that conversation and share some experiences and talk about it. And I'm really excited because as I've always said, I get to train my future colleagues, right? So if I do a good job of helping them along the way, I get great teammates to work with in the future. And hopefully this all comes to fruition starting next summer. Kelly Schuster-Paredes: That's pretty cool. I mean, goes to say we're always learning. We're always either teachers or learners. And young adults, old adults, having positive experiences, especially with code or tech, is always a good thing to have. Very cool. Well, speaking of land, has to be the Tweet that I sent out. I don't know, late last week I was playing around with one of my old tutorials and trying to really parse out some of the upper level code that I never get to teach. And I was looking at lambda functions and trying to figure out what those were all about. And I have to say my big win was I posted, tell me lambda versus defined function and why would I understand the reason why lambdas were used and how they were used to just do a one off thing? But why? And that kind of 6th grade, 7th grade, or grade seven for UK listeners. Question of why, but why? You don't understand what lambda x, whatever is happening. So why do we use those if it's supposed to be simplicity and the readability of Python. And I had so many people answer me and sharing Pandas and data frames and I had a person make a video explaining it. And again, going back to that positive aspect of learning and teaching, how the Python community was just like, here you go, here's my opinion. And everybody was so nice and was like, okay, that's a good explanation, here's mine. And that was my huge win. I think that. And I read a fiction book, which is not normal for me. Sean Tibor: You're just going to throw that in at the end like it's no big deal. Kelly Schuster-Paredes: It's huge. I never read fiction. I went to the library, that was my second one. I went to the library with the kids and I felt guilty and I had to get a book and I was just like, grabbed a book off the shelf and actually read it, which is all I do is read nonfiction, coding, self help, whatever, self leadership books all the time. And so reading a fiction is always deemed as a waste of time for me, but it was so much fun. So that was my two wins. Peter Dring: I like to ask for a recommendation. My wife rolls her eyes when she sees some of the books that I choose when I'm supposed to be winding down cybersecurity self teaching books. It's just no, you need a break. Kelly Schuster-Paredes: Yeah, teachers forget that. Well, this one was interesting. It's the only author I've ever really read, jody Percolt. She's like one of those people that churns out books left and right and I wish you were here, but the whole thing is her boyfriend is stuck in New York during the start of Covet and it just goes through all the trauma and he's in the doctor. He's a doctor, a surgical whatever. And so it's intense reading. So that's why I got stuck with reading it, because it was just like, oh, my gosh, these people did so much for all the COVID patients and all the grief. So not a very happy book, but that's me. So there you go. It's Jodi Picolt. I wish you were here. Sean Tibor: Very nice. Kelly Schuster-Paredes: We'll put on the show notes. Sorry. Sean Tibor: Any fails this week. Kelly Schuster-Paredes: Kelly Well, I am doing all the software right now and waiting for the data to be uploaded into ClassLink. And we had a slight hiccup, so I told my boss, I was like, no worries. As soon as all the data gets into class link, I'll just get it all done. Don't worry, that's all going to work out. I'm not going to stress about it. I'm going to read my book. So that was about it. Peter Dring: But no, you guys, my fail starts with a really big win and then a catastrophic failure, really. I live and work in York and my local university is just celebrating 50 years of computer science. They're excellent all of the time at reaching out to local schools, but this gives them a particular focus to do that. So they found a load of old kit that they no longer need, but it's still kind of generations above anything that I've got lurking in my makers cupboards. Or they've given some Oscilloscopes and function generators and they found these PECO boards. I don't know if you've come across them, they're a couple of years old. They got in touch to say, could you use them? Could you find a primary school that could use them? And I'm notorious for collecting old kits that I think will be useful, but never really gets used. But I'd love to support primary schools a little bit more. And I thought this would be perfect because if it can work with Scratch, if it can teach and physical programming, physical computing, that would be fab. So I cycle over, collect all of these things, realize that they're no longer supported in the online version of Scratch, and then I just go down a rabbit hole of yes, but it should be possible. And there's a python library which allows you to read all of the data. But then I think, well, could we just write a plug in to get it working in Scratch or somebody's done that already, but it won't work on a Chromebook. Could we write an extra plugin to make it work? I don't know if you ever have this thing where you think something is possible, but you completely underestimate how much effort and time it's going to be even to get halfway to realizing, no, I'm not capable of doing that just yet. Sean Tibor: Or you talk yourself into it, you're like, okay, it's going to be totally fine. We're going to be able to make this work. I figured out a way. Now kids, open up the terminal on your Chromebook and just write these five simple commands and then you realize that you've just taken it way too far and it's never really going to work as a lesson, right? Peter Dring: That's why I love the classroom, because it's such a leveler. You have these ideas in your head and as soon as you pitch it to a mixed ability set, they bring you down to earth pretty quickly, don't they? Kelly Schuster-Paredes: Are these the old pecos? I just bought some. I saw it in where I saw they're like $4. They're pretty relatively cheap. Peter Dring: So it's not the raspberry pi picos. It was just branded as a Scratch pico board. So it's got a slider on it, it's got a button on it, it's got a light sensor and then four analog inputs. So it's just something to control your Scratch program. But it works on the old downloaded version of Scratch. But it doesn't yet. I've not given up completely. It doesn't yet work with the new online version. Kelly Schuster-Paredes: We'll cross our fingers for you. Peter Dring: Thank you. Kelly Schuster-Paredes: Keep us posted on that one. Peter Dring: Well. Sean Tibor: My fail is one of those that I was helping out a friend with some marketing automation that they were trying to get going and had this beautiful workflow of when a customer becomes a customer of ours. We're going to wait a day and then we're going to send them a welcome email and then we'll send them some text messages and then we'll do all these things. We're trying to test out the process with the text messages. So I created this test workflow that was like, just send a text message right away or actually send like a few in a row right away. And I was testing it on myself and everything was working beautifully. And I'm on a live call with my friend and one of her colleagues and I'm going through and I'm looking at it and saying, yeah, it should work and we should make sure that this is working with live contacts. Let me just throw another contact in there and we'll just hit the test button. And then I realized. Oh my God. It's actually sending all of those text messages to someone who's not really a customer. And none of this stuff has been approved yet. And it's all still in demo mode and just had this moment of panic like. Oh no. I've just screwed up the relationship with this customer for my colleague and or my friend. And I had that moment of just panic. Oh no. I messed this up. And I did it on a live call that's being recorded for training later. And I'm like, oh, no. Thankfully, my friend's colleague was on the call also, and she's like, no, there's like a built in delay. I got this. She went over and I turned it off and made sure they didn't get sent. But I just had that moment of panic like, oh, I feel really dumb for doing that now. And luckily it all worked out. But even for the experienced tech people that I've been working with this tool for years, you still have that moment where you just do something dumb and you got to go back and fix it. Peter Dring: That built in delay must be there because somebody's done that before. So I'm sure you're in good company. Kelly Schuster-Paredes: It's like that 30 seconds you have before Gmail sends the email and you're like, Crap, crap, crap. Sean Tibor: Yeah, I use that as a teachable moment to share some of my experiences, learn from it. But I also shared with my friend one of my recommendations is if you're working on any sort of these automations where you're sending out emails and text messages and things like that, especially if it's to a large group of people, never schedule it for the same day that you're working on it. Always schedule it for the next day because you'll be invariably laying in bed at 11:00 at night and going, oh, I forgot to do this one thing. And so she came to me yesterday and she's like, hey, remember how you said not to schedule anything until the next day? She's like, I was literally laying in bed at 11:00 at night and realized I didn't add one of the opt out things to our text messages. So I went fix that really quick, and it went out this morning beautifully. So I think my failure turned into hopefully a good warning for others. Peter Dring: Great. I like that. Sean Tibor: So why don't we jump right in with our main topic and talk a little bit, Pete, about your background, where you're coming from, your teaching experience to date, and then let's talk about some of the resources that you've built out for other teachers to use as they're teaching computer science. And Python. Peter Dring: Thank you. So I moved to New York, I think it's about 20 years ago. I'm going to have a reunion with some of my undergraduate friends, which I'm really looking forward to. And then I've just lingered like a bad smell. I love the city. I just love the place. I had no desire or intention to go into teaching. Both my parents were teachers and they said they would support me in whatever I wanted to do, just not teaching. Don't touch it with a bargepole. But I volunteered in schools when I was doing my electronics undergraduate degree. I just loved it. I realized that it's never boring in the classroom. It's many things, it's exhausting, but it can be exhilarating. And every new classroom experience is different. So after graduating, I trained. It was back in information technology. Information communication technology back then. So there was a lot more timetable, time devoted to a much broader spectrum of creative skills, but not a lot of coding, not a lot of electronics. So I did that as a club. My specialism early on, I learned from some fantastic teacher assistance and through the learning support department, so I did some extra qualifications with students, just a small number of students focusing on what they were interested in. So took them out mountain climbing. We taught them how to drive a car in the teacher's car park, which is one of those things that we asked for forgiveness, for permission, because I wasn't quite sure if the teachers would like that. But it was an opportunity to teach them some coding. To some students who'd always told themselves, I can't do this, students who are right at the bottom of maths ability struggled with English, struggled with self confidence, but in a small enough group, with enough encouragement and enough time, they could do anything. So I think that's been my motivation throughout my career. I moved away from that school to teach a level, but I'm still really keen to try and encourage any student that there shouldn't be any boundary, any barrier to entry to computing other than, is this something that I want to do? Kelly Schuster-Paredes: I'm just like, speechless. I know, I agree. I love that. I love all the great things, and I love how your passion of trying to get kids into it just comes out. So that's awesome. Peter Dring: Well, the passion isn't necessarily the same as the reality. Kelly Schuster-Paredes: We like to live in a fairy tale, so it's okay. At least I do. Sean Tibor: Yeah, real life is messy. It's not the same way as you envision it. And I think to your point, there's a lot that we can do to help them get inspired and try things and do things, and they can ultimately be successful if they want to do it. But at the same time, it doesn't mean that they're successful the first time. It doesn't mean that it's going to be easy. Peter Dring: Right. Sean Tibor: And it doesn't mean that that path to get there is a straight line. There's a lot of curves and zigzags in there stops and starts to get there. But the students that want to do it will get there. Kelly Schuster-Paredes: And even if they don't want to do it, I just think showing them that they are capable of doing something that they once thought was extremely hard or untouchable is usually my big win. If they don't like coding and they don't want to stick with it, that's great. But hey, you did it, you tried it. You stuck your head out there and you gave it your all. And I think that's a huge way. Assist me. Peter Dring: Yeah. Sean Tibor: So you've been teaching in the A levels now for some time. And one of the things that you've built out with the assistance of a Google grant. I believe. Was some resources for teachers to help make the learning experience for students more effective and shift teacher kind of workload from the boring parts. The things that are not adding the value for the student into the things that really are. And can you tell us a little bit about how you got started there and what some of those tools look like and how they help? Peter Dring: Yeah, good question. So my students will tell you that I have a lot of irritating catch phrases that I throw out all of the time. And one of them is I say to the students that you are the creative part of this process. You are brilliant at problem solving, you're great at spotting problems, you're really good at doing something new. If I told you to do the same thing a thousand times, it's good that you'd get bored before you just mindlessly repeated the same instruction 1000 times. Human beings are so creative. Computers are the complete opposite. They can be a tool for creativity. And computing should be the most creative subject that students do, even more so than maths and music and drama and art. But computers are brilliant at following instructions repeatedly, without failure. So I say to my students, if you're ever doing a job that takes you a lot of time to do something similar over and over and over again, then there must be a way to get a computer to do it for you. There's so much that I love about teaching, but there's so much that it's frustrating with the workloads of the same job repeated over and over and over again. So I thought, well, there must be a way to automate a lot of this. I think it can be dangerous to get a computer to do our hard work in teaching because feedback is the number one thing that makes the biggest difference. The research keeps showing that. But I think there's a massive difference between feedback and marking. And I'm terrible at marking. I can do it and it can be satisfying, but I can be organizationally challenged at some points. And anything that can, if it's a choice between spending 10 hours to write some code that will do a job and then ultimately save me hours in the future other than sit down for 5 hours and write all of my reports or do all my coding, then that's what I wanted to do. But I guess the tools have a bit of a longer history. I was teaching at my previous school. Who had just invested in one to one iPad provision. Which was great for supporting creative computing across the curriculum. But a bit more of a challenge for it was just at the time when Computer science was coming in. Computer Science GCSE and I wanted a way of doing live coding so we could get a group of students around the big screen. The projector screen. We could talk through a concept, five minutes of coding it badly, getting them to spot the different ways of doing it, talking through better ways of doing it, and then sharing the code instantly on their own devices. And at the time, I didn't know about Trinket or replicit that much. There's some fantastic online coding platforms, but the big boundary for me was I wanted something where anyone could quickly use it without forgetting the password, you could save it without needing an account, it would work on pretty much any device. So I got some students to help with the design and we came up with this Python Touch thing where it did exactly that. You could code something on screen. It wouldn't be the full suite of everything that Python offers you, there'd just be a subset of the modules that supported. But it was enough for beginners and I needed something that you could debug as well. I think Trinket was fantastic for being able to save code, but you couldn't step through line by line and see all of the variables. So that kind of morphed into create with code over a series of years, the idea where anyone can just go to a quickly readable link. And it's designed for teachers in that when you save it, you get this URL, but it avoids any of those ambiguous characters like a five or an S or I and a one. So if it's on screen, you've got a QR code or you've got a URL, you can quickly share it with students and then they can access it at home on their smartphone. And then that kind of grew into, well, can we make some self marking resources so that students can do something at home? And I can see if they've done it, because marking an essay is hard enough, marking a quiz is manageable, but marking code is a challenge. So I think also students just absolutely benefit from the instant feedback. They get huge amounts of instant feedback from those red error messages, but if they can get success feedback, that builds up the confidence as well, then that's got to be good. So I found a way to write some tests and then I thought we could just go with some tutorials and saw the opportunity to apply for some Google funding and started writing the tutorials already. And Google fantastic. They basically said, look, continue with what you're doing. If you can try and get up to 20 self marking tutorials, but will not get in the way. And they were true to their word. I set some ambitious targets for how many certificates students would get PDF certificates at the end, and I thought, I'm never going to get that. But the Pandemic hit at just the right point, where everybody wanted online resources. And, yeah, it's been humbling, really, to see how many students have used these self marking tutorials to learn Python basics. Kelly Schuster-Paredes: That's incredible. I actually came across your site, the Create With Code, back when I first started, and I was like, this is pretty cool. I'm a big fan of big buttons and easy to read, colorful text, because sometimes kids get into it was like, Moo. If they download Moo, it's not the same color as mine. Or sometimes in replica. I don't know, I guess it's the OS or whatever computer. But this is online and you have your blues and your reds and your blacks, and it was very clear, and you can see it when I was learning. And then I saw Pete, right, he's there. That's the person who did it. So it was pretty cool. And I started digging into more of your website, the With Code website. It's just phenomenal. Where did you come up with the ideas of your challenges? I think that's a hard trick for a lot of teachers of coming up with some cool, different ideas to make it unique than what's out there. Peter Dring: Yeah, good question. I mean, the site is a usability nightmare. I often get people saying, you should have done it differently, you should have used this framework, you should have avoided this horrible animation down at the bottom for the buttons. But I'm not a professional programmer, and it was designed by students, for students, and it makes no claims to greatness other than it's designed for my students. And your question comes back to where to get ideas from. And all the ideas are stolen from conversations with students or with other teachers. Students are so good at telling me when my lessons are so bad, so it's quite helpful to bounce ideas off them. I had a fantastic conversation with a good friend of mine, a colleague who teaches in the same city as well, just at the start of the Pandemic. And we wanted some way to set up a leaderboard of competitive challenges. There's some sense of belonging even while students are working at home, and that's what kickstarted the competitive element of these self marketing challenges. Anyone can sign up for them or anyone can use them without signing up. You don't need an account, but if a teacher wants to track progress and they can sign up for a free account, students can take part and then we can see a leaderboard of your classes each week. Students can compete against their friends. Teachers have got some instant feedback on who's struggling with different aspects. But, yeah, there's been some. Flops in terms of creative ideas for what works. So there's been some real wins, too. And some things that work for some students really don't work for others. You just got to try and fail a lot, fail regularly, and learn from what works. Sean Tibor: Let's talk a little bit about that feedback cycle, because that's something that I've noticed as well. Being able to shorten the cycle from writing the code to seeing what happens and then being able to see what you did wrong or see what you did right. Getting that feedback and making that a very fast iterative loop right. I guess, as Anthony would call it. It's a hot loop. Peter Dring: Right. Sean Tibor: It goes a lot, and it happens a lot, and the faster we can make that loop, my belief is that the learning happens more quickly, right? Like, it happens faster, but it also seems to reinforce the learning in a way that you don't get in that cycle from. I submitted my code. Mr. Tibor took two weeks to market and return it to me, and by the time I've gotten it back, we're onto something totally different. Right? Peter Dring: Yeah. I think in a one to one environment, it's absolutely priceless to have an expert sat next to you. And it doesn't have to be an expert. It can be somebody who's willing to learn alongside you and give you personal encouragement, feedback, learn together. But it's very rare to have somebody give up their time in a one on one situation to help you learn anything. And if you get that opportunity, it's usually very expensive. So anything that we can do to simulate that, to give instant feedback has got to be good. I enjoyed listening to some of your conversations. I think it was Andy Collie from Manchester talking about the Prim framework. And it's great to see Two Sentence and Jane wait. Set up the Raspberry Pi Research Institute at Cambridge. And there's so much pedagogical research coming out now, computer science teaching research. I love the print framework, but I felt there were a couple of things that, when I interpreted it into classroom practice, there are things that I'd missed out and wanted to emphasize a little bit more. The first one was about terminology. I thought the biggest mistake that I made when I first started teaching was too much abstraction. As in, I didn't use words like algorithms even. I didn't use words like iteration, like exception handling. I paraphrased them, put them into words that students would understand so that there was an easier bar to entry. But then when students went to Problem Solved and they saw the error messages, they didn't understand the error messages. And when they went to try and find out for themselves by searching online, they didn't know what to search for. So I felt that it was really important to teach the keywords, just the right terminology to understand the textbook, to understand the resources online, and then I thought, well, there must be a way to automate that process. So built into I started with Create with codes and then thought, if you can save a link that other people can access your codes, can you instantly create a kind of pedagogical marking, self marking resource for teachers? That was the first part of K Pride, the keywords thing. So let's say we do a live coding thing where we do a loop that displays the numbers one to ten K Pride. The keywords bit will analyze that code and say, right, you've used a variable here and you've used iteration here, you've used some white space, you do some comments and it turns it into a quiz. So it'll say, can you spot the first instance or any instance of a variable? And you've got to click on the line number that matches it. And then as soon as you do it, you get a little tick next to that concept. It basically just runs all of the code through a series of regular expressions, tries to search and find anything that matches different programming concepts so that students get that instant feedback. They can say, this code contains all of these me. As a teacher in a classroom, I can say, we're focusing on this one today. We've talked a lot about it, we've given a lot of examples. Here's a quick link for you that we talked about a few minutes ago. I want you to get 100% through this by spotting all of these programming aspects. Sean Tibor: I really like that it works with the code example that's provided. Right. Because it's one thing to take a predetermined example and put the keywords with it. But to be able to apply that to code that either the teachers provided or the student has put in there. It really does make it more engaging and more interesting because it's more relevant personally to the student that's trying to learn it than something that was written a year ago by one of us. Right? Peter Dring: Yeah. Context is everything, isn't it? If you just change one slight thing from the way that you explained it previously, then it's an extra barrier to entry for students to understand it. I think it was Andy Collier who was talking about he took all of his resources, he took Prim, he merged them together, and then a huge piece of work was then spent mapping them out to some predict activities, to some run activities, investigate. And it can take hours and hours to do that. And I wanted to try and create something that could help teachers out. Do that automatically. You start with your code and it automatically generates the resources for you. That was the Kelly part of it then just stole the predict part, but added some automation, as in, it asks students to predict what they think the code will do, and then it will just put some checkboxes when it runs and then you tick them to see if you are correct. And then the I investigate. I always try and share codes with some comments down at the bottom that says, like, challenge one, challenge two, challenge three, so that it's not just, okay, run it, I've run it. What next? It's some easy quick wins for students to do to keep them busy, and some extensions to really push their understanding. So that's the investigate bit. It's no effort, really, from the K Pride aspect, as long as there's some challenges in there. It's just an opportunity for students to play around and tinker with the code. But it's the DeBok part, the D of K Pride that I'm most excited about, because that's the bit that terrifies staff particularly, but students, too. If we can break the fear of debugging, then we're well over halfway to getting students to realize how exciting programming can be. But it is a genuine fear. When they see the error messages the first time, it's just impenetrable. The more they understand the keywords, the more they can break down what the language actually means. But Alan O'Donoghue has been pushing his sabotage approach, which I love, and I think it's so powerful, it makes debugging fun and collaborative and competitive, where you get students to sabotage their own code and then share it with someone else. So I wanted to do that automatically. I put out on Twitter and on the cast computer at school network. What are the common mistakes that Beginners make? What are the syntax errors. The logic errors that people are likely to make when they're beginning. And the usual ones came through capitalization wrong. Indentation wrong. Spelling things incorrectly. Using the wrong type of brackets in the wrong type of place. And then just wrote a program that would detect opportunities for that and then inject those error messages so you get the same code that shared previously. You press the sabotage button and it will inject five mistakes. And again. The students just get instant feedback if it does what it's supposed to do. Kelly Schuster-Paredes: Is it literally called a sabotage button? Peter Dring: I think it is, yeah. Kelly Schuster-Paredes: We had that conversation. Conversation about the cold. Debugging is one of the challenges that a lot of teachers face. Andre Robert is actually always looking for more feedback on how he can help. And I don't know who's working with him or who's not on Friendly Tracebacks that has helped me at least a lot in my own learning is now, oh, that's actually a Google statement. Don't look at all that other gibberish up there. Sean Tibor: That might be. My favorite improvement with Python 310 is the improved error messages to make them more comprehensible to people, especially beginners. There's a ton of work that went into that to make it re architect the whole thing, refactor it. And it's funny because I was watching a movie the other day, I can't remember what it was, but someone was delivering bad news, and the person receiving the bad news was saying, put a positive spin on this. Why is it always bad news all the time? And they're like, oh, this is so great. It's such a big opportunity. And they're, like, struggling with this. I think error messages are sort of the same way, right? It looks intimidating. It looks like, here's a wall of red text, and they're using a lot of words that are unfamiliar and complex, and it has line numbers and code snippets and a function callback tree and all these different things that, like, for someone who's just a beginner, I'm getting all this information that I don't understand, and it feels like I did something wrong. Right? Peter Dring: Yeah. Sean Tibor: Well, technically, yes, something's wrong with the code, but it doesn't mean that you did anything wrong, right? There's nothing wrong. It shouldn't make you feel bad that you have an error message. It should be something that becomes an opportunity, like, here's something new to learn. Here's something to figure out. And I think it was always kind of something that my students really didn't understand when I would work with them about, like, how do you know exactly what's wrong so quickly? Right? Well, because I've seen this error message about a thousand times before in my own code and then other students code. I'm familiar with it. I'm comfortable with it. It doesn't scare me anymore. It's something that I recognize. And if we can make it get to that point faster for students where they flip their emotional response to getting an error message, then they will very quickly be able to progress past it, and it will become something that allows them to quickly realize any mistakes that they've made, correct them, move on to the next thing, and make the next mistake. Peter Dring: Yeah, it's about clues, not complaints, isn't it? Error messages. You spot the line numbers, and you use them as clues to help solve the problem. We all know how satisfying it is when you've been searching for a solution, and then you find it. But I've talked a lot about mistakes I've made whilst teaching, but I think for a long time, I only ever showed them the right thing, the right way to solve a problem. I'm trying to move away from that much more and show them not as soon as I make a typo, I'll leave it in and sometimes let them spot it, sometimes use it as a teaching opportunity just so they can see that process of tracing back the clues. I was talking to a friend of mine who just graduated from Manchester for computer science, and his project was exactly what you described, something that you can copy and paste the error messages in Python from, and it will give you some hints. It won't give you the solutions. It won't tell you what the right code is, but it will just suggest, okay, start at this line. Have a look and see if the invitation is correct. And I guess that's what's been done with the change to Python. Three point ten, but it was a really good idea. Kelly Schuster-Paredes: Yeah, I think walking that fine line of helping but not helping too much, I worry sometimes that we help them too much and we take away those opportunities to get the endorphins, the winds, the feel good moments after the struggle, I guess. And then it's that fine line that we all walk as teachers of how long am I going to let child A struggle versus child B struggle before we give them a little bit of clues? I wanted to go back a little bit to Keywords, because this is something that I constantly battle with. I have nine weeks, we have nine weeks to teach a course. And I was just like, always, like, go quick, go quick. And Barbara Oakley said something to us many episodes ago that sometimes kids get stuck, or learners, not even kids, adults, anyone who's learning something new with so many new words coming, and you get fixated on that conversation that you're having and you don't understand those words, how do you find it works for you? And do you find some students get so stuck on too much vocabulary and not enough coding? Peter Dring: Yeah, great question. And I think we need to look at other departments that have been around for a lot longer than we have in terms of pedagogy and modern foreign languages. The way that they teach German and French and Spanish is so different to the way that we teach computer science, because it's all about repetition. They go over the same concept so many times, just repeating exactly the same thing and then repeating a slight tweak of the same thing. But all languages teachers are just very adept at being able to tweak a phrase or a problem and put it into a different tense or to use a different subject. I think something that I do badly too frequently is just if I'm teaching one concept, I'll change too many things on one line of code and it blows students minds. I remember listening to William Lau talking about the importance of just being hugely deliberate about exactly what you're going to tweak. To just bring people on a safe. Manageable journey. Of increasing the complexity. To slowly build up how much students are exposed to. Rather than trying to say. This is loops done today and now we're going to switch to something completely different. We keep on coming back all about repetition. Giving students the freedom to know that there's no such thing as a silly question. And. Yeah. Breaking that fear of failure. But I certainly haven't got it right yet. Students just look at me blankly. Kelly Schuster-Paredes: That's your key. Oh, didn't do that right, let's repeat that. I love repetition. I constantly say things over and over again. I always tell them the story of my anatomy teacher in college, he was this adorable Spanish man. He kept saying repetition, repetition, repetition. And that's what got me a 99 in his class because I just kept repeating, yeah, I always contemplate because as a teacher we have these difficulties of trying to reach everyone. So it's an interesting challenge to have. If I give keyword opportunities for kids to find some successes that can memorize words or understand words and still have that practicality of using those words and code, you can tend to hit everyone. That wasn't a question. Sorry. Sean Tibor: I would push a little bit because there's different kinds of repetition, right? So one of the things that is probably bad repetition is literally the exact same thing over and over again, unless you're studying cells, perhaps, right, but you're heading on something with the variations, right. So changing it a little bit in new and unexpected ways, but not so much that you lose that connection between them. But I think one of the other important concepts that we teach a lot in computer science is don't repeat yourself. So how do we make these two concepts come together? One of the ideas that I think works pretty well is this idea of making the student an active part in the repetition. So that they're the ones looking at this saying. Peter Dring: Okay. Sean Tibor: If I'm going to do it once. That's fine. If I'm doing it twice. That's acceptable. But three times or more. I'm going to find ways for me to kind of make that simpler. Reduce the repetition. Make it a more creative approach to the problem. Right, so the idea when it comes to keywords could be like, yeah, we have the variation, so it's not exactly repeating yourself. But it could also be how do we engage the students more in learning those keywords and using them in different ways? So maybe the first time is I'm learning the word, the second time I'm trying to use it in context and I'm trying to practice it in different settings. But then the third time after that is, how am I going to make this a part of my knowledge? Is that going to be more exercises? Is that going to be me writing it down somewhere in a place where I'm going to see it all the time, but making them take ownership of that repetition so that it really isn't that mind numbingly, repetitive, boring stuff that doesn't actually help their learning and they have to own it to be able to learn from it. Peter Dring: I completely agree and I think that's why feedback is so important, because the worst thing that we can do as teachers is to not give students a task, as in they finish it and they set around causing mischief. The easiest way to prevent that is to give them so much, to do so many repetitive tasks that they're always kept busy, but it's not necessarily a good use of time. And the key thing that kicks in to make a massive difference is if students understand what they've got and what to move on to. And that's the power of feedback. If you can quickly, automatically, hopefully tell a student what they've got and how to move on, and you can do that without having to go around the sea of hands of everybody saying, what do I need to do? What do I want to do next? Then it can guide students along that process. And the research calls it metacognition self regulation. Adults are much better generally at doing that. They recognize that they've mastered it, they choose something to move on, whereas we have to model that for students, especially the students that come from disadvantaged backgrounds who don't have that confidence. So the more positive feedback we can give, that gently leads into, okay, here's an automatically generated task for you to do next that isn't too intimidating, it's not completely open ended yet, but it's just right for what you've mastered and it tackles what you haven't quite got yet. Kelly Schuster-Paredes: I think if we can all do that as educators, we would be much happier. That is the goal, right? Peter Dring: We'd be out of a job, wouldn't we? If we could automatically do that, I. Kelly Schuster-Paredes: Don'T think we would be out of a job, because in the end, I like to consider myself the facilitator of learning, not necessarily the giver of knowledge. And I think the opportunity, it just goes into a whole philosophy that's going on with ungraded and rethink education. If we could give a baseline of where every student should be, those kids that meet the baseline, great, you pass the course, but you still have the opportunity for the rest of those kids that want to go above and beyond to keep going. And you can help push and pull the kids where they need to be for themselves, as that would be. I look forward to waiting for you to get some more grading tools for us. So what's next? You have Live with Code, you have your blog, you have the tools, you have Create with Code. What else are you going to add to your Wizcode UK site for educators? Peter Dring: Yes, the latest thing has been competing with Code UK. So that's the competitive element of live with code UK. And the live aspect is short up to ten minutes, five to ten minutes of live coding and then some quick wins based on the things that can prevent students from engaging. Some students that I teach would love to code can understand the problem solving but can't type. They've only ever used their smartphones and instead of concentrating on how to use the right variables, they are concentrating on west but the fingers. And it's a quick win to do like the code that's from the Live coding video, turn that into a quick type race. I don't think they learn much about Python from just typing out the code, but they definitely improve their speed and their accuracy of typing. Most of the students that I teach, that's of no benefit for them whatsoever because they've already got a really good touch typing skill and then they can do some keywords activities, some K pride activities, all that kind of thing, get points for it. But the next challenge will be to go through some retro games lots of students have been asking for. Can we do some more lessons on Pie game or a simplified version of that kind of framework? So the next series of life with Code UK and compete with Code UK. In September, we'll be breaking down the bigger problem of a retro game. I think we're going to start with Breakout or Arkanoids model. The decomposition, how to break it down, what are the different structures or the different algorithms. Make it in scratch so that you can see block based programming and then translate it into Python to try and get a working solution. Just so that students have more practice and more experience of start to finish projects. But I'm not very good at finishing things. I come up with loads of ideas, but I'm not very good at seeing them through. So we'll see how far I get with that. Kelly Schuster-Paredes: You sound quite familiar. I have a lot of unfinished projects in my classroom that I feel like just dumping on somebody's doorstep one day. Sean Tibor: Yeah, I moved Kelly. You can't dump it. I'm in the Witness Protection program. She's the project protection program now. Kelly Schuster-Paredes: It's kind of like me and my tutorials. I always buy all those humble bundles now and I have all these great tutorials and I start them and I skip around finishing projects. The idea is to start them and have a finish line somewhere else. Peter Dring: Yeah, and delegation. Somebody else might catch the urge to finish something off or take it on as a student project. Kelly Schuster-Paredes: It's open source and we're a loving community. I'm sure somebody would love to take on that. Sean Tibor: Well, I think we're just about out of time for our call today. Pete, it's been really great talking with you and really inspiring to get some ideas and some tools and resources, things that are really actionable, especially as many teachers are going back to the new school year. And I always kind of miss the first day of school because it's the feeling that anything is possible and anything could happen and it will be a new start to a new year. But it's always good to go forewarned and forearmed with some resources and some tools to be able to make your teaching workload a little bit lighter and your student learning experience a little bit easier. So thank you for sharing all of this with us today. We're going to put links to the website in the show notes. Some of the resources that you've talked about. Particularly around the primary method. Because I think many american teachers are just now becoming introduced to this. So it could be some good resources and some ideas to include in your classroom for the upcoming school year and. Kelly Schuster-Paredes: Food For Thought for all those people that are afraid of getting sick or calling us sick. It's so much work to prepare for lesson plans. There's a wealth of videos and challenges, so it's just nice to know that we all have each other's back when we need that little bit of rest. And I don't have to get up at five in the morning to make a quick screencast because somebody might have done it already. So I encourage everyone to check out the Widthcode UK website. Lots of good things. Peter Dring: Well, thank you so much for your time and your positivity and the way that you support teachers, your shows full of creativity, and I love the way that you build up community and build up teachers. So thank you for all that you're doing and thanks for your time today. Kelly Schuster-Paredes: We appreciate you coming. Sean Tibor: Yeah, I think we've always said that the best thing about our podcast is the people that it's opened us up to as teachers and being able to make those connections. And we're really thankful to have you join us today to add your voice and your ideas to our community, so thank you for that. All right, so for teaching Python, there's a couple of ways that you can get in touch with us. If you'd like to send us questions or get in touch with us, you can always go through our website, which is Teaching Python FM. We're also teaching Python on Twitter, so you can always reach out to us that way. I'm at Smteber. Kelly is at Kelly parad. Pete, do you have a Twitter account or social media where you like to hang out and have people chat with you? Peter Dring: Yeah, it's at Dring. So. P-D-R-I-N-G. Sean Tibor: Very nice, Kelly. We'll hopefully get you some new followers and some people who are excited to work with you on codeWith UK. So I think that does it for this week. So, for teaching Python, this is Sean. Kelly Schuster-Paredes: And this is Kelly signing off.