Episode 38 Sean Tibor: [00:00:00] hello and welcome to teaching Python. This is episode 38 fun with Python arcade. My name is Sean Tibor. I'm a coder who teaches Kelly Schuster-Paredes: [00:00:22] and my name's Kelly Schuster-Paredes and I'm a teacher who codes. Sean Tibor: [00:00:25] Well, Kelly, we've got a special guest this week. We have Paul Craven joining us from Simpson in Iowa. Paul, welcome. It's Paul Craven: [00:00:32] great to have you on the show. Great to be on the show. Thanks for having me. Yeah, so Sean Tibor: [00:00:35] a little bit for our westerns at home. Paul is someone that we have been kind of. Is there such a thing as a Python Easter crush or something? I don't know. Have you used arcade? I think it's Kelly Schuster-Paredes: [00:00:48] totally fine. I did use it. Sean Tibor: [00:00:51] It's such a great tool and we've been using it a lot in our classroom and so I think, you know, Paul doesn't even know how much we've been enjoying using arcade in the classroom to teach concepts in computer science and for kids to explore and kind of quickly create things that they can be really excited and proud to show off to others, Kelly Schuster-Paredes: [00:01:07] especially this smiley yellow happy face. Paul Craven: [00:01:09] Yup. Sean Tibor: [00:01:10] They're very happy when Paul Craven: [00:01:11] I get that. Oh, that's hilarious. Sean Tibor: [00:01:14] So Paul, welcome. We are excited to have you here, and we're really excited to talk about arcade. It's been one of our hits this year from a teaching perspective, especially with the students. And we're going to get into some of the details about why that is in a little bit. But first, we want to start with the wins of the week, and we. Always start this way as a way to celebrate the positive things that are happening inside or outside of the classroom. And as per our custom, we always make our guests go first. So Paul, you get to go first with something positive that's happened inside or outside of the classroom this week for you? Paul Craven: [00:01:44] Well, right now I'm on sabbatical from teaching for college, so I get the semester off to do research, which just as a whole semester worth of good right there. I've been basically. Really happy that I've been able to work on the arcade library and documentation full time for a semester, so I've been incredibly fortunate to be able to do that lately. Excellent. Kelly Schuster-Paredes: [00:02:06] That's a really big win. It's a win for everyone who's using your library, and especially the website. It's really well documented. Paul Craven: [00:02:14] So Kelly, would you like to go first? I'll go Kelly Schuster-Paredes: [00:02:17] cause I have a good one. I think I have an impressive one. And I keep using it kinda to rub in in the face. Not that I'm a mean teacher like that, but to rub in the face of Sean's eighth grade kids. My seventh graders are doing their card game this quarter. And what an incredible group I have of seventh graders. Last quarter someone did cards against humanities and I was . Overwhelmed and impressed by how much she coded Justin. The basic, if LFL, you know, repeating and copying and pasting. This quarter I have a student that's trying to code the game, Mao, which is sort of like UNO. And I started, she says, I have an error somewhere and I'm looking, and she's like, and I kind of got lost. And I was like, well, where is it? She's like, somewhere in line 1,400 and I'm like, what? I said, I think I actually have to have you print this out. She's like, it's 35 pages. And I said, Oh my God, I don't think in my history of a year and a half of coding have I had a student code almost 1800 lines of code. So I'm a little bit overwhelmed trying to help her find where her errors are, but it's such a huge one for me. I feel in her, Sean Tibor: [00:03:27] and it's funny too, because she keeps saying, well, I just copied and pasted a lot, and we said. Yeah. So kind of like a real coder, like you're here. It doesn't really matter how well you're doing it, Paul Craven: [00:03:39] you know? Kelly Schuster-Paredes: [00:03:40] I feel like I'm doing something right, but I did had nothing to do with that code. That's great. Your turn. Paul Craven: [00:03:47] Okay, Sean Tibor: [00:03:48] so for me, the winner this week was actually not . One of my students, it was an upper school student. So at our school, we have students all the way from little, little pre-K kids all the way up through to seniors in our upper school that are heading off to college next year. And one of those seniors came to us and said, Hey, I took some Python over the summer at FSU and it was way over my head at Florida state. And I don't really think I understood it. They were teaching it way too fast, and she said, but yet. I'm going off to college next year and I want to be a bio major, but I think there's something to this coding side of things because I really like it and I want to do more Python and I want to brush up on it, and Oh, by the way, my older brother's graduating from college with a degree in computer science, and the job offers he's getting are insane. So, Oh, so the real reason it's here, but okay, we can work with that. Paul Craven: [00:04:37] That's good. Sean Tibor: [00:04:39] So she came in and we've been loading her up with looks and online courses and things like that that she can use to get things going. And we've charged her with the challenge to say, not. To go learn Python for Python sake or to go get a good job or whatever it is. But we've said if you really want to learn this well and you really want to understand it, find something to go do with Python, some project that you want to take on, something you want to create or accomplish, and do it with Python, and that will really help you stay committed and focused and disciplined to get it done because you have something you actually want to achieve. Not just this kind of, sometimes hard to chase goal of, I want to learn more Python. Kelly Schuster-Paredes: [00:05:18] Yeah. We're excited. We can't wait to see her come and get some more information and hopefully sit in on some of our littles. Sean Tibor: [00:05:25] Yeah, it was pretty cool. And you know, we've even gotten some help. So I was mentioning this to Michael Kennedy as part of an email back and forth, and he mentioned that there's a brand new course that he's come out with called Python for absolute beginners that he's shared with the students so that she can use that to get started also. So it's amazing right now how many great resources there are out there to learn Python and how much fun it can be to get started, which. It's one of the reasons why we were so excited to meet with Paul this week. Kelly Schuster-Paredes: [00:05:50] Absolutely. So give us a little background about Paul Paul. Paul Craven: [00:05:56] I'm sorry. Are you Sean Tibor: [00:05:57] talking to me? To Kelly or to Paul? Kelly Schuster-Paredes: [00:05:59] Tell us about yourself. Paul Craven: [00:06:01] I always have enjoyed teaching, but I basically worked in the it industry for about 10 years or so, full time, and just sort of taught in the evening for the college that I graduated from. And. Especially leading up to the year 2000 working in it. It was kind of like winning the lottery little bit. It was a great, great time to be part of it, but I really enjoyed the teaching aspect and after a fair bit of work, I finished out a PhD and then actually quit. In the it industry and started teaching full time, which I really enjoy. All of the money's not quite like it used to be, but just the fact that instead of working on some nameless large application where you don't ever get to see the customers being able to work one on one with somebody and seeing that you're actually making a difference, and then it's. Especially if you ever get somebody who's graduated and left to come back and be able to tell you how useful things were. That is so incredible. Yeah, so I've been doing this basically since 2006 and then around 2007 or 2008 I had a student introduced me to this cool language called Python. Which I really didn't want to learn another language, but just the fact that it's so obviously it was a great teaching language, which was sorely lacking. I felt at the time, at least being standardized. I really clued me in on wanting to work with Python and yeah, I did a lot of introductory class teaching via trying to get people enthused about programming, which to me, because of my own history, it was always about. Creating games of some sort and just kind of went down that path. And. One of the reasons why I'm kind of here doing the arcade library now. Kelly Schuster-Paredes: [00:07:47] Yeah, that's great. Going back to the whole concept of getting into teaching and getting to see the students learn the code. That's kind of what I was telling Sean, cause this, this is almost a full second year. Those are the wins that he's finding that. Are incredible and why people stay into the teaching side. I can totally hear you on that. That concept. Sean Tibor: [00:08:06] Yeah, and I do think the other thing that I really like too is this idea of, you know, using play to learn, right? That, that so many computer science courses that I've taken have been, you know, very serious computer science courses where we're going to learn about algorithms and about concepts and theory and everything. And yet. If we had spent time when I was in in those courses, learning about things like, you know, object inheritance and class permanence and things like that. Through the idea of games, I think it would have landed a lot easier with me, right? That it would have been something I could have understood and internalized in a faster way when it's something that is, you know, more interesting or more relevant, more fun when you're playing as well as learning and doing. So I think this is such a great, a great marriage of knowledge area and fun. So in that case, like it's when you're not on sabbatical, Paul, what courses do you normally teach? Are they mostly introductory courses? Do you teach advanced courses also? Like what does that look like for you at Simpson? Paul Craven: [00:09:05] Well, my favorite course to teach is the first semester programming, which I always thought I would be more interested in teaching the advanced classes. But really the key thing is not so much. Getting them to learn the programming, but if there's any way you can get them inspired to like it, then you've got somebody who will hopefully continue to learn programming. And that's the main thing that I like to do in that first semester. I also teach. A first semester web development and also a second semester web development where we get into web application programming. I do a network's class on a pretty regular basis, and I've also got a class on unity where we cover C-sharp three D modeling and working together as teams on projects, which even at the college level, students aren't exactly jumping up and down over. But using the unity game engine, we can usually get them fairly excited as they're working through that class. Sean Tibor: [00:10:01] Nice. That's, Kelly Schuster-Paredes: [00:10:02] that's really cool. I tried unity last year and I got a ball on a plane. It was like Python. It is, Paul Craven: [00:10:13] yeah. There's so much with the graphical user interface that you end up doing that's not code, which is . One of the things I wouldn't want to start somebody learning to program via unity cause it would be too easy to spend all your time not doing programming and more or less. Yeah, move the ball here. Move the plane. Here Kelly Schuster-Paredes: [00:10:32] I was, I was so bad at it. Now I don't come back later. Maybe. I really like the intros too. I was listening when you were saying that. I was thinking about the fact that now I'm teaching sixth graders and it's their first introductory course to Python, and I kept telling Sean, I didn't want to teach sixth graders. I was scared of them, but it is something fun. If you can get them hooked and make it fun for them to want to code next year or keep coding after they're done with us, it's something special. It's a fine line of. Pushing them to learn and pushing them to enjoy it in our, you know, and it's a very delicate line, especially when you work with little kids. Paul Craven: [00:11:10] Yeah. It Sean Tibor: [00:11:11] actually wouldn't surprise me to find that. It's the same way with adults too. Like maybe they've built up a little bit more resilience or a little bit more determination and persistence, but you know, if they're learning something that's hard for the first time or something that's foreign to them, that you could see that kind of you, you have to find those ways to get them. Over there. Initial resistance like to build up that inertia in a forward direction rather than always trying to like overcome it at the beginning. Paul Craven: [00:11:38] Yeah. One of the things that I really like about with Python, before we did Python, we did Java and the good programmers were still good programmers, but. Students who struggled learning to program were really lost in the water. If we use Java, but with Python, I can still get them through the class usually and get them to have some amount of knowledge that they've accomplished. And feel comfortable with. That just really wasn't possible when we did introductory to programming with Java, and it's why I so like Python is an introductory language. I agree. Sean Tibor: [00:12:16] Yeah. I think the idea of it being a full spectrum language that's relatively easy to learn and simple to understand at the beginning, but then can grow with you as your skills grow and as your knowledge grows is a really powerful feature of the language that. Especially been appreciating over the last couple of years since I started picking it up. Kelly Schuster-Paredes: [00:12:33] So just out of curiosity, how far do your first. Your intro to programming kids get in the Python world? Paul Craven: [00:12:39] I would say we cover most of the standard things you do in a first semester college class where we'll do the, if statements. We'll do the four loops. We'll have do lists, we'll do functions, we'll do classes, we'll show them basically how to do searching, how to do binary searching, and how to do two different types of sorts, and that's about where we end up. Leaving off. Kelly Schuster-Paredes: [00:13:06] That's pretty cool. We get everything but the class in the binary. But they're little kids. I just taught them functions. We just wrote happy birthday to a whole bunch of students and what the function today, it was fun. Sorry, I teach 11 year olds or 12 Sean Tibor: [00:13:24] so what are the outcomes for that course? I, in terms of like, you know, people who are first year, you mentioned there's both of the things, some practical skills and some knowledge that you want them to get from a content perspective. You also mentioned Paul Craven: [00:13:35] some of the. Sean Tibor: [00:13:36] Interest in engagement that you want them to have and gain as part of the course? Are there other factors that you're looking for them to acquire or develop over the course of that first semester in Paul Craven: [00:13:47] programming? Well, on the inspiration side, one of the disadvantages of learning things via game is to make sure that it takes a lot of effort to make sure that they. Realize that they can apply this in a different context. So if they are interested in inspired, but they don't really see how this is going to affect them on their job, particularly if they're not going to end up being programmers, but it's a little bit more difficult. And that's one of the things that I still am working on duty. Quite frankly improve on the materials. Kelly Schuster-Paredes: [00:14:20] So Paul, tell us about PI arcade. Let's just get right to it because Sean Tibor: [00:14:25] like the question is what is arcade and why is it not PI game? So cause I think that's the one that people typically think of as the starting Paul Craven: [00:14:32] place for game development in Sean Tibor: [00:14:33] Python. And I think having used arcade, there's a lot of reasons why you would might prefer it over a pie game or pie game Paul Craven: [00:14:41] zero. Yeah, I use pie game for quite a while for teaching both. 10 years or so. I taught using pie game and I liked it. I even wrote a book on it. I revised the book multiple times and at the end of the day though there as you're trying to put stuff in the class and put more content in the class, there was no way for me to easily put more content in the class when I had certain things with PI game that I had to code around and they were always the same sort of thing, and they were things that just. Really made students scratch their head. Like if you had sprites and you wanted to add a Sprite to the end of the list while we teach them how to add stuff to the end of the list with a pen. But if you're adding PI game sprites, you use the ad instead. So it was an inconsistency set mode for changing the screen. The students don't quite know about screen modes. That's really old school. You're doing a. Game loop where most modern programming is done with more of an event driven system where the backend's got the events. If you want to do something as simple as drawn art, then you ended up with that Moyer pattern that always ends up happening with the arcs and it looks ugly and there's never any fixes for it. The coordinate system, you have to explain why the wiser reversed. Basically, it kept adding up and. At the time, there wasn't a lot of development going on with PI game at all, so I looked at trying to expand on PI game, maybe fix some of those things, and nobody was taking contributions at the time. Thankless, not the case anymore. There is a. Set of people that are actively developing PI game, which is awesome. And as I looked at high game pie game is more or less built on raster graphics where you spend a lot of time working with point by point type of things. And that's sort of old school way of doing graphics. And I didn't really want to a game engine that was built that way. I wanted to do it a little bit more of a modern fashion. So. Eventually after a bunch of false starts of trying to contribute or come up with a known, you know, a branch off of pie game, I decided, well, I'm just going to take for everything that I've learned with pie game and try putting it into a different library and make it easier to use. And. Arcade is open GL based instead. So it gains some efficiencies by using more of a modern graphics engine and not a raster graphics type item. And then I really spent a lot of time trying to simplify and remove the things that when I was teaching were what I would consider more of a time waster students. That would be. Doing whatever that I didn't really think was contributing to them. Learning how to code and see if I can simplify that any. And so, yeah. And I just kept basically building from that and the documentation is another huge thing. I really, really wanted excellent documentation around whatever library was there so that students got used to looking up. Functions, looking up functionality and doing that step of going to the web and learning themselves on how to do something. Kelly Schuster-Paredes: [00:18:00] I love that. I'm going to take a step back and for all our listeners who are like me, who kind of wonder what really goes on with building a library, I've always wanted to ask this question. I've always been embarrassed to ask, but I kind of tell the kids, you know, some really smart, smart person wrote these functions for you so we can just use them. How does it come about where you're building this library? And I mean, I understand you kind of had a base line for it, but where do you kind of start? You start at sounds maybe a big question. Does that make sense? Paul Craven: [00:18:33] Like a lot of programming, I think it gets started out of frustration and it was a lot of. False starts in doing it. There's probably three or four attempts at maybe sort of starting it where I backed off of it, and then finally I sort of keyed into how I actually wanted it. But to me, it's never a matter of some real smart person credited a function. To me, it's always some really dumb person created a function and it didn't work. And then they figured out it didn't work. And then they tried to fix it and it still didn't work. And then it tried fixing it again and it got slightly better. And then it tried fixing again. It broke. And then they, you know, there's this engineering process, and to me that. Aspect of continually re revising and making things better and putting it out to a larger audience and getting the critical feedback that this isn't right, and learning to do that. It's not just programming, but writing works the same way. You know, you write something and then you revise it and you revise it and you revise it until it gets somewhat better. It's a matter of being able to. Just at least get started, I suppose, and then work that way. Kelly Schuster-Paredes: [00:19:42] I love that. I'm going to use that in the future. I'm going to tell them that some really dumb person told me somebody, smart person, some really smart person told me that some really dumb people Paul Craven: [00:19:53] wrote these first Kelly Schuster-Paredes: [00:19:54] and then they got smarter over a long process. Excellent. Now, but I just love looking at. PI arcade. Cause there's a unit that we always do with the seventh graders. I give them a couple of libraries that I find easy to read and we show them also some other libraries that are out there. Cause some kids have different interests. And I kind of feel like, and he's going to laugh at me, but I probably already guess what I'm going to say. But I feel like the arcade is written almost how the map plot lib is. It's something very visual. It's something I can start kind of reading and saying, okay. Oh, I get that. Oh look, it's a four loop. Oh, it's a function. And I understand what's going on. And it's one of these libraries that I can give to a six or seventh grader. And yes, they may not know what's happening on, you know, the objects of the class, but they can read most of it and it's, it's comfortable. Sean Tibor: [00:20:46] Okay. So, yeah, I think that that's a really good point here because one of the things that we found with the way that we teach and the way that our students tend to. Learn and the things that they get excited about are the things where they can feel it, touch it, see it, they get the output from it. And it's not just, you know, that interactive console type approach. There are some things that really get them excited about that. Like if we're doing a Jupiter notebook project and they can print out tabular data, or they. Put some data structure in there and then it prints out a like a nicely formatted table for them. They get really excited, but that tends to pale in comparison to just like, look, I made a smiley face, or I made this platform or game as they go along and follow the tutorial that they can see for themselves, that it's really moving along and it's something that they can show someone else and say, look, I made this. Wanted to ask, like one of things that we love the most about arcade is really the documentation, the samples, the tutorials, the way that if you're looking for a game that you want to create, there might be a, or there probably is a game out there that looks something like that or is similar enough that you could adapt it. The sample games that are out there. Do you have anyone that's a particular favorite of yours or something that you really like as an example of what you can do with arcade? Paul Craven: [00:22:02] Well, let me answer that question in two parts. I'm going to back up a bit for the whole idea of putting the samples out there is basically, since I started doing this, I've had so many students ask, how do you do X? And then I would create like a little sample, basically shows them how they do that. Because a huge amount of programming is going out and finding samples and learning how to apply that sample to the code it is that you're working on. And so. With all the documentation and examples out there. I love the engineering process of putting that material together so that the next time through I've got a whole new batch of 2040 students that I try running through the material. I see what questions they have. I update it and I run the students through. I've had certain times where. I always know students are going to run into this question. So I go ahead and I create a link back because I don't know what it is. It's like when you start introducing to variables and you do X equals five students are fine and then you do functions and students are fine, and then you're going to return a value from a function and they have to capture it in a variable and they kind of get it. And then like. A week later, you need them to do that and you're like, okay, you called this function. It's returning to value. How do you capture it? I don't know. You know? And it doesn't help but understanding like right behind him either. When I asked them that and it's such a common question, it's like, Oh, well, Hey, guess what? Right here in the lab, we've got to link back to that exact section, you know, so that they can reread it and then figure out how it works. But I just love that engineering process of being able to go through. And work on material, update, work on material update and go back and forth. So for me, that's. What I love about doing my own material and my own library, but particularly the own documentation material around it is I think it would be impossible to come up with that in a vacuum if you weren't leading patches of students through it semester after semester after semester to see what works and to see what doesn't work. So as I put those samples together, that actually helped because I had all the samples in PI game. And it helped me create the library cause I figured if I could recreate all those samples and the arcade library, then it was functionally complete that students could use it compared to what I did with pie game. So that was a huge push for also on doing the examples and knowing when I was ready for the arcade library to actually start using it with students. But I'm an old asteroids fan, so I loved the little asteroid sample myself. There's an asteroid shooter in there. And right now I've been completely obsessed about creating a roguelike. Wow. Yes, Kelly Schuster-Paredes: [00:24:48] I saw that on the Twitter. Paul Craven: [00:24:49] Yeah. I've been last several days. I've been doing like nothing but that, and it's a little bit, not exactly what I'm supposed to be doing during my sabbatical, so I need to limit how much I do that. Hopefully I'll get to a a stopping point soon and I don't know, maybe then I'll need to like put a tutorial around it or something, but I just like the DRK library is working really well for putting that together and. Doing those samples kind of gives me an idea. Does the RK library need to change? Do I need to update something with it or is it working as intended? Kelly Schuster-Paredes: [00:25:22] I think the more that you can try to push your boundaries and see if you can break it, the better it is. Right. I don't know. That's my theory, at least. I love what you were saying about using your own material and being able to test it out. I think that's some benefit that. A teacher has, I think about my progression learning Python. I'm not sure I would have learned Python as quickly or as efficiently if I hadn't put all the different ways of teaching it into my curriculum. I've changed for the past now 18 times I've taught it. A little bit different each time, adding a new way of coding, a different order than what you know books have been through. And I think that's something that we are lucky as educators. When we're working with code or Python and I can imagine that's probably why your, your resources and your documentation is so good cause you had so many people going through it. Paul Craven: [00:26:21] It didn't start that way. Never done. Usually for me, it's the third version. It starts to get . Decent. The first time I teach a class, it's really pretty rough. And second time it's still pretty rough. But the third time I start to get into a bit of a groove. Sean Tibor: [00:26:38] I think we find that as well. You know, Kelly and I teach the same course four times to the years. We have a quarter long course that we teach, and I find that our third quarter last year was the best quarter. And I think that that same thing is happening this year because it's that, you know, it kind of peaks throughout the year where you. Once you get it that third time through that you really understand the material you've been through, the road bumps and the hiccups, enough times with the students to know when they're coming and how to either avoid them or to soften the impact for your students as you go through that for the third time. Kelly Schuster-Paredes: [00:27:11] I like to tell them that I'm psychic and I know exactly what their question is going to be. Paul Craven: [00:27:15] Oh, that's fun. That is really fun when that happens cause it's just like, I have this question. Oh, okay. Well look at the next bullet point right there. What does that say? Oh wow. That answers my question. It's like, I'm not trying to make him feel stupid. I'm just kind of like proud of myself. This is like, yeah, you're not the only one that's had this question. A lot of other people have had that question. Kelly Schuster-Paredes: [00:27:36] So when do you introduce your students? Is this the arcade. Library. Do you do this in your intro or is there another course that you take them through? Paul Craven: [00:27:46] No, for them it'll be first programming course or we don't assume that they've had a programming class when they've taken it and it does help for them to have some sort of mathematical background. It's nice. Anyway, we basically put a cut off of an act of like around 22 or so. If they end up with it math act of blow 22 and we've talked about maybe they should take a general math class before taking this, but at a college level, it's usually pretty reasonable if you get students to be able to get involved and get through the entire class. We do have another class for. Non-majors and M I S although a lot of non-majors still take this class, but more or less we have an evening program and for the evening program for students who aren't going to major in programming, we have a different version of this class that doesn't cover quite as much material. Kelly Schuster-Paredes: [00:28:38] Do you have a final product they have to make their own game or how do you assess it? Paul Craven: [00:28:42] Yeah, so their final project is basically a. Game that they need to work three weeks on and they have to turn it in in three stages so they get points on every particular stage, but that's to get them used to working on a longer project and bring in more things. I like using gaming on the labs because it's generally a little bit more creative and thus it's a little bit harder, certainly not impossible, but a little bit harder for students to just copy something that they found off the web. They've got lab time where we're working with them. Attendance, they have to show up for lab time so I can see if they're working on the project. And so that really helps in reducing the amount of. Plagiarism that happens. Plus a whole lot of the samples are out on the website. So basically I'm kind of saying, Hey, you can plagiarize from this. Kelly Schuster-Paredes: [00:29:40] A lot of teachers ask that of us, how do we grade? How do we know that they haven't copied code? And I say, well, you know, all of us kind of copy code, we just don't copy an tire person's code. I think that's one thing that. I started doing this quarter is doing that stage one, stage two, stage three. We start off almost with a pseudo-code wannabe, you know, write it out as close as you can to some form of Python looking words and put it in your own words and then add in your, for us, stage one for our sixth and seventh graders are just the basic four loops. If LFL S and get something going, and then I come back and okay, how can we change this? How can we add a player and that constant iteration of adding stuff, but we often send them somewhere to get. Ideas or to ideas to mash together and Paul Craven: [00:30:31] well, it's an important skill. Yeah. They need to learn. Absolutely. Kelly Schuster-Paredes: [00:30:35] And if you can read someone's code and actually take a piece of it, then you have to know what you're doing a little bit. Right. Not the whole chunk. And obviously not someone's entire code, but at least something in there that's going to help you. Just real quick cause again going up for teachers and giving them something to do. We have a lot of new teachers. If teachers wanted to begin using arcade, I know how I use it in the classroom. Do you foresee, did you think about a way of how other teachers or other people would be using your library? Same way as the students? Maybe Paul Craven: [00:31:06] just read those, read Kelly Schuster-Paredes: [00:31:07] through the documentation. Paul Craven: [00:31:09] I don't have a ready answer if quite frankly for that one. Yeah. Going through. And getting an idea of how it works in a similar manner to the students, I suppose would be one way of doing it. Basically, my documentation is divided into two parts. One is mainly the documentation or the arcade library that has the examples and has a description of what the functions do, and then there's sort of a separate online book. And that sort of takes everybody from chapter one all the way through the end. And that I'm working on quite a bit during my sabbatical, and it should be similar to a book that I have out there for high game, and a lot of other instructors also made use of that. In fact, it was translated to like about seven different languages by. Volunteers, which was pretty cool when they work through that. And my hope is that it will be a reasonable amount of material for instructors to, for lack of a better word, steal from or get ideas for questions or get ideas for projects that they could do, you know, for their own work. And I know that instructors are all sort of. Most of us don't have huge budgets. So one of the reasons why I really like putting that out there for free on the web with no ads or anything, is to just give people an opportunity to, since I drew so much from the larger programming community when I was learning, I really want to sort of contribute back to the community myself. Kelly Schuster-Paredes: [00:32:41] Excellent. Well, I'll tell you how I get started and make them go into a couple of the libraries, but something we started last quarter, which really works, and if any new teachers are out there trying to figure out how to just even get kids into a library, start looking, I just make them kind of do a, a quick resource to look at. Documentation because kids want to do really cool things. One of them wanted to do AI and I said, good luck. Here's a library for you to look at. But I send them the, I send them there and I say, you know, what does it do? If you can open up the documentation and start reading or visualizing what that library does, okay, that's a good start. How can it help you? And then they kind of think of ways of way they can use it. And then I make them kind of put it on a Likert scale as you start to read it, you know, is it high on the Likert where you. Kind of get what's happening and whether it's low. And then I also tell them to pick up a couple of functions, right? A couple of functions that you see that you identify or you think you can identify and tell me what they mean. And so by doing that quick little assessment of a library, a lot of them chose you guys. You and Matt live so high on their chart. I'm seventh graders, so you know, so that's how I start them into a library. And I was just wondering, you know, food for thought. Sean Tibor: [00:33:53] Yeah. I think we found that in the eighth grade courses as well. One of the things we tried to build in is some unstructured project base. I mean, it was a structure to the project. But Paul Craven: [00:34:03] a project Sean Tibor: [00:34:04] component to the course where they're working on something that is there of their own design in their own creation. They're not just making something to satisfy an assignment. And so. We had started that with PI game and PI game zero and I think a lot of the students were a bit intimidated by a lot of the same things that you mentioned at the beginning when you were talking about why Paul Craven: [00:34:23] arcade came Sean Tibor: [00:34:24] about, and so when I Paul Craven: [00:34:25] was able to show them arcade, one of the things that was really Sean Tibor: [00:34:29] appealing to me as well was to be able to point them to it and say, here's a library that you can use. Here's some documentation on it. Here's some sample programs. Look, they have an entire platform or Paul Craven: [00:34:39] tutorial. Why don't you do the platform Sean Tibor: [00:34:41] or tutorial and Paul Craven: [00:34:42] get that to work first Sean Tibor: [00:34:43] and get a feel for what it can do. Paul Craven: [00:34:45] So I try to push them, Sean Tibor: [00:34:47] you know, try Paul Craven: [00:34:47] doing it first. Try seeing what you Sean Tibor: [00:34:49] can accomplish, see what it can do. And if you're enjoying it and you like it, then go do more. You know, go find something else you can make with it. So Paul Craven: [00:34:59] we've done some work with arcade from a couple of Sean Tibor: [00:35:01] different perspectives, Paul Craven: [00:35:03] both of which though are like teaching kids to swim by it. Sean Tibor: [00:35:05] Tossing them in and you know, standing by and saying, okay, now how do you feel, Paul Craven: [00:35:09] you know, like are, Sean Tibor: [00:35:11] do you need a little bit of help or how can I guide you? Or do you want to just start Paul Craven: [00:35:14] swimming and we'll be here Sean Tibor: [00:35:15] on shore to help you when you need Paul Craven: [00:35:17] it? Kelly Schuster-Paredes: [00:35:17] So we covered a little bit. What's next for arcade? Is there anything else you want to add? Paul Craven: [00:35:22] Are Sean Tibor: [00:35:22] there any key contributors? Anybody who's been helping you out a lot along the way in terms of adding to the library, to the documentation. To promoting it. Anyone that you want to give Paul Craven: [00:35:30] a shout out or thank Sean Tibor: [00:35:31] for helping you along the Paul Craven: [00:35:32] way? Well, boy, there's so many people that have contributed in different parts and a lot of them, I only know their screen names too, so I don't actual actual name. One of the things that I'm really hoping to do upcoming is I am going to narrate. Basically that I'm revising the book and I'm going to put videos to it. Like with PI game, I put videos on YouTube for people to learn as they went through the different book, and I've learned that particularly for some people who don't absorb information so much by reading, but absorb information a lot better by listening to it. It's a valuable tool that way that I don't have right now. And one of the things I really want to do during the sabbatical and upcoming is I'm trying to get a lot of people, particularly from underrepresented groups in computing to do the narration, so that, excuse me, it's not the same boring white guy teaching them programming over and over again, but I really want to. Let people know that it's a great field to get into, regardless as to your background, and that they can basically learn and find people that they identify with. So that's going to be a huge part upcoming for me, is to try to get all of that narrated, get videos going along with it, and do it with a. Whole host of volunteers, if I can find them. That just made a Kelly Schuster-Paredes: [00:37:02] big light bulb going on my head. That's a great student assignment. Hey kids, we're going to make a resource library for and put it in. Well, that'd be a really fun one. Paul Craven: [00:37:13] So I Sean Tibor: [00:37:13] guess the call to our listeners then is if you've got, you know, a great voice for radio. Right. Paul Craven: [00:37:19] I would love, love to hear from you because yeah, if you've got the audio set up, reading through a chapter takes like 20 or 30 minutes and then my work is to basically put video to go along with that. I'm only asking people to do the audio. I'll do the video work and then, yeah, I just like to get a whole bunch of people to do that because. One particular incident that are really noted is I had a student who just didn't seem to be getting the material, and I basically asked her, it's like, well. Is there an issue with, you know, finding time to read through the material or something. I was trying to ask it as polite as I could, you know, the, why the heck didn't you read the assignment type of thing. And she basically fed back to me that, well, I've got dyslexia and I just can't read on a computer screen very well. And I was like, Oh, I really need to get some other mechanism for people in this situation to be able to. Learn the material as well. And yeah, I'm really hoping that that'll help out. Kelly Schuster-Paredes: [00:38:21] Absolutely. Kids tend to go to videos a lot. We use a lot of videos in our classroom and we have a lot of students who either read slower or just they skip around, they do the Z reading for them, and it's a little bit difficult sometimes, so videos will be great. Sean Tibor: [00:38:36] I mean, I also really appreciate your point about, you know, diverse voices as well. And I, I think. That's one of the things that I like so much about podcasting and listening to other people's podcasts as well, is that it's such an intimate connection to hear someone's voice and hear them talk about something that they care about, that they're excited about, that they really like, and there's nothing better than hearing someone that you can relate to. Hearing someone that has a voice, it sounds like yours or a voice, it's different from yours. And we see that even, you know, in middle school with students who say, well, I'm not really a coder. That's not really me. And maybe all they really need to hear is someone who sounds like them that's been through what they've gone through that can help them understand that. Like it's okay that you don't have to feel like this is a natural fit at the beginning, but there's a path, there's a journey that you can undertake to make this something meaningful and valuable to you or in, in your life. Kelly Schuster-Paredes: [00:39:31] Right? They don't want to hear my voice. They just want to hear your voice. Sean Tibor: [00:39:36] So, yeah, I mean, that kind of wraps it up. And Paul Craven: [00:39:38] we Sean Tibor: [00:39:39] have been, you know, just enjoying the arcade project so much over the past year. It's really added a lot to our classroom and our students have really enjoyed it. So Paul Craven: [00:39:47] we want to Sean Tibor: [00:39:48] close by saying thank you for bringing this together and making it available to everyone. And you know, the call to action for our fellow teachers and other Python East does is go have some fun, make some code, some games through code that are fun and enjoyable. And you know, if you're a parent Paul Craven: [00:40:03] who's also Sean Tibor: [00:40:04] a coder and you want to do something with your kids, Paul Craven: [00:40:05] like. Sean Tibor: [00:40:06] Our kids are pretty amazing, and it's something that your kids can get and understand. It could be a great way to do something with them. That's a lot of fun. Not just teaching them some Python, but actually making something together and I think is a really rewarding thing. Kelly Schuster-Paredes: [00:40:18] So contact Paul if you want to read for him. Sean Tibor: [00:40:21] And so if you want to read, Paul Craven: [00:40:22] love to hear from people, Kelly Schuster-Paredes: [00:40:24] we put your Twitter information and yes, your email address, but that's okay on our, that would be awesome. Perfect. Sean Tibor: [00:40:32] Yep. So we'll put everything in the show notes here. We'll have links to Paul Craven: [00:40:34] arcade. Sean Tibor: [00:40:35] I think Kelly and I are going to pick out a few of our favorite arcade Paul Craven: [00:40:37] examples that we like. Sean Tibor: [00:40:39] I'm not going to post any code that I've made in arcade yet because I've been kind of doing the same sort of like sample programs and here's how to do one small thing. But one of things that I want to do is build something a little bit bigger because like Paul, I'm a big fan of asteroids and all those old schools, so it'd be fun to make one of those come back to life again. Paul Craven: [00:40:58] Cool. All right, so Sean Tibor: [00:40:59] without any further ado, for teaching Python, this is Sean Kelly signing off. .