Sean Tibor: Foreign. Hello, and welcome to Teaching Python. This is episode 147 and this week we're going to be talking all about teaching APIs. My name is Shawn Tiber and I'm a coder. Well, am I a coder? The last few weeks, I think I'm still a coder. I think I still teach. It's been a lot of management stuff, but we'll go with it. I'm a coder who teaches and my. Kelly Schuster-Paredes: Name'S Kelly Schuster Peredz, and I'm a teacher who codes. I code a little bit. Sean Tibor: I'm glad. I'm glad. Kelly Schuster-Paredes: Yes, I code the same stuff. Sean Tibor: So for those of you listening, obviously it's been a few weeks since we got together to record and Kelly and I put our foot down and said we're going to do it, we're going to get back on the air, we're going to talk about something that, that we're excited about and it's APIs, which you're going. Wait, APIs? Like that's something you want to talk about. But stay with us. This is going to be a lot of fun. I'm really excited to record this week with you, Kelly, and it's always a great time to catch up and talk about teaching and technology with you. So let's get right into it with the wins of the week. Kelly Schuster-Paredes: Oh, yeah, I think we should just share the win and not do any of the negatives. Do we share the win that. The. That The Education Summit website was launched and released on Mara. What is it February? Was it February 28th? Yep, released on Friday and. Wow, it was. It was fun. I'm excited. It's out there. We're accepting proposals and I've had a lot of people saying they want to help out. Really not too much to do on the back end because Olivia and Pycon has been so great. I. I wrote up the website, she made the links and everything, so yay. And hopefully get a lot of proposals and everybody sharing out. Sean Tibor: Well, I think as long as it is anything like last year, we're going to have an amazing summit and just have some great things to learn and a lot of good conversations. I'm looking forward to it and I know that especially with the education outreach team that has started up within. Was it within the psf? Yeah, within psf. I think we're gonna have a really great opportunity to get everyone together and recharge everyone's batteries for some more teaching of Python and education. Kelly Schuster-Paredes: Yeah. And a couple of things we were talking about there's a student access, I think, for only a hundred, 150, I think Olivia was saying. It's on the website, so I think she was saying, if you want to bring some students, or if you're a student at CMU and you want to come, or you know somebody there, it's actually cheaper than the Sprints. That's like the whole weekend of Pycon. You can attend with that ticket. And then somehow we're working out with the Educational Workspace, our outreach program, that we're going to try to do some filming, individual filming, and they're going to release it on the website. I think the sheriff. We can handle that. So that's going to be a lot of people trying to help us out with that. Maybe we film our own presentations and they're going to help us get it out there on the website. And we're in the same room, so as last year. Sean Tibor: I know exactly where we're going. We're in the same city, which is a city I love. It's going to be a great time. Kelly Schuster-Paredes: Absolutely. And we got that balcony right outside. So it's great. Sean Tibor: Yeah, it's great to get some fresh air, especially as you're in the middle of the conference. I know there were a lot of great conversations that happened out there, just outside, enjoying the fresh air and talking about Python and education. So what could be better? Kelly Schuster-Paredes: I know, and I'm hoping that some people will come in and talk to us, how they're doing APIs with some LLMs, and maybe they can share some of that out, I think. Sean Tibor: Exactly, exactly. So let's jump right in then. I think that's as good a win as any. I know that there's been a lot of good things happening for you and for me, but let's just get right into the topic. Let's talk about APIs. What are they? How do you teach them? Why would you teach them? And what have we seen along the way when we start teaching APIs? And what does that really bring for students in terms of learning? Kelly Schuster-Paredes: Yeah, it's funny. Cause I remember the first time we decided we were going to do APIs. And we've talked about it a little bit on the show and we've shared a couple of the lessons, but I think as I'm doing them now, been pretty solid. This is one of the units that I like to keep in there. And I always think about the Chuck Norris jokes, but the APIs has. They have really been. It's really weird. Really weird. Like one of Those lessons where I can lecture and talk about vocabulary words and the kids actually listen. Sean Tibor: Yeah, it's a lot of fun. So let's define it first of all, because there's a very like computer science definition of an API or Software engineering definition, which API stands for Application Programmer Interface. It's the behind the scenes. So different than a ui, the user interface, different than a gui, the graphic user interface, different than a tui, the text user interface. The API is a way of interacting with a program, from one part of your program to another. And so when you're coding in Python, I would argue that most of the time you're working with APIs. So when you engage with an object or a library, especially the standard library or something you download from PyPi, you're using that library's API, the definition of how to interface with that library. And so there's a design to it, there's things that people have made choices about. Here's how you will engage with us. So when you're reading documentation of a library like Pandas, you're looking at the Pandas documentation with its API. That's a little bit confusing. I think when you and I are talking about APIs in the context of this conversation, we're Talking about web APIs, which is a slightly different animal. We're talking about being able to connect to a website online or a server online and retrieve data or to, you know, make a request, cause some action, do something outside of my local computer. That's the part to me that is different. There's amazing stuff you can do on your local computer with local libraries and things you download and APIs. And that's always really, really engaging. But something is a little bit different when you start going to the web, when you start looking at these external web APIs, something opens up that's a. Kelly Schuster-Paredes: Little bit different 100%. And I think it's funny because when we first will pull up an API and we'll write the five or six lines of code, everyone's like, what? And where, where'd that come from? And I. And then we start talking about things, the weather and we start talking about football scores or anything that's coming into a website. And we say that's probably an API where it's hitting up information from data and it just takes this conversation to a whole new level. This year was quite cute because one of my students decided he wanted to start a drop shipping business. You know, first he had explained to me about the whole drop shipping because I was like, really at your age. But. And I said, this is great, this is perfect. We can do this. You can get an API, maybe you can get up a website and pull in the products. And so it lends itself to a really good conversation. And I think when you make it something that's applicable for the students, they start realizing that's pretty cool. When I can do that with six, seven, eight lines of code to just get it started. Sean Tibor: Yeah. And for me, I was thinking about what examples can I give here? And I'm going to give my like old now that I'm starting to get more and more gray hair. This is my old example of what this was like. The first computer that we had in our home was an old like Apple Iigs. And I thought it was amazing, right? It had 16 bit color and a mouse and a keyboard and it was incredible. You could do all this stuff with it. You could write documents, you could play games. All this stuff was amazing. But it was all self contained. It was all right there on the same computer. And then one year we got a modem and it was 2,400 bits per second, right? This modem was like connected with this big, thick, chunky cable and a phone line for anybody who's about 30 years of age or older. You remember connecting to the Internet was, hey, is anyone using the phone right now? I'm going to dial in. And you'd get connected. This was even before the Internet. It was, I think it was CompuServe or something like that where you would dial in and get to an online pbs. And that was how we got our first email and gopher and all this stuff. And I remember I went on the bbs and I asked my parents if it would be all right if I stayed on long enough to download a picture. Because this was going to take 45 minutes of time on the phone. And I had to go around and tell everyone not to pick up the phone for the next 45 minutes while I downloaded this picture. And because it was all billed by the minute, I remember the sense of awe that I had because I had used the same computer that I had been working on and using and playing with for a couple years now to go out and do something out there. Now it was out somewhere other than here. And that was such a core moment for me in terms of, wow, look at what's possible. I remember I had classes in elementary school where we would go post our weather data to a bulletin board somewhere and someone else would post their weather data from another school. As far away as Minnesota. But what was amazing about it was that, like, it started to make these connections for me, and something that was very local and I thought very small, became much bigger. And I feel like that's a lot of what's happening with APIs. Like, the first forays into Python tend to be very local. It's things that I do on the. The interpreter, or I'm doing in the repl, or I'm doing in Colab or wherever you're doing it, but it's all stuff that only you can do. And if you put it in, then you probably get it out and it's very predictable. But now it becomes unpredictable. When you go out to the web, when you go out to an API somewhere and you make a request and you get something back, and now that's something part of your. That's part of your program. It introduces this element of randomness into it, unpredictability. And that becomes, least for a lot of students, pretty exciting. Kelly Schuster-Paredes: Absolutely, it's exciting, but it's sometimes hard to explain because they just. Things, I think, come a lot easier than it was in our days. They expect things to happen quite quickly. We go to the computer, we click on the Internet and there we have it. And now when they have to think, oh, well, I can see this website here, why do I care about bringing it into my computer? Or what is it going to do for me? It's quite different. It's a lot of explaining, like you just did, about how it used to be and why it's beneficial. I'm thinking about the lesson and how we always get into it. And it's. For me, it was a learning curve with all the vocabulary, request response, endpoint, JSON status codes. I think the biggest kicker is when I say, do you remember that 404 we always get when we're trying to get into our lms? And they're like, yeah, I get that all the time. And I'm like, that's an API, probably, or something that's not working and you're not getting connected to that website. And they're like, oh, wow. I was like, have you ever seen a 200? They're like, what? No, I've never seen a 200. I was like, yes, you have. You see them all the time. And they're like, really? And I'm like, yeah, see, this is a 200. They're like, yeah, no, that's a website. I'm like, yeah, it's working. And they're like, well, that's where like. Sean Tibor: HTTP Was it HTTP Cats is like my favorite website to give to people. It's pictures of cats that represent each of the status codes. So there's. Kelly Schuster-Paredes: I never heard of that one. Sean Tibor: Oh, you, you know, but you've forgotten. It's so good. Kelly Schuster-Paredes: I have to Google that one again. Sean Tibor: I use that one with adults, you know, like with engineers who have been using the web for 30 years and like HTTP cats, they've never heard of it. I give it to them, they're delighted. It's amazing. Kelly Schuster-Paredes: I'm going to put that on my lesson plan. It's quite interesting because we started talking about HTTP and, and we explain the acronyms and we. What does that mean? And we say URL. And I'm trying to use the vocabulary. It's really interesting the amount of information that comes about from just talking about APIs and these things that they're like, oh, I understand that. And oh, we talk about API keys and why there's like a rate limiting and why do we need API authentication and why do we need these codes and why we're going to use ones without codes for education and why they have these educational sites. And then funnily enough, we were just so happened this quarter, we were talking about the, not to be political, but talking about the Doge site and I was like, they're like, you wonder if that was an API that was. And I was like, I don't know, it could have been they API the Twitter feed onto the website. So maybe someone hacked in there and it was the kids start the spinning of things going around them, like, how do we get our grades from Schoology? Oh, that's probably an API. How do we get into. To the drive into the lms? I'm like, oh, you know, maybe, you know, maybe it's an API and stuff. And so it's, it's quite fun. Sean Tibor: Yeah. What's great about it is you don't have to start with the most complex examples. So the infamous Chuck Norris jokes lesson that I did was started off just like that. It was very simple, explaining how to make a request, how to get some data from the Internet, how to put that into your Python code and use it somehow. So I found this Chuck Norris Jokes API and it was really simple. Import requests, request, get the Jokes API endpoint, which had no API key on it. You could just request it and every time you requested it gave you a different Chuck Norris joke. And so I would print these Chuck Norris jokes to the screen and kind of show them how every time you ran it, you Got a different output, output or a different result. And then of course, Chuck Norris joke flashed on the screen that was wildly inappropriate for an 8th grade classroom and had that moment where your brain froze and you're like, wait a minute, maybe this was a bad idea. And I should have had a more predictable API. But I also, you know, used it as a lesson, like, hey, look what happens. This also can happen that you have things that show up that you don't expect or that you don't want. What can you do to prevent that? And we could talk about, I think that API in particular had a filter flag you could put on it. So you could pass like a parameter in your request that says make it family friendly or whatever it was, and it would filter out the jokes that were not appropriate. But everything became more of that lesson. Like we could keep iterating on the lesson and talk about, okay, now what? So what would you do if you had a Chuck Norris jokes generator? Well, maybe you could put that into another website. Maybe you could get a text message every day with a Chuck Norris joke of the day. Something like that gave them a little bit more spontaneity in their programming and something a little bit more delightful from the joy of finding something new. And then from there we went into all of these other APIs that you could use. And I think by the end of that semester, I think between you and I, we had people querying the stock market and trying to do rudimentary analysis of what stocks to pick. We had people looking at sports scores. We had people looking at, I think they were trying to find like concert feeds and music stuff. So it just took off once they saw that, hey, this is a skill that I can acquire and then use that skill for a lot of other areas within my coding a hundred percent. Kelly Schuster-Paredes: I do it a little bit different. This year. I'm giving away all my secrets on API because it is the best, I think, unit now next to matplotlib. But we do a couple things. After we do vocabulary, we get them to use our AI for school. It's flint. And they have to come up with the metaphors. And I tell them, and this is a great teaching lesson about AI and that the AI is always going to go and say, oh, APIs are like a restaurant. I always tell them, I don't want to hear about APIs being like a restaurant. Give me some new examples. So the kids start to, to see not only metaphors and how metaphors can help them understand complex situations, but that also AI gives generic Answers right away. So if you don't probe it, it's quite a fun time. But yeah. And what did we do after we did that this year? We did a little bit different thing. We only worked at pulling up a JSON and really digging into a piece of code that was generated by AI, something that was way past their ability. And we started looking about how the code was written in AI and then we opened up the JSON and they had to see where that key value kind of situation was coming from. And that was an interesting way of going into it. Normally we go into it the front way and we say, here's the JSON, here's how you find it. But I did it almost as an exploratory. I didn't really teach them how we dig into the parsing of the JSON until after I showed them the code. And it was it. I'm not saying it was perfect, but it was neat and messy at the same time. Because when they first look at the JSON, we have to dissect it and say, oh, what does this look like? Was this like a list? And what's in this value and what's in this dictionary? And why would you pull out this item for the code? And it was fun. It was really fun. Sean Tibor: The other thing that I like about it is the APIs are really empowering. It's something that gives students maybe their first real sense in coding that they can do something big, that they could do something that's. That maybe it was a dream. And then they realized, wait a minute, it's not that far fetched. I think about another lesson that was one of my favorites that also went wrong. I don't know why. The lessons that explode on contact because. Kelly Schuster-Paredes: You didn't test them. You didn't test them. They were the fun ones for you as a kid. Sean Tibor: They were. They're jazz. Yeah, they're jazz improv. So I did another one where we were working with, and this one was a little bit more planned, a little bit more control. Control. But we were working with the Twilio API and we were using it to send text messages. And you've heard this story a thousand times already, but I had come up with a Google Colab notebook that I could share with them. And I had gone through the hard part of figuring out like setting up the API keys and setting up some of the functions and wrapper library that would make it easier to call the Twilio API and send a text message to a phone number. One of the things I did was I made it so that the test phone number that they could send to was only my phone number. So they couldn't like just bombard someone else or, or spam it. But what ended up happening was the first five minutes of this, I got a few text messages and they were all like, hi, Mr. Tyber or Cat emojis or something like that. It would show up. That was cute. But the real moment that I think the learning actually happened was when they ddosed my phone by. By the first kid who realized, like, wait a minute, I can put this in a for loop and I can send a million text messages to Mr. Tyber. And then suddenly my phone actually stopped working because I had so many pop up messages coming in of another text message, another text message, another text. It made my phone almost unusable. And honestly the solution was super easy. Like I just went and blocked the API key or revoked the API key and then nobody else could send messages anymore, which worked out great. So at that point then my phone took a few minutes to recover. But then while it was recovering, we had that conversation about how this is the first time that you've gotten some. Gotten to a place in your coding where you could actually cause harm to someone. You could actually wreck someone's phone. And what does that mean? What responsibility do you have now that you have this knowledge that I think turned into a really good lesson. I had a lot of students later on. Cause I think that was a seventh grade lesson that I did with them when they came back in eighth grade, they were like, hey, remember that time that we like broke your phone? Yeah, that was pretty awesome. But they remembered it because it was something that was a great moment. It was something that opened up the possibilities for them. Kelly Schuster-Paredes: Those are. That was a fun time. I haven't been confident enough to do that. Always stick to the safe stuff. I love starting out with Talk Python to me, Michael Kennedy's weather API. And they tried, they try to break it with cities and states and countries and wherever their hometowns are. And they're like, it's not coming. It's not working. And we talk about endpoints and spelling, but yeah, I'm not as creative as you when it comes to giving out my phone number and letting them spam me on APIs. But I do love a good Twilio activity. It's funny because. Oh, go ahead. Sean Tibor: I was gonna say, I think at the end of the day it's just finding ways to play. Right? It's finding ways to have fun with it. And to play with what's possible in a way that still has some boundaries and guardrails. Like the play wasn't let's go hack the FBI, right? It was let's play around with a text messaging API. But I think it was the first time that they saw, hey, I could have some fun with this. This is actually really cool. And I can make an app that sends text messages. And they also realize that the way that they get all their text messages, like confirmation codes for signing into a website or order confirmations, that's all coming from an API too. So they started to see a little bit of the magic behind the curtain, a hundred percent. Kelly Schuster-Paredes: So the list that we had has actually grown for me. I have about 25 open educational websites and they're. Some of them are boring. So over the years of. Or the quarters, I shouldn't say years because I do this every quarter over the quarter, I always get the same, the same activity. And the kids, if you send them away at home and you say, okay, do an API project, they'll go to an AI, they'll say, give me an API project. Here's the rubric, make it happen. So instead I, this year I wrote up a nice little lesson and I said, here's the 25 APIs I've been using for the past. I don't know how long have we been using these? Like four or five years. I tell them all the time that I'm bored and if I've seen it before, they're going to get a 50%. And so they had to come up with something creative that was applicable to them and it was cute. So I had one student, she made a game with the help and again we're using a little bit more AI in the eighth grade, trying to use a little bit more code with that. But she made a game with the dog photos and it was an imposter game where you had to have four people play and you were shown four pictures and the, you had to give a clue about the picture without giving away the picture. And one of the persons did not get to see the picture. So they had to come up and say, oh, it's like this game on the phone that you can play. My kids played all the time. So she played that with it. And then another one used the rhyming API and set it up with hangman in a wordle situation. And so it rhymed with the five letter, A five letter word. And then they had a hangman but in a wordle format. And so they were really starting to show the things, the games that they knew. And so the amount of creativity that came about was really great. But with the fun part, part was is that they had to go in and explain all the lines of code. So if. If the LLM sent back a code with classes on there, I was like, if you can't explain to me and teach me what a class is in this code, then you. I'm either going to give you an F or you're going to do this again. And the kids were describing the lines of code and really digging into it because sometimes Flint would give them a code with an HTML to show a picture, which I would have never thought of teaching, but it was in Colab. It was taking an HTML and like centering the picture. And they were going in there and they had to explain. Obviously they were getting the LLM to explain it to them. But they were doing these videos and it was fabulous. It was so good. And I was. That's why I was like, we have to talk about APIs, because it was such a fun lesson. Sean Tibor: And that's the seismic change. When I was teaching, there was no LLM model. So a lot of it, I think, was still mysterious. Well, it kind of works because Mr. Tiber made it work. But I really like the idea of using the LLM as the explainer. Explain this code to me. Why are we doing it this way? Hey, this isn't working. Or I'm getting an unexpected error. What does this mean? And especially when you're talking about APIs, like there's a lot of things that could go wrong. Right. Because now you're. You don't have control over it. Before it was only what's on your local workstation. Now it's going out over the Internet. You might get status codes, network disruptions, all these unpredictable things can happen. And what the. I think it really does challenge the student to go beyond the. It's not working. Kelly Schuster-Paredes: Yeah, right. It's funny because I think the amount of creativity that comes out when you're forced in a Pigeonhole, you have 25 APIs to choose from. You have to do something that is going to make you stand out, be unique. You get really creative. So of course I've got a Kendrick Lamar lyric maker with a couple words that were given with a rhyme and then they would make a song nice in the form of Kendrick Lamar. It was. They were really cute. There were some just great lessons that were. Or not lessons, but scripts that came out from. From this activity. Sean Tibor: Yeah. And honestly, the art that's hardest is that fear as the teacher of taking the leap and saying, I don't know what's going to happen either. It went badly for me on a couple of occasions and luckily I was able to salvage it and turn it into another lesson as part of this. That's part of the fear that I think prevents a lot of people from teaching APIs. Because I'm teaching strings and classes and object oriented stuff and I have to teach. I don't have to teach libraries then if I'm sticking to the basics or the standard library, I don't have to teach requests, I don't have to teach about status codes, I don't have to teach about JSON. Like this definitely goes like it. It definitely spreads out into a lot of topics very quickly when you start working with web APIs. And I think that's intimidating for a lot of people. And to be honest, I'm not quite sure how to help people overcome that either as teachers, because it really is challenging. Kelly Schuster-Paredes: Yeah. It comes back to the fact that I was having a conversation with a high schooler who, who's been working with a lot of the students trying to products they always want something made. And he's like the token. I don't know, I think he's 11th grader or 12th grader. He's like the token coder. But I was laughing at him. I was like, you're not even. You haven't coded any of this? He goes, no, why would I code it? I'm coding it in Claude or whatever. I'm like, I didn't hear that. You're not supposed to be using that next to me, but let's just pretend. You said, flint, but they're coding. And he says, everyone could do this. And I said, but they can't because look how long it's been taking you to solve the problem with your code. But you can read the code. And we got into this great conversation because he doesn't know Python and he came to me and I was like, but you had Claude. What happened? I don't know what, I don't know how to run this. It was funny because we was trying to connect the circuit Python BLE to. To a Swift app and it wasn't really talking. So we were having all this fun time having these great conversations. And one of my former students who was working with the circuit Python, she's like, now I know why we had to learn how to code. And I was like, yes, you just needed to see what's going on. So that's how I took the APIs. I don't expect them to be able to code those whole games, not in eighth grade. But they want to make products and they want to make things that are fun for them. And as much as I enjoy opening up and typing the weather app, I still do that with the students. I still walk through the lines of code, but they really don't care about a weather app. Great. They grade a picture of a cat on their screen from an API. Yeah, that's fun for two seconds. But when they start building and connecting to safe, I'm going to say safe APIs. APIs that are educational and they try to switch it to something fun for themselves. One of the kids came in, she's like, oh, my God, I really love my code. And I'm like, wait. She's like, I really love our code, the Flint and my code, my idea, the code is a game changer, 100%. Then after the project, we start talking about the fact of how. And I'm going to do a quick little swift change of how people are using APIs to connect into an LLM and they are using that into all these products. And we get into this conversation about, like these wrapper products, like our Flint Chat, our Flint AI that we use at school. It's a wrapper connected to an LLM that's using that API on the developer side. And I think that the kids want, oh, now I did this, now I did that. Oh, I get it now. This is how the world's running. Sean Tibor: So, yeah, that part is really interesting. It still comes back to the same teaching pedagogy that you and I have had since the beginning or that we discovered early on, which is you can't set out to teach kids Python. You can't set your goal as, oh, I'm going to teach them Python. What you teach them to do is how to solve problems using Python or how to build things and make things using Python. And then that way they learn how to use that tool as a way to solve the problems. Then the real question is, what kind of problems do you want to solve? What is interesting to you? What do you want to build? Not just how are we going to build it or what are the components. So I was talking with my daughter in the car the other day and she's taking computer science for the. Not for the first time, she's taking it as a class for the first time. So she's in sixth grade now, she has a quarter where she is taking computer science and she's learning some Python. And honestly, I was really proud of her because she was. She was doing if lfl statements by herself, like, no big deal, hadn't asked me for help with any of it, even though she knows she could if she wanted to. She's just like, yeah, I can do this. But I was telling her about the project I was working on at work, which was like, server monitoring. I've told Kelly about this, but it was, here's all of these metrics that we have to manage a bunch of servers and make sure that they're all healthy and everything like that. And she is. Kelly, I kid you not, just as bored as you are now listening to this, right? She's just like, okay, dad, thanks. I'm like, well, so the cool thing about this, she plays this game on Roblox called Dress to Impress that is apparently all of the rage. And the whole idea is that you put together an outfit based on a prompt, and then the other players give you one to five stars based on how well you met the theme and how cool your outfit is. And they love it. There's all kinds of things going on there. But I said, look, the same mechanism, the same code that I'm writing to monitor servers. What if you use that to see how many stars people are giving at any given time? You could look at that in real time. How many stars are being given out on DTI right now? How many outfits are being put together? How much is happening? And she. Her eyes got big and she said, you can do that. I'm like, well, theoretically, you need to have access to the data, but, yeah, you could, in theory, you could do that. And she's like, oh, well, I mean, I thought we were actually going to do that, But I had that moment with her. I said, look, what's the difference between all the boring stuff that I just told you about that's interesting to me because it's part of my job, and the cool stuff that you all got excited about because it's not the Python code, it's not the technology, it's not that. It's the fact that you actually care about that because that's something that you like and you're interested in. And she thought about that for a minute. She said, okay, I see your point. I said, so you know, if you're working through class and the specific example that you're working on is boring at that moment to you, just know that it doesn't have to always be that way. The next example that you get to pick could be something that's interesting to you and then that'll make all the difference. Kelly Schuster-Paredes: Yeah. And I was just sitting there googling for a couple times during this lesson, and I was like, you know, what's with an API? Because the kids asked me and I said pretty much everything. Am I right by saying that it's pretty much everything runs with APIs. It was like the. You collect data with. In a way. You went off in the tangent in the beginning saying, what is it? Tp? No, you're saying technology, interface. Sean Tibor: Those are just interfaces. Right. So from like a interface theory perspective, right, you have user interfaces which are designed for humans, and you have API interfaces which are designed for computers. And then we have this, like, subset that we're calling web APIs. Then the other thing you can have with API design is you can have private APIs and public APIs. So we are big fans of public APIs because it means that anyone can access it, anyone can use it, which is great. Some of them are totally public. Like, anybody can use them whenever you want without restriction. Maybe you get rate limited, but you don't need to have a key to access it. Then you have public APIs that you can sign up for and you can register to get a key. And maybe it costs you something, maybe it doesn't, but anybody can do it. Then you have private APIs that could be like, you write an application with a server and that has a private API that only your web application code can use to retrieve data to and from. Or two servers within your company or within your project. Talk to each other using the API. Kelly Schuster-Paredes: Yeah. I remember taking Michael Kennedy's Fast API course. That was. That was too fast for me. Sean Tibor: It's unintended. It is pretty quick. But something like that becomes even the next level. So you make your own. You make your own APIs. Kelly Schuster-Paredes: That was really cool. That would be really cool. I can imagine having at least nine weeks with the kids for just APIs. I can imagine the lesson would be super cool. And you could go in through the whole concepts of Python. I could probably teach the whole entire time if I had older kids about making products with APIs and then go into the Python concepts and then making your own database. I've dreamt of this. And then going into to Graphing and matplotlib. We were just about to connect a weather API and go into graphing, and then my teaching partner was like, now it's time to do ear sketch. We have two weeks left of the quarter. Like, gosh, Dang, it. I just started liking these kids and we've got to move on. Sean Tibor: But that's a, I think that's a great example of where you can take this. So once you start consuming APIs, then you may want to create your own. Then you could have a group project. One person's writing the API for retrieving data from some online source and putting it into your database. Another person is writing the API in front of that database that the website uses to retrieve data and things like that. Another person's writing the component of it that uses those APIs to generate all your reports and graphs and like status of what's happening. And suddenly you're writing software. That's really what we're doing is we're starting to write software in teams. And that becomes really the next lesson. Because as interesting as it is to work on your own projects and work on things that are really super technical and hard and you have to figure out the technical problems. The really interesting stuff is people problems. Right? Like those are. The things get really fascinating. But how do I work with others in order to deliver this? Kelly Schuster-Paredes: Yeah, if you're a college or high school Python computer science teacher, we've just given you a whole semester year long course on just how cool would that be? Sean Tibor: Software engineering. Kelly Schuster-Paredes: Software engineering. And just start it with just basic APIs. Sean Tibor: I mean, I'm hiring interns right now from college and how many of them, like they have seen GitHub and they've used it, but they haven't used it to work on projects with other people. That's one of the most interesting things that comes out of our internship program that I hear from those college students is that when they come in, they've heard of GitHub, when they leave, they're taking GitHub. And not just the tool, but the whole process of working with others, planning things out, organizing their work and getting things done. GitHub, not GitHub, doesn't matter. But that whole idea of project processes and working more effectively together, they start taking that back to their school and they start using that in their teams and they start bringing it to other people to make things run better. And that warms my heart a little bit. Kelly Schuster-Paredes: That's pretty cool. Hey, good news. Did you see your former. Not to switch things, but we have a former student, one of your CMU guys who is interning at Nvidia. So pretty cool, pretty cool idea. And so look, we're producing. I like to say that Sean and I produced the Future Coders of America. But I like to think we just. Sean Tibor: Gave him a nudge, nudge in the right direction. In this case, this particular student was just one that like, needed some guidance and some someone there to ask questions because they were already interested. So all we had to do is fan the flames a little bit and they were good to go. Kelly Schuster-Paredes: It could have been a Chuck Norris joke. Hey, just for the record, don't do dad jokes either, because there's a joke about one night stands. Sean Tibor: I have two nightstands, Kelly. I don't need. I don't need one. Kelly Schuster-Paredes: I was like, nope, probably the joke, right, Skip? But anyways, this was fun. And always learn something new. I always forget about all this stuff. But when I only teach APIs in five classes, we don't get to do much. Sean Tibor: So honestly, it's like everything else in teaching and Python. The depth of the dive is there. If you want to take it, you can go as far as you want. Kelly Schuster-Paredes: Yeah, people are probably freaking out and say five classes again. The more that you can expose the students to, especially if you only have them for nine weeks, just get them hungry to have fun. We go into Earsketch next week and that always gets the kids hooked to the ones that never like to code love music. So the more that you can do to just get them interested and playing and having fun, the better the life is for them. Sean Tibor: That's really. Isn't that the life lesson? It should still be fun. Kelly Schuster-Paredes: Yeah. Every day. If you're not having fun, why are you doing it? Sean Tibor: Exactly. Exactly. Any other announcements? We got. We got the Pycon stuff out early, I think. That's it, right? Kelly Schuster-Paredes: That's it. Pycon. I have my Innovation Institute in April, I think seventh and eighth, or eighth and ninth. So lots of presentations going on there. I'm going to be playing around with some Imagi at the Innovation Institute. Dora Palfi is sending me for two of them for a raffle, so I'm really excited. I know. And you know how much we love the Imagi Charms, so that's. Sean Tibor: They're really fun. I haven't actually gotten to play with one in person yet, so maybe we'll have to make that happen. Kelly Schuster-Paredes: We'll have to make that happen. They're fun. Sean Tibor: I need to come on a field trip back to the old classroom and check out all the toys. Kelly Schuster-Paredes: You can code too, when we code with the Imagi. Sean Tibor: So maybe I'll have to take an immersion day with the computer science classes. That'd be fun. Kelly Schuster-Paredes: Anytime you can come guest teach for me. I'll just grade papers. Sean Tibor: Sounds like a plan. All right, then, we'll wrap up here. So for Teaching Python, this is Sean. Kelly Schuster-Paredes: And this is Kelly signing off.