Sean Tibor: Hello and welcome to teaching Python. This is episode 128, and today we're talking about the transition from block to real coding using text. I guess it's all real coding if you think about it, but I like to think of the text coding as where the real learning happens. We're joined today by charlie Meyer from pickcode. My name is Sean Tibor. I'm a coder who teaches. Kelly Schuster-Paredes: And my name is Kelly Schuster Perez, and I'm a teacher who codes. Sean Tibor: So welcome, charlie, to the show. We're excited to have you and talk today about making that transition into coding with a little bit more confidence than maybe you started with by having some really strong support. Charlie Meyer: Yeah, well, thanks for having me. Super excited to be on. I was talking before the podcast. Longtime listener, first time guest. So exciting to be here. And, yeah, we can chat for as long as we need to. It's like three, four hour episode today. Is that okay? Sean Tibor: Yeah, I stretched and hydrated, so we're good up to six or 7 hours. Charlie Meyer: I got a seltzer here. I think this is going to be great. Kelly Schuster-Paredes: You guys are all like lifetime coders, so you're probably used to those all nighters. I go to bed at eight. I'm a teacher by heart. Sean Tibor: All right, so we have 78 minutes then, Charlie. Charlie Meyer: Perfect. I'll take 78. Nothing wrong with that. Nice. Sean Tibor: Well, why don't we start with the wins of the week, and then we'll get into some introductions and we can talk a little bit about the work that you've been doing. We'll have you go first, actually. So, the wins of the week, something good that has happened inside or outside of the classroom that you'd like to share with everyone? Charlie Meyer: Yeah, sure. It was long weekend, so spent a lot of time driving this weekend and woke up tired. But I had a workshop today at Tufts University, which is nearby. I live in Cambridge, Mass. And it was really fun. It was with their computer. No, Center C stands for something. Center for Engineering Education and Outreach. C E o. Super fun. We had maybe 1015 people in the room, and we did a little workshop, talked about this exact topic, warmed up already. We went through, did some lessons on pick code. I got some fun feedback, found some bugs. Going to add that to the backlog. And it was definitely a neat time this morning. That's awesome. Kelly Schuster-Paredes: I mean, just being tough than Cambridge. I mean, it's got to be cold up there now. Charlie Meyer: It's horrible, but keeping a good. Kelly Schuster-Paredes: I think it got up to 75 down here, and we're having a cold front. Charlie Meyer: Why didn't we? We should have done this in person. That would have been better. What was the invite, guys? Kelly Schuster-Paredes: Excellent, Sean, you got a win. Or do you want me to go? Sean Tibor: I mean, my win this week is I actually went to the cold by choice. Last week I took my kids skiing out in California. It's something that I've always wanted to do. I grew up in Alaska and I live in Florida. The snow skiing here is pretty terrible, as you can imagine, but much better in California. Helping my kids learn to ski and enjoy skiing was something that was important to me. And I don't know, the whole week I just kept thinking about all the parallels between skiing and coding and taking on new challenges and learning something new for me. I'm a pretty good skier, but not incredible. And I got better over the course of the week. I did some stuff that I didn't think I could do. I progressed. I looked at those really steep slopes and said, you know what? I'm going to try it anyways. And what's the worst that can happen? Death, paralysis, whatever. It'll be fine. Kelly Schuster-Paredes: It's funny because I think back to people who are new listeners and they must think, why do we talk about these? But everything's such a parallel to coding and being a coder, being an educator, trying something new, risking the opportunity to embarrass yourself or fail massively and always learning. So I love that. Sean Tibor: I think I said desirable difficulty at least once over the course of this. Kelly Schuster-Paredes: So proud of the week. Charlie Meyer: The only reason I prefer coding to skiing. Well, I'm not a skier. I'm afraid of heights and I just don't want to tear my ACL. So like sitting at the keyboard, it's very safe and you get some bugs, your computer crashes. But that's about as bad as it gets. Sean Tibor: I only saw a few people go down in stretchers last week. It should be fine. Kelly Schuster-Paredes: That's funny. Well, I have an AI related, which surprisingly, I don't know if anybody's been following on LinkedIn, but I'm like a little bit crazy about AI 8th graders. I sent them on a journey. We introduced Matplotlib. It's like a standard, I believe. That's one of my favorite libraries still to this day. So simple. Eight lines of code kids can graph and really getting in there and understanding data. I set them off with side. It's not chat GPT because we can't use that with students, but a side AI called Flint K twelve, where it's for kids under the age of 13 and they were using the AI to propel their learning. And I literally mean propel. I didn't give them any other knowledge except for Matplotlib. And then I gave them a set of questions to ask, and I said, hey, ask this question. How do I import CSV? What's big data? How do I find data? Where can I go? And I said, go. By the way, I'm taking a field trip to Kennedy Space center. Good luck on the project. It's due after we come back from winter break. And one of our favorite students. I will not name her name, but Mr. Tibor can probably imagine who this is. She produced six incredible graphs. I told her, you could literally stand up in front of the UN and present this information on overfishing with all these graphs, and they would give you a standing ovation. The story that she told behind the data was impressive. They did all this with the help of AI and my quick lesson on Matplotlib. The journey that we're taking is just profound. I would never do this with my 6th graders because it was brutal for some kids. Yes, we had a lot of failures, but we also had a lot of wins. So it was a great feeling just to see the reading comprehension and knowledge coming out from this individualized learning. So it was cool. It was a big win today. And that was today. Sean Tibor: I know exactly who you're talking about just from that description, and that kid is amazing. She has a giant heart and such a worldview. That's incredible. I'm not surprised that she came up with that. Kelly Schuster-Paredes: I had other ones, but hers was you. And ready. That was huge. But good things, good times. Let's get on with the conversation, because I could talk all day about that. Sean Tibor: Sounds good. So why don't we start by introducing our guests? So, Charlie Meyer from Pickcode Technologies, you're the co founder and CEO, but you're more than that. You've also been a computer science teacher in high school. You've worked as a professional software engineer in several different places that are really pretty cool, actually, if you take a deeper dive at your LinkedIn profile, living in Massachusetts. What else should we know about you, Charlie? Charlie Meyer: That was a very nice introduction, so I appreciate that. So, one thing that's kind of interesting, maybe, to this discussion, is how I got started coding, and I'm maybe dating myself, but I got started programming block coding. So it was. I'm not that young, right? It was like 15 years ago. Like, the Android phones had just come out. I had the cheapest possible Android phone. It was like $75 or something. It was horrible, but it was still cool. I was excited about it, and I saw online, MIT app inventor. You can make your own apps on your device. And it was super exciting. I made a game called Dingo Hopper, which was like this PnG that I cut out with paint. And then I made a little background, and it goes, and you press the one button on the screen, it jumps by a couple pixels, and if you leave it on for too long, your device crashes because some memory leak or whatever. But it was still really fun. My high school didn't have computer science classes, so that was about as advanced as it got out for me. But eventually I made it out. So, success story for MIT app inventor. I got to go down the street and talk to those. Sean Tibor: Nice, nice. Charlie Meyer: Yeah. Sean Tibor: I will definitely not date myself by saying how I learned how to code, because there were definitely not blocks involved. Charlie Meyer: But it was early block coding. It wasn't this fancy stuff. I had to download it. I had to download a Java thing, and I had to flash the rom onto the phone. And it was not that easy. I mean, it was not wireless, at least. Sean Tibor: Isn't it amazing how sometimes just getting to the starting line of being able to code can have so many obstacles involved and so many things you have to know how to do? And I think sometimes we forget about that as techie people. We get used to it. Or even if you just do it enough times, you know all the steps and how it goes together. But sometimes we forget how many different hurdles we put in front of learners in order to get to that point where they can just write their hello, world. Kelly Schuster-Paredes: And I was just thinking, like, that app inventor has been around, and it's still kicking in a lot of classrooms in our cs. In high school, they were still using it until recently. So it's a pretty good, solid program, and playing that game and getting it going must have been exciting for you. Charlie Meyer: I was cool in high school. That was like, best Saturday night of junior year of high school was bingo hopper. So, whatever. I am where I am now, but. Kelly Schuster-Paredes: I want to change the subject so much. But I was just thinking about the TED talk from this little kid who did wacka Beaver. Were you that cool? Charlie Meyer: I don't know. And I didn't even have a pop star involved, so I'm even lower. Kelly Schuster-Paredes: How funny. All right, go ahead. Sean Tibor: Let's start by talking about Pickcode and work our way backwards. I'd love for you to weave in some of your experiences teaching as well, and how that influenced what you built with pickcode. Tell us a little bit about what it is and how it works. I just went through the website and played around with it a little bit. Tell us how you came up with the idea and where it's led you to today, for sure. Charlie Meyer: Yeah. So starting from today, pick code is a site where we got an online ide. You can do python, you can do HTML, JavaScript, whatever. So kind of similar to replet. We're hoping it's a drop in replacement. There you click a big green run button and your code runs in the cloud. You get your results back. Where it all started was me actually developing a programming language, visual programming language that we now have retroactively called Pickcode VL Visual Language. So that's the other thing you can do on the site, and that's the flashiest thing that we've got on our homepage, is the visual editor, where it's designed for students who are transitioning from block coding into Python coding or JavaScript. We could talk more about it in a second, but that was what led me to start the project was working on that, and that was inspired by actually working with the high school kids on app inventor. It's not all about app inventor, but block coding. There was challenges there and we can talk more about those challenges. Then we got into Python later in the year, and basically almost every design decision around Pickcode was informed by the high school kids and their experiences and really designed for them. I've got a couple of users back at the high school who still send me a link. They friended me on LinkedIn. I don't know how they did that, but they found me on LinkedIn and they sent me a message here and there, and if they ever catch wind of this video or this podcast, they're going to go crazy. We got to be careful of that. Sean Tibor: So what's their addresses again? Charlie Meyer: I accidentally once displayed my home address on the projector at this point. Absolute nightmare. And so then I had to retroactively start saying the wrong address to try and trick them to forget it. I did realize, and tore it off the projector basically unplugged it. It's like, oh no, don't look at complete aside, I've moved a few times on purpose, so they don't know where I live. Don't tell them. Kelly Schuster-Paredes: Thinking about this. One of our philosophies is all these solutions, these great products that people invented always come out of a problem that has happened. For example, Mu editor was developed because kids had a hard time installing Python and getting kids started, like Sean said, was something that it just got in the way of creating cool stuff. So what was one of the biggest challenges that you saw? Because we know that course, that computer science, they do some sort of block thing, and then you go into some sort of either JavaScript or python. What was that hiccup that you saw that really just went, oh, my need. We need to fix this. Charlie Meyer: Yeah. So I think there's three things, and I can say them in order of kind of least important to most important. First off, it's actually kind of funny. Sean said this right at the beginning. I almost raised my hand. He said, transitioning from block coding to real coding. And it's like, oh, no, don't say real coding, because that's what kids think. And the customer is always right, so they're right to some extent. But I had the CS hall of fame in the back of the classroom. We had Grace Hopper and we had Alan Turing. And I'd say, according to Alan Turing, scratch, really, is this a real deal? It's turing complete. And the kids are like already asleep, like 30 seconds into trying to describe that. It's a really abstract thing for kids to understand that these are equivalent, like, computational things because they've never experienced the other side. So they've seen block coding and they associate that with elementary school, middle school, and they're like, I'm tired of this. This is fake. We can sit there all day and say that it's not fake, but in their eyes, it feels kind of inauthentic to them, I think. So that's a challenge. That's important. The other thing is, obviously, maybe this is a big one, but coding is hard. It's really, really hard. I think we all know that. And then I think the only thing harder than coding is teaching coding. It's like even worse, like ten X. So those two things, we need as many tools as we can to solve that problem. And so there's some design considerations there. And I think the third thing, and this is the most important thing, is I am easily excitable. So this is not true for me. But for most people, I think printing, hello, world, is boring. It's not fun. And you can come up like, I've tried to be creative with the lessons I've come up with. I've had some successes. I've had many failures. We're going to do the student information system on the command line. What do you guys think? And it's like, no, dude. And you can make it about basketball. That doesn't matter. Sometimes it's a hit or miss, but a lot of those command line programs just aren't fun. So that's the other consideration. That's obviously the thing that makes scratch. I think the most successful is that we've got the cat, we're doing animations, we're having a fun time. So you go from the block coding, where you're making apps in app inventor or scratch animations and games. Then it's like, all right, let's make coding ten times harder. This is the real thing now, and it's boring. Who wants to be a computer science major? And it's a really big issue. There's a lot of issues going on right there. So that's my take. Sean Tibor: Yeah, you're not going to get any disagreement from me. It's really hard to teach students about the value of a list when they can't see the list. They have to imagine it. They have to make it abstract. Maybe you have something like Python tutor, which really helps visualize that for people, but it's still like, okay, so I put things in a list. Now what that whole idea of going from coding being something fun and interesting and useful to not being useful, not being fun and not being that interesting, and then back to that place, that's a really hard trough of disappointment to get through. I like what you're talking about here. I think we've seen some similar things with make code as well, where being able to see, not make code edgy blocks, right? Where kids can make that trough a little bit shallower because they can see, okay, here's what I'm creating. Here's the visuals on screen. Here's the actual thing that's happening, right? And then that turns into real code, that real code again, text code that I can do other things with. So if I have to learn Python or JavaScript or something like that. Anyways, at least my introduction to it is a little bit gentler of a glide path to get, don't think. Kelly Schuster-Paredes: I don't think either of you, Sean probably remembers this, but my hello world lesson is phenomenal. And everyone's cheering after the end. I'm just kidding. No, but I'm thinking back because people who don't really know the backstory, I'm sure they've heard it. I never was a coder. I did HTML, which I thought was cool. But you write something, you see something. It's kind of like coding in Python turtle. You write it to go forward. You see it go forward. For me, going into block has always been difficult to understand. Even doing Lego Spike editor with the kids, I'd rather code in Python. And the kids are like, this is hard. I have to write all this stuff and they can just drag blocks. But I never get the robot to do what I want to do with block. So I see how that transition jump for kids who've always been coding in block and going into script might seem difficult and hard to grasp. And what does a teacher do, especially from schools that have relied so much on this block coding. So you made pick code? Charlie Meyer: Yeah, so I'll say I've been working on pick code now for two and a half years or so. And it was originally like a Saturday morning wake up on the school routine, wake up at 06:00 a.m. And let's just go and have fun with it. Now it's a full time job. I don't think we have any of the answers yet. This is such a hard problem. I could work on this full time for the next ten years and be 8% of the way there. Hopefully we're making a little more progress than that. But I think it's a really Kelly hard problem. And what I want to make sure that we do with pick code and as a field, I would hope that we're not satisfied until we're getting to 100% completion rate. A lot of times with tools, and I do this too, we say the success story for the five or six kids in class who are excited about it and have a great time with the tool. There are 19 kids, like 13 of them on their phone. Six have their head down. Maybe I'm just a bad teacher and that's my numbers, but the tools aren't going to solve the whole problem. But I think tools can be a real help. If it's a difference between a teacher having three minutes to help out extra kids or eleven minutes, that makes a lot of difference. So that's where I'm excited, is what can we do to improve the experience for the students and the teachers? Kelly Schuster-Paredes: Here's a question, not necessarily about pick code or block code, but something that's always weighing on my mind now that I've been working in replet a little bit, which is a little interesting for me, it's a change because I'm more of a colab moo person. What about planning? Let's pretend you're back in the classroom and you're using your pit code and you want to start an assignment with your students and you're really trying to teach them the art of planning, because we all know that planning leads to perfection, but we all know that none of us plan. We just start typing. Especially Sean, he's banging on his keys, and I'm always like, he types so loud, but what would you do? How does that translate? Say we're working with code. Is it different as a block coder? As a. A. Everything's different for Java people, but I'm just kidding. How does that work? What would that look like to you? Just as an educator, a CS educator. Charlie Meyer: I know the hardest question you could ask because I think that's like a real challenge, is saying pause. So sometimes I do tutoring now. So I was tutoring a college first year student. They were doing their intro to python class, and it was like some sort of if statement thing where they're determining the number of the price of some batch order of t shirts or something, and there's differential pricing depending on how many t shirts you order. I was like, this could take you four and a half hours by just typing a line of code, typing 50 lines of code, typing 150 lines of code, never pressing play, never having a plan, never doing any pseudocode. Or this could take you like 35 minutes, a thing that you have to learn. Now this person was paying me to tell them that, and so hopefully they listened. If you're out there, shout out. Hopefully your assignment is going well this week. Yeah, I think that's really hard to do without experience and having it go the wrong way. There's almost a learning opportunity to say, hey, don't plan it. Go nuts. Let's see how you do. You could almost do an A B test in a class. I'm just spitballing. I think this would be chaos in a real classroom. But say twelve of you, you're going to plan, and tomorrow you're going to code. The other twelve of you, you're going to code for two days. And ideally you would see in the class that the kids who plan get five times as much stuff done. It's a classroom management nightmare because the kids are going to. Kelly Schuster-Paredes: I'll make sean answer the same question because he has thoughts. Sean Tibor: Yeah, honestly, I still run into this with some of my engineers that I'm working with that they'll often get sucked into that vortex of, I'm going to figure this out, I'm just going to push a little bit harder and I'm going to get through it. And they didn't really start with a plan. They started with some examples and, like, a vague idea of what they wanted to do. And so what I end up doing with them is I have two things that seem to work well, time boxing their work. So saying, okay, you've been working on this for how long? 3 hours or half a day or something like that. Okay, we're going to pause here and we're going to go back and revisit all your assumptions and talk through this from the beginning and do the planning retroactively now that you've struggled with the problem a little bit. So I do that, the time boxing part. But then the other part is I make them write it out on paper, right? Like, I make them plan it out. I make them draw pictures. I make them think about it differently than writing text on the screen, because it gets their brain to really work through what they're trying to do. So I don't think that you have to do planning before you start coding, but maybe what you do is limit the amount of coding you do before you start planning. Kelly Schuster-Paredes: I think that applies to both, right? For block coding, you always have a task in mind. Block coding, script coding, real coding, whatever you want to call it. Sean, someone asked me how you would define computer science skills. And I said they're the everyday skills that everyone needs to know because everything's tech. And the idea, and that stuck me yesterday was about one of the major challenges of coding, regardless of block or script, is having an idea of where you want to go. Kids are hitting that wall right now with AI. Code me something. Okay, great. But there's no plan involved. So I was just wondering if anyone had the answer to that. Sorry, I digress. Charlie Meyer: I don't have the answer to the planning thing at all. But you touch on something that's basically perfect, which is they want to want to have a plan. Are you just doing it because someone told you to write out a design document? Or are you like, this is my game. I'm going to make a video game today. Video game is an easy example, but I'm going to make a website. It's going to be a thing and it's going to change everybody's mind about this important issue to my school or something like that. I think if the intrinsic motivation is there, the rest of it falls out and there are like engineering best practices in this sort of thing. But that's the key thing. I saw a student, he was in my AP compsi class last year, and he had a 400 slide, Google Slide thing of every statistic and everything in his video game. And maybe he over planned because then he tried to one to one, turn that into Java code, which didn't work. But still, he was like, this is my video game. This is what I'm doing. And he was not working in class, he was in Google Slides. It's like, your exam score may suffer, but he was still planning something because he was excited about it. Sean Tibor: I think there's also a certain amount of this that's traction. And maybe this is something we can use to come back to. This idea of the block coding, to text coding transition as well, is that students need to feel like they're getting traction with what they're doing, that they're making progress, that they're getting things done, that they're accomplishing things along the way. And these often come in micro doses. Every time they hit that green button and it doesn't crash and they've added something new that feels like progress, or hitting it a bunch of times and getting it to crash and then getting it to work, that's progress. And I think what's really hard for learners is when they feel like they either aren't making progress or they can't see the progress that they're making. And some of that comes through reflection and having them go through and do some meta learning activities, but a lot of it comes from that feedback cycle that they get. So, for example, he probably felt like he was making a ton of progress because he kept making more slides and he could make more of his thoughts it out of his head and onto the screen where he could see them and work with them. And that is progress. I keep thinking back to one of the students that we had, or two of the students that we had, I think my first year teaching or second year teaching with you, Kelly, where they came up with a choose your own adventure game that was all based in Python. It was just this massive organism of if else statements that just kept growing and growing. But I think in 24 or 48 hours, they came up with 700 lines of this choose your own adventure story that they had written, and they felt like they were making tremendous progress. Charlie Meyer: Right? Sean Tibor: So it was satisfying to them. So as we think about some of these learning moments for students, if they're familiar with block code or start out with text coding, how do we help them feel that progress or that traction that they're getting? And was that a part of your design also as being able to give them that feeling of accomplishment as they went through learning Python with pick code or using the pick code language? How much of a factor was that in your design document or design approach. Charlie Meyer: That was the design, I think so. You nailed it. The number one thing that I care about is how many times kids are clicking that button, like the big green button. And I made it extra big on purpose. I just care about that. Unless you're like, kids will just also spam buttons that they see. And I'm like, that cost me money. Like, stop. But besides that, as long as they're making real progress, that's the number one indicator for me of student success, is, are you making changes? And I'll bring up an anecdote that I think was inspiring for the pick code process. And I still haven't made good on this, but I made a lesson, I guess it was two years ago now, lesson 310, Python music so I wrote some wrapper around some library, and that gave you the ability to make waveforms, which is too in the weeds. So I gave an API. Here's how you make the first note in the scale, the second note in the scale, and every line of code was another note in their song. I said, okay, guys, here are the notes for twinkle, twinkle, little star. And everybody's pressing play, and it's loud. It was a fun lesson. Some kids don't like music, so they hated the lesson. But this one kid, he had done nothing all year. He was a junior, and he had basically stopped coding, like, September 5. And then all of a sudden, he's like, wait, what is this all about? What are we doing today? What's this, like, music thing? And I was like, yeah, man, let me show you. And I sat down for three or four minutes, and I said, here's the code. Here's five lines of code. You press play, you get five notes out, and he's like, okay. And then he's like, well, what happens if I add another line of code? And it's like, you got. That's it right there. When they ask the question of what's going to happen when I make this change? And it's like, go for it. It's free. It's replace money. Definitely say it's all good. But I told him, I said, write the national anthem. And he did. He sat down, and he was, like, late for his next class because he had done nothing, and he proceeded to do nothing for the rest of the year. But the point is that I think you need to find these experiences where the students are getting into that loop of iterate and run the code. And iterate and run the code. So the experiences that we try and have in the app. So we've got chat bots that have little typing bubbles and animations. And I think they're more fun than the terminal. And we've got a version of turtle graphics and we've got a little game engine, 2D game engine. I'd love to add music mode. We're always trying to add more of that kind of stuff. And we've got the language, the pick code language where you can do that. One thing I'm really excited about is to make the Python version of these APIs. Ideally ship those for Python programmers wherever. You shouldn't have to use the pick code platform to use those APIs. That's like a project I'm really excited about is productize. That one lesson is something that we. Kelly Schuster-Paredes: Can certainly do in retrospect, thinking about the scene, the output, that's what makes, like you said, scratch great. That's what makes for me, matplotlib. Amazing. Turtle teachers go out there and they're like, oh, we're going to do PI game or something like that. It is that instantaneous. Something that they can connect, they can see. That's when I started looking at the site. You want something that's instantaneous. We have the click culture, the scroll through the phone. If you don't get it within the first 30 seconds, it's a waste of time. Sorry, that's not a question. But that was like a support of both your statements with that. I love that feature because you do anything as an educator to get that hook. And we wait other educators out there and you guys past experiences, we wait for that one child that we're finally. Any other stories that you want to connect with that just was like, yes. And they used this pick code and it was so awesome. And they made this product that sells it for you. Charlie Meyer: I have a couple. I think one that's funny is I was at a workshop in December at a high school here in mass. So this year, for almost all of our traffic from hour of code, so we're a partner on there. We did it in 2022. We did it this year. We're now in the number eight. We have the number eight most popular lesson on hour of code. So little pat on the back to us because we did total clickbait. Like literally clickbait. The lesson is called click a cookie. So we did all this effort. We made like a little language model thing. We done this whole AI thing. And I was like, this is going to be a hit. Nobody cares about that. They just want to do the click a cookie thing that is just like far and away the most popular lesson. So I went to this workshop in December and it was right around hour of code. So we were still getting feedback on the lesson. We ran that lesson and it was fine. In the classroom, it's a small class, maybe 1015 kids, they got really excited about clicking the cookie and they were like, okay, one thing that's great is in the lesson, there's a set, the number of points to points plus one. So best thing is the first kid who discovers that that does not have to be plus one, that it can be plus nine. Nine. That's a win right there. The other thing that was funny, and this is not even a coding thing for some reason, there was a theragun in the classroom, like one of those massage things. So the kid puts their finger right above the touchpad and then has another kid do the theragun. And it's like getting hundreds and hundreds of points perfectly aimed on the cookie. That's what I want kids to do, is goof around. I don't think it should be a serious sub. I mean, it's a serious subject. It's complicated. But there's this sort of false idea that we're just like banging our heads against the keyboard and all of the stereotypes about what's up with programming, but it's really just about messing around. That's how I got into it, is making these goofy games and yeah, now it's a career and now I'm doing this, it should really just be about messing around. And that's what scratch does perfectly. Huge inspiration. As we're doing our work, I'm basically asking, how can we get that scratch mentality of having this all be games and fun and animations and not trick people, but weave in these more advanced concepts and get things closer with the language. We're just trying to get you closer to coding in Python or JavaScript and with our APIs for doing the chat bots and the different graphics and stuff like that. It's all about, can we keep that spirit of having fun and messing around and getting away with stuff? That's what it should be about is like, I made it nine, nine nine. Then the other kid's like, I typed 100 and nines and the browser crashed and it's perfect. Yes, that's what we need. Eventually you need to buckle down, but for a while, that's what it should be like. Sean Tibor: I haven't found that point yet. I think we just keep having fun with it. That's one of the great things about teaching computer science, and I keep coming back to one of the things that Eric Mathis said, author of Python Crash course, is that the real challenge in teaching computer science is not to reach the kids who are already into it. The kids who show up with their laptop ready and they're like, I'm ready to code because I've been doing this and I love it. We help serve them, we help them grow and develop. But finding those kids in the back of the room who are like, I don't want to be here. I was told I had to be here. And you find something interesting and some way to engage them and get them excited about it and have some fun with it. And sometimes that's breaking the rules and bending them in interesting ways. That's the real challenge of teaching and teaching computer science in particular, because it turns that from being such a negative, boring, terrible experience to being something that they lean forward in their chairs, they say, this is awesome, I want to do more of this. And then they might lean back again like when the music lesson is over, but for that moment you got them and they're excited about it. Kelly Schuster-Paredes: In the last couple of minutes that we have, I do want to do a shout out to one of your lessons. Thank you for correcting the link. We'll put it in the show notes. But it's. Again, sorry. AI, AI, AI. I love it. The fact that it teaches about large language models. It's a term even as a computer science teacher, I have to go in and I'm constantly trying to learn about what's really going on with AI. You have this lesson about LLMs and tokenizing and words. You want to give a little bit of explanation, but I think that's going to hit home for a lot of people now who are trying to teach AI literacy skills along with python encoding skills. And it's just like our job just got 1000 times bigger thanks to OpenAI. Charlie Meyer: Yeah, for sure. So we have another, what, 400 minutes so we can talk about. I got time. Kelly Schuster-Paredes: You got two minutes. Charlie Meyer: Well, no, the little language model lesson, that's what I thought was going to be the hit this year. And so I'm glad that it's finally getting some love. It's not popular. I don't know what happened. So maybe we'll turn that around this episode. Kelly Schuster-Paredes: I think it's good for teachers. I don't know. Trying to get kids to actually learn words is difficult, but at least getting teachers in there and pushing it would be cool. And having us learn it. Charlie Meyer: Yeah. To describe the lesson briefly, it's basically your classic python mad Libs lesson where you have enter a noun, enter an adjective, enter whatever, and you do the string concatenation, and you send the message at the end. That's a tried and true lesson in the Python educator cookbook. It's a good lesson. We have one of those as well. All we did for this is a bit of a kind of hack, but we just have you enter a list of nouns, a list of adjectives, and a list of verbs, or I don't know what order it's in. And then you use the dot split function. And so now you've got a list of nouns, a list of adjectives, a list of verbs, and then finally when you're creating your sentence, you're saying math, random choice of this list, that list, and you get your goofy sentence. That's not that profound. I mean, it's like, yeah, whatever. I kind of understand that that is to a zero th order approximation, like what chat GPT is doing. So that's where the lesson comes in, is we can say the nouns and the adjectives and the verbs that you entered. That's the training data. It's only going to say something that appeared in the training data. So if you want it to say something, some swear word at the end, you have to enter that into the training data. And hopefully kids will do that within reason. Hopefully they will. We might need to make a feature where it blurts out swear words. Coming soon, next update. But in that we talk about the training data, and then tokenization is breaking up the input into little chunks and then combining it out in the end. It's a great way to interweave some of the vocab and do that in there. We have another lesson, what do we call it? Generative art creator, which is just a turtle graphics lesson. You're changing the pen to have random colors, and you're going in random directions, and it's like, well, if you just change the distributions of the numbers, you're going to get this wildly different picture. Introducing the students is obviously real. Models are much more advanced. But talking about those terms, it's nice to get the literacy up 100%. Kelly Schuster-Paredes: And it was funny because looking at the lesson came in line with a tweet that I got from Trey Hunter. He tagged a whole bunch of us and said, how do we teach metaphors? And for me, that lesson hits the idea of we're not really teaching them large language models, we're not teaching them really tokenize it, is what you said. It's just a bunch of algorithms we put it together and concatenate a bunch of words. But that metaphor, Barbara Oakley says it so well. We get that metaphor and we're allowed to pinball those ideas in our neurons and make connections. I just thought that was a great way of, you need something to have students relate to. This is why we code. We can make chat. GPT, how amazing is that? I'm standing up there going, you're going to be the next open AI person. So kudos on that. For me, I thought that the connection went really well. Charlie Meyer: Shout out yeah, appreciate that. Sean Tibor: Yeah, I think you have to answer that question. How do we teach metaphors with a metaphor, though? How are we going to teach it? Like a boss. Kelly Schuster-Paredes: Like a boss. Sean Tibor: The space is growing really fast and I think one of the things that we have to do as educators is also help learners come comprehend and make sense of it, how to parcel it out into smaller chunks and find ways to integrate that knowledge. I spent 20 minutes or 30 minutes at the airport on Sunday night listening to some woman confidently and incorrectly talking about AI and the impact that it was going to have on the world because she didn't really understand it. What she understood was the stuff that she had read about or seen. Some of it got lost in translation for her. Here we have the opportunity to let students actually put their hands on it, how to practice it, to work with it, to use it, even if it's in small examples. Now they have a much better, more real and genuine understanding of how the world is changing. With the introduction of these new approaches and new methodologies for generating content and generating new forms of data. Charlie Meyer: For sure. Yeah, there's always the argument, it's just great. We're in a good position that there are so many arguments for why you ought to learn to code. When I was a teacher, I was in a PD thing and they were saying like, here's a list of the top seven reasons why educators think that learning to code is important. We all ranked our top three or whatever and everyone had wildly different answers. It's great, especially with AI going on, that one of those things that we can add to the list is becoming more and more important. And everyone knows it's obvious that the literacy thing is so important in terms of having a base understanding of how computers work. Hopefully we can figure out how to develop that curriculum around how AI works. That's a huge challenge, but coming soon we'll figure that out somehow. Coding should be fun, and I've obviously had professional success finding a job in programming, and there's the literacy aspect. There's just critical thinking skills. So this goes on and on. It's really good that people are recognizing these days that the literacy aspect is so big. Kelly Schuster-Paredes: Definitely. I know you guys can talk all night long and we will. Sean Tibor: All right, see you, Kelly here in the morning. Bye, Kelly. Any final thoughts or questions you want to ask? Charlie? Kelly Schuster-Paredes: Always final thoughts and questions, but no, I'll ramble on. So I'm going to stop rambling. Sean Tibor: I wanted to take a minute just to give people a chance to find the website and learn about it. So you can go to pickcode IO. We'll have it in the show notes. There's different tiers of access available, which is great. So people can practice learning, pick code, language projects. They can see the demo lessons won't cost you anything. Then as you progress, there's some nice packages for classrooms and for individual learners where you can add on these additional languages. I'm really curious about digging into some of the other languages, especially Python, and seeing how it's all implemented. If you want to go check it out, go check out the website. Charlie, if people want to follow you or learn more about what you're working on and what's next, where's the best place for them to learn more about your progress? Charlie Meyer: Yeah, so thanks for the info. Kelly Schuster-Paredes: He's going to flash his map, pinpoint where he lives, right? Charlie Meyer: Can you bleep this out? Okay. Don't find me. Find me on fine. Yeah, so my email is Charlie at pickcode IO. It's probably the best way to reach me. P I c k, code IO. We're also super active on LinkedIn these days, so we're competing with Kelly for most posts a day. We only do one a day, but no, you gotta be on LinkedIn. I think it's a place where you can get really good engagement. And so we just posted a picture of my dog today because it's like national best pet day or something. Kelly Schuster-Paredes: But was National Muffin day today. Charlie Meyer: It's like national nine things day, but emailing me would be great. Find me on LinkedIn. Check out the site if educators are listening, or if you want to try out, pick code with your kids or something like that. Anyone listening, just reach out to me. I'm happy to give you free months of access or whatever because we're really in the time right now. Our landing page looks like we're thousands of customers or whatever. We have customers, but we're always looking for more. We're always looking for feedback, especially from educators. Just reach out and chat. If you run through the demo lessons and you want more, just give me a buzz. Kelly Schuster-Paredes: Cool. Excellent. Sean Tibor: Kelly, any news from the show? We have Pycon coming up in a couple of months. I just booked my airline tickets. We're making headway on the education summit and a lot of other fronts. Kelly Schuster-Paredes: Education summit's going on Thursday. Website. Hopefully it's ready to go. If they are interested in speaking at the education summit, start putting together your proposals. What else? I think. Sean Tibor: Pittsburgh, here we come. Kelly Schuster-Paredes: Yes. I'm so excited. Sean Tibor: It's going to be a lot of fun. Well, thank you, Charlie, for joining us this week. We're really happy to have you here. It was a great conversation. Hope to have you back soon and hopefully we'll get a chance to see you in person someplace warm in the near future. Charlie Meyer: Sounds good. Thanks so much, Fred. Sean Tibor: All right, it's our pleasure. So for teaching Python, this is sean. Kelly Schuster-Paredes: And this is Kelly signing off.