Episode: 1259 Title: HPR1259: Cyanide Cupcake and Klaatu Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1259/hpr1259.mp3 Transcribed: 2025-10-17 22:33:24 --- Hi everyone, welcome to Hacker Public Radio. This is Clat 2, and with me is... Sinite Cupcake. And we're here to talk about something that I think I'd heard of before, but something that you Cupcake had sort of brought to my attention, and it's called Scratch. So what is Scratch? Scratch is a lot of things. It's a gooey interface that pretty much teaches coding to children, and they can start as young as eight. And it also, like, that you create things like video games, you can use it as a paint tool and create animations, or moving sprites that you can use in other projects. The cool thing about Scratch is that it's sort of almost a puzzle piece. It's a visual programmer, so you've got, like, these little puzzle pieces that you can move around to create your different code. Yeah, so, like, the code block categories you have, like, motion, control, like, when do you start, when do you stop the different scripts? Look, sensing, sound, and operators and variables. So there's... It's introducing children to the coding language and, like, how to put everything together without them actually happening to know the code off the top of their head, like, this is what I write here to make this happen. It uses predetermined blocks that you can sometimes modify, but for the most part, they're already presented for the top. Yeah, do you get a lot done with just the preset blocks? If someone was going to look at this or have their kid or their classroom look at this, how would they start out with Scratch? What kind of projects are you seeing being made? Well, the first thing is a really simple game where you just have a sprite, which is your character, have him move across the screen, walk back and forth, make it so that he bounces against the wall, so he's not just walking off the screen forever. I guess the first thing that you could do is have a very simple game where your sprite, which is your character. You have your sprite walk and walk using your arrow keys, so they're very, very simple, and then you can also, like, start to add more steps to that, so you want to be able to control him walking. Well, now maybe you want to add a second sprite that's an object, and that object could be something that the sprite needs to obtain, and then, so you figure out how to make the sprite obtain that object. Then you can go on to another level, and you can build upon that and then create a counter or a timer, so you maybe need to collect the object that your sprite's collecting. So many times within a certain minute to win the game, you can create winnable games. That's another really great thing about Scratches. You can start off very, very basic, but then you can build upon those first projects that you made. I have a project that started out as a monkey collecting bananas, and that was my first Scratch project, and then kids helping me do this game and create this game, and they would come over and they would be like, well, why don't you have the monkey collect green bananas, and the green bananas are with one point, and then the really yellow bananas are with two points, because those taste better. Oh, oh, oh, and maybe Miss Cupcake, maybe you could go and you could have a squishy brown banana, and that could be negative points. That's cool. I had this really simple game, but then I could add all these other elements to make it more complicated, and then eventually I added a timer, and it's a playable game. For those counters, like when you're collecting the prizes or getting hit by the bad guy, how do you do that? Do you implement, is that introducing kids to variables, or are there functions, especially for scorekeeping or what? You're introducing kids to variables. You set a variable, and like in this one game, I have the variable is prize, like every time you collect the prize, you get another point. And so I get introduced to kids to variables, and also I have this dungeon crawler, and so in this dungeon crawler that I have two things, I have a good guy, well, I have my good guy who's traveling through the dungeon. I also have bad guys who are moving back and forth between certain areas, and I'm sure you guys have all seen dungeon collars before, and know how they work. So you have your hero, your good guy sprite, so my hero who's a knight, and he's traveling exploring the dungeon and collecting different prizes, which give him XP points. And then there's also bad guys that are also moving through the dungeon, but only in certain sections. They're not just wandering around aimlessly. And whenever your hero touches a bad guy, he loses some XP. This was kind of tricky to figure out, because whenever the hero was walking every single time he would hit the bad guy, he would lose points. Even if it was in the same time, as you're continuing walking past the bad guy, it would still just keep deducting points, and all of a sudden you'd be like negative 100. So what had to happen with that was there had to be, we have two things, there's an invisible variable called damage, and then there's the XP. So you have to, if touching hero, set damage to one, and then wait until the bad guy sprite is not touching hero, then you set the XP to equal XP minus the variable of damage. And then you set damage back to zero. So next time you hit damage, you're not incrementing and losing like two, and then three. That's great. Because I mean that, so in your monkey project, for instance, the concept really didn't even apply, because it was like, hey, you hit the rotten banana and you, the rotten banana disappears. Right. And you, you are left with negative one like point or whatever. It happens immediately. Yeah. Whereas in this, you want the bad guy to stay on the screen, but you obviously like you said, don't want it to keep reducing your health or XP, whatever, forever. So yeah, that's really cool. So it's teaching kids not only about variables, but really kind of how to think around some of these weird issues that will pop up when you're programming, you know, it's like different situation. You have to think differently about how to get the same, what looks like the same result, but it's actually a different, you know, it's a different process. Right. I actually just kind of like ties into that in two ways. One, I meet with a lot of other educators, especially I don't teach in like in an elementary school. I teach in like a program that goes into schools and also has onsite programs in the building that I work in. But I interact with a lot of teachers who are like traditional like English teachers, math teachers. And they want to start introducing programming and coding to children, but they don't know how. And the thing I keep hearing adults saying is, well, we don't know it, like we didn't go to school for program. Like I'm an English teacher. I know, you know, literature and Shakespeare and I don't know anything about coding. Like how can I possibly introduce this to my classroom? And that's the thing I think a lot of adults are afraid of. That's not the way it is at all, with programs like Scratch especially. It's very easy to introduce not just the students, but also yourself to developing like the mindset of how to program and it's okay to not have all of the answers. For my class is like I try to approach it as not this is how you do it and here's why, but instead having the kids look at it and say, okay, why do you think it does this? Like I want you to tell me what comes next. I want you to tell me like why you're getting this result. Why doesn't this work? So asking the questions before providing the answer, where normally we teach the opposite direction, like we give kids the answers and we tell them how it all works and then we give them the test to where they have to actually show that they learned it. So it's learning from like a different perspective. Yeah. And it's a lot more interactive way of learning too, I think. Yeah. I think it really engages children. Personally, I'm a hands-on learner. Like I could sit there and listen to somebody lecture about a program like Scratch or an editing program for hours, you know, and it doesn't sink in until I actually get my hands on a keyboard and I'm playing around with it. That's whenever it's like, oh, I understand. And so I think that this is perfect for learners that learn in that way. And I think that even if you're not a learner that learns that way, you'll still be able to get it. So because like the answers are produced eventually, but it's more of like a thought process than just here they are. Well, I think that's an interesting point because two things came to mind. One is that I think that's how life is anyway. Right. You know, life is very rarely a step-by-step process solving problems. Not paying by numbers? Yeah. I find not so much. But and neither is programming really. Like if you think about it, I mean, there are certain things, yeah, every client or whatever is going to want the same thing and there are drop-in solutions. But I mean, more often than not, it's not like that. It's like like the monkey and the dungeon crawler example, like to us, it looks like the same thing. You hit a bad guy. You get decremented. But in actuality, if you look at the code, it's a completely different process. So that's a really, I mean, if you teach kids, hey, this is how you take away points, then they're going to walk away with that lesson and think that every time they want something to happen, it needs to be that way. And then they'll find out, oh, that's not correct. I have to come out with a workaround. So teaching kids, yeah, sort of from the other end of things, it's kind of, it's a lot more realistic so that when they sit down, they know that they're not, it's not just dropping in certain code blocks, it's, you have to really think about it and know your toolset and then just start building it up from, well, scratch. That was a really bad joke. That wasn't a joke. That was my product tie-in. Ah, okay. Something I'd like to mention about that actually is, we, me and Clatchu, actually went to go see Mitch Resnick, who was on the, he was the head of the creative team, the creative scratch. And he had this really great quote that I'm going to look up here, hold on one second. So the quote is from a 11 year old boy who uses scratch. And he says, I love scratch. Wait, let me rephrase that. Scratch is my life. I have made many projects. Now I have what I call a programmer's mind. That is where I think about how anything is programmed. This has gone from toasters, car electrical systems, and so much more as a 11-year-old already considering himself to be a programmer and to be thinking in those unique ways where you're really looking at the problems and the solutions and not just like, I know that this is what I was told. And this is the answer. The 2 plus 2 was 4 because they told me. Yeah. And it's kind of interesting, I think, because when I saw scratch, I was super impressed, but I was also a little bit puzzled because it was only at least what I thought I could only see like 20 different programmer puzzle piece blocks, you know, and I was like, well, how could we possibly, how can we do these things that we want to do with just this finite set of pieces? But then as we kept using it, it became apparent that you can use all those puzzle pieces in really creative ways, even though it seems like you've got this set of tools and it's only that set, you can assemble them in any way you want, and you come up with like really interesting like outside of the box kinds of solutions. And you can put things inside of other things. Yeah, you know, and it's almost restrictive in a way because you only have this certain set of like what we would call modules or functions, but actually you can use them in so many different ways and it really does encourage you to think much more creatively than what I think you're used to in a lot of other situations. Another cool thing about Scratch is their online network. They have kind of like a social networking site almost. You can upload your projects to the Scratch website, upload your projects to the Scratch website, and you get like adult uploading things for their students, you get like just people like kids who work on this and they're just about time uploading it, and you get adults uploading things too. So you can share your work with others and show them what you've done. People can comment on your work giving you tips on how to improve it or you know like what they like about it, what they don't like about it. But the best thing about the Scratch network I think is the fact that you can look at everybody else's code. Right. If you upload your project to the Scratch website next to it, they will automatically put a little button that says like this project has four sprites and ten like ten scripts. You click download and then you can open it up in your Scratch program and you can play around with it. You can see like there was this one game, it was a Pac-Man game and you go in and see like how they made like all the different sprites move and like what variables they used and like how they laid it out. So like if you want to create something and you're not sure how, you can search for what you think you're looking for and there's probably already a program that's used that and you can look at the script. Also that means you can build upon everybody else's work. So kind of like I said like you can have a very simple sprite that just walks and then you can like build upon it, same sort of thing. You can download somebody else's like if you like their sprite, you can download it from their website, put it in yours and that's the whole open source idea is what they're fostering here and like with creative comments and everything too. And I think especially for teaching that to kids, that's like really awesome. Like telling them like they're not stealing anything that you're done like because you always hear with kids like I also teach animation and I always hear he stole my idea. Like I was going to do pirates and it's like well, that's not just your idea. You can do something completely unique based off of the same concept and scratch really encourages that and that's a really great way to teach the idea that like people can share and explore and grow together and use similar ideas but still end up with completely different projects. Once again when we went to go see Mitch Resnick, he talked about that there's this one girl my red Neptune and she, she really likes to draw. So she's been doing scratch for many years so she creates beautiful drawings and scratch and she would like to use sprites and stuff that were animated and other users would ask like well, I really like that cat you did, I want a unicorn for my next game. Could you create a unicorn for me? And she would be like yeah, so she would create an upload different sprites for other users. So once again collaborating. So she kind of found a niche of her, she would be the go to artist. Right. And then it grew even from that though because then she started uploading tutorials that she created and scratched showing other people how to draw. So then she became not just like before she was just providing a service to other people. Now she's actually teaching other people how to do what she does. Yeah. And that's just like mind blowing to me that like it's it's collaborating and it's also teaching kids to teach each other which is really really awesome because whenever you start to like you can know something but until you start to teach it you don't really realize that you do know it and it's never really questioned that you know it. But once you start teaching that's like a great way to be like I do know this skill and I can share it with other people. What platform is scratch available for all three operating systems. So Linux, Mac and yeah, yeah, so anybody can use it. They're also coming out with a new right now it's like still in beta but they're coming out with a new version it's scratch 2.0 and I think it's supposed to be unveiled before the summer. I'm hoping so because that's whenever my classes are running be nice to use the latest program they have. We'll have a link to the show in the show notes to the scratch project but what is the URL just for people who don't want to be bothered to go look it up. The URL is just scratch.mit.edu. Okay. By the way, this was created at MIT, I haven't mentioned that before. Also too. I mentioned before about the really great rich online community and I got kind of carried away because I'm very excited about it which is really great but I also want to mention too because I'm an educator that there's also a website called Scratch Ed and it's scratch pretty much a scratch.media.mit.edu and this is like where the educators go and hang out so there's like other people post their lesson plans. If you have a question or want to share something with somebody there's forums and like they're really rich like people are constantly communicating with each other on their. So if you're an educator and you're interested in learning this or if you want to teach it to your kid at home I would definitely check out the scratch ed website because I think that also has lots of resources and lesson plans and everything. Yeah and actually I built installers for scratch as well as squeak which scratch runs in for Slackware so if you're using that go to slackermedia.info slash Slack builds. URL's everywhere. Come to cupcake and clad twos. URL in poor yeah. It's a great, great little program it's really, it's really fun to use. It's amazing I think to see people use it too. You can sit people down in front of it and they almost teach it to themselves. It's one of those things that you can really get started with with almost no introduction and like you've already said even if you're just a lone person you have no other resources go to the scratch website. There's like a bunch of example projects like a million of them so you can learn and you always can learn from the code that exists there. I actually learned scratch from a group of 8 to 10 year olds and they they had learned it they were in fourth grade and they had learned it in their fourth grade class in school and it was over a week at summer camp and they told me about it and I was like well I was looking into getting into this anyway downloaded the project and then sat there at lunch and snack break and the kids would like lean over my shoulder and they would tell me what to do and they would offer suggestions. So 8 year olds, kids as young as 8 taught this program and I mean that's empowering for them and it was also very exciting for me to be learning from somebody so much younger than me and seeing how well they really truly knew this program and they had only had it like a little bit at school. It's not like it's like a full scratch course at their elementary school and they already knew it very very well so I think it's very easy to pick up and then later translate into real like programming languages that you know the traditional like Python and what not so yeah. Cool. That's scratch. Go check it out everybody. You have been listening to Hacker Public Radio or Hacker Public Radio does our, we are a community podcast network that releases shows every weekday Monday through Friday. Today's show like all our shows was contributed by a HBR listener like yourself. If you ever consider recording a podcast then visit our website to find out how easy it really is. Hacker Public Radio was founded by the digital dot pound and the economical computer cloud. HBR is funded by the binary revolution at binref.com, all binref projects are proudly sponsored by Lina pages. From shared hosting to custom private clouds, go to Lina pages.com for all your hosting needs. On list otherwise stasis, today's show is released on the creative commons, attribution, share a like, free dose of license.