Sean and Kelly Sean Tibor: [00:00:00] Hello and welcome to teaching Python. This is episode 65, our favorite Python libraries for teaching. My name is Sean Tibor. I'm a coder who teaches. Kelly Schuster-Paredes: [00:00:26] and my name's Kelly Schuster-Paredes, and I am a teacher that codes. Sean Tibor: [00:00:30] So Kelly, we're trying to squeeze he's in one fast, little recording session this week to talk about our favorite libraries in Python. Cause we're starting to get to that section of our course where we really dig into the libraries, the extra things that students can do. We've finished the review. It's time to go on to look at all these cool things that we can do with Python. And more importantly, what can you learn from it? Kelly Schuster-Paredes: [00:00:54] Absolutely. And this is always kind of like a, um Learning opportunity for me, because I think every time we get to this quarter, I try to squeeze in a little bit of a new library. So it's always one of those learning curves for me that I'd like to do. Sean Tibor: [00:01:11] been having fun with it this year in particular, because it introduces things that keep it new and interesting for me as well. So I've taught some new things this year that I've never taught in previous years, simply because the libraries make it much more interesting and fun. It also goes back to what we. Talk about with Python as being a batteries included language or better still the fact that there are so many different batteries out there that you can play with and import that it gives you a lot of things that you can work with and show to your students in a very, economical amount of code. Kelly Schuster-Paredes: [00:01:42] and it is the same thing it's you can bring in these libraries and you can cycle back through these concepts, these basic concepts with the libraries, reinforcing a little bit of vocabulary for our younger students and showing them that it's this, um, reciprocal and it's reciprocal, but recyclable information in a new library and a new look. Sean Tibor: [00:02:04] Yeah. Maybe reusable right. Or revisiting old Kelly Schuster-Paredes: [00:02:07] revisiting oldWins of the Week [00:02:08] Sean Tibor: [00:02:08] I liked that. I like that. Okay. So before we get into that, let's start where we always do with the one of the week. So something good that's happened inside or outside of the classroom. And Kelly, I'm gonna make you go first this week. Kelly Schuster-Paredes: [00:02:19] Don't we have a shirt for that. I still haven't gotten my winner of the week. How about this? We have a couple of people that got some of our products off of our shop. Yeah. We Sean Tibor: [00:02:30] our first sales on the teaching Python web store. So that was pretty exciting to see, like someone actually liked it. It was the power of you. Kelly Schuster-Paredes: [00:02:37] I mean, what do you mean somebody actually liked it? That's sort of one of the coolest that was when I got hooked on making t-shirts. So if anybody did not listen to last week's episode, this is my new passion and it's kind of taking over a little bit of my coding time, but it's so much fun. Sean Tibor: [00:02:54] Your productive procrastination, right? Kelly Schuster-Paredes: [00:02:56] takes me back to my design, thinking a time and, bringing back those old skills of using an illustrator and kind of messing with designs. It's kind of fun. Sean Tibor: [00:03:05] Nice. Well, I think it's a great example of the power of yet last week, if you had asked us we hadn't sold anything yet, this week we have, so it worked, for me, the win this week has really been just wrapping up a project at home where I'm re. Designing my garage and setting things up. So I have a workspace and we're expanding our livable space out in the garage. So it's been a few weeks worth of work to go through, getting it air conditioned and getting things cleared out and organized. But now I have a nice workspace. I have a new chair coming in soon. That's going to make it easy and comfortable for me to go out there and get things done. And so I have moved off the dining room table. That I started with back at the beginning of the COVID pandemic in quarantine, and now I'm at an actual workspace again. So it's pretty exciting,New Robot: Bittle by Petoi [00:03:52] Kelly Schuster-Paredes: [00:03:52] sure your family is very happy about you being out, especially since we have another new robot making the Biddle Sean Tibor: [00:03:59] Yeah, Kelly Schuster-Paredes: [00:04:00] little doggy, by Petoi. Yeah. And Sean Tibor: [00:04:03] looks like a little mini Boston dynamics, dog, right? The same yellow and black, quadroped pad, robot it's very, very fun to play with. And it comes with a bunch of. Pre-built motions , and animations and everything, but what's cool about it is it's very expandable. So it runs Arduino code. You can plug a raspberry PI into it, but it also has Grove connectors for things like I2C or digital and analog pins and things like that. So it looks like it's going to be a lot of fun. It is definitely still early stages. There's a lot of what's. Calibrate it using the serial monitor in the Arduino IDE. And it's yeah, that's sort of fun, I guess. But once you get it, it works really well. Kelly Schuster-Paredes: [00:04:42] Yeah. What I like about it is the, it has 11 servos and it just reinforces the fact of having a microcontroller or board and some parts and a servo. You can do tons of Sean Tibor: [00:04:53] Yeah. That part is very, very cool. So we'll be playing with that more. Maybe we can do like a little video review of it or something like that. Cause you got to see this thing in action. It's pretty fun, Kelly Schuster-Paredes: [00:05:02] Sean just likes the way it does its pushups, namaste. Sean Tibor: [00:05:06] I need, I need more pushups. Fails of the Week [00:05:08] So Kelly, any fails this week, anything that you'd like to call out as being like, ah, maybe that could have gone better. Kelly Schuster-Paredes: [00:05:14] There's always opportunities for failure. Right now I feel like we're a little bit slower in our process of our curriculum, but I find that I'm going in a little bit deeper, super , in some of the asks respect. So I got hooked yesterday. I think it might've been a fail because I think I might've confused them, but I was playing around with them, Al Swaggart, string. Methods and, different methods that you can do on a string and a loop. And I started showing to the seventh graders and next thing you know, it was like a 60 minutes of me coding. And I kinda, felt like you, when you just get so excited and I was like, Oh, I'm really sorry. It was only supposed to be 20 minutes of a code along, but hoping you guys were having fun. I had fun, but that was a, probably a fail because I, you, you forget as a teacher that having that much time and making the kids sit there, Kind of not really actively doing the thinking, they were just sort of copying that. That's probably a big fail on my part, but we'll see how it goes. We'll see what happens on their challenges. Sean Tibor: [00:06:09] Yeah. Yeah. I was having a little bit of a classroom management fail this week. Also. I kind of recognized that I was being a bit shorter with my students this week. They're like, my patience was thinner than it usually is. And I don't know if it was the fact that I wasn't getting as much sleep as I needed to, or it's just, we're in April of a very long school year, and I'm tired and feeling maybe a little burnt out or something. I resolved to get better sleep. Take better care of myself. Take some time to just step back and relax and make sure that I'm being as patient and as thoughtful with my students as I hold myself to that high standard, Kelly Schuster-Paredes: [00:06:47] Absolutely. I mean, we're three weeks into our nine weeks and we still have eight weeks. I'm not really sure how it's three plus eight equals nine, Sean Tibor: [00:06:53] There's some weird like weeks in there, but yeah, we're getting towards the end and it's hard to believe it's been a long year. People will keep saying it goes by fast, but I totally disagree. All right. So let's talk about these libraries and, I'm going to do myself by saying that I think we can go through these fairly quickly.Main Topic: Our Favorite Python Libraries for Teaching [00:07:10] Ha , but what start, what's the first library on your list that you love to teach with? Kelly Schuster-Paredes: [00:07:16] I'm skipping the guest of number two, cause I was going to make you go first, but we'll just let you do your libraries all together. The Pillow Library [00:07:21] I am putting out there a new library that I am playing with and it is pillow. It's not a new library for , probably most of you out there. It wasn't one of those libraries I was ready to bring in, but it's really simple now that I am over my imposter syndrome and I can start diving into these libraries and realize that it's something that is tangible for the sixth graders. And I guess that's mostly due to the fact. That I can use it in Mo editor. Again, if I can't use it in a movie editor, or if I can't access it quickly and easily with a third-party package, then I'm just going to skip over it. Because at this point of time, I don't want to work in a big boy pants editor with my sixth graders. but it's so cute. And the fact that I can. Give them a cat picture or a dog picture or whatever. An anime right now is some sixth graders really like, and they can put it into the move folder and just. Quickly manipulate it, showing him that you have this object and that object gets a method applied to it. Walla, you took put.show and it shows up again, just showing them how I take this object, apply a method and it's there quick and easily. We don't do a big, deep dive into it, but it's something that if they want to look further in to this library, they can. Sean Tibor: [00:08:47] Yeah. And I think that kind of leads into mine as well. And what I like about pillow is that if we focus just on the basic primitive data types , the ones that I always teach are integers, floats, strings, and booleans. Then of course there are a bunch of other ones, but those kind of primitive data types, you. Get the students fixated on that. And they start to think about, these are the only types of data that we have, and then you introduce maybe lists and dictionaries and other stuff. And okay, we've got something more, but they think very textual and numbers based and everything. But as soon as you start bringing in pillow, they start to realize, wait, there's more to this than just making stuff happen on the console or making some happen in the rappel. While now I'm actually getting pictures and things like that. And I really liked that about pillow and you see it. Crop up in a ton of different places. People use pillow for all sorts of things, to manipulate images and work with them. And it's very, maybe starting very simple, but it's very powerful. Kelly Schuster-Paredes: [00:09:43] Yeah. And we have to give her a shout out to two of our fate. Well, not just our favorite people, cause we have lots of favorite people out there, but definitely going to shout out to Michael Driscoll. Who has a whole book and I'm not going to lie. I've not even touched past maybe the first, the first intro documentation of below. Cause I'm again, working with just sixth graders and seventh graders with them. Yes. Mike Driscoll wrote a book called pillow image processing with Python and he was also with our buddy Christopher Bailey on real Python on a real Python podcast. And we'll put that on the link. So if you are. Past sixth grade and past seventh grade. And you want to do stuff with images, check out those resources. Sean Tibor: [00:10:27] That's very cool. And we teach with it as a way to show other things that you can do and to reinforce that learning another library that fits really well into that. The Datetime Module [00:10:35] The number one on my list is the daytime module. I know part of the standard library, but there's something fascinating to me about the ability to use dates and times as a, as an object. So we show that to them as another object that they can use and they can manipulate and they can play with, and the thing that I really like about that is that it helps them solve these problems that maybe are hard to solve just by yourself. How many days are between these two dates? Well, how would I count that up? How would I figure this out? And by showing them that you can use the date time. Library with a date, object, or date time or time deltas. You can start to answer these problems that are maybe a little bit harder to figure out on your own. And so we've taught with it saying, Hey, here are the actual dates from the back to the future movie. Like he starts in 1985 and he goes back to 1955. How many days is that in between those two dates? And then we also say, If you were going to go back in time from today, the same amount of time that Marty McFly went back in time, how far back would you go? And it turns into something crazy. Like, something where in the 1990s, like 1997 or something, and everybody's Oh my gosh, like it's crazy or 1991. And so this is such a great way for them to start to see how they can use it to solve other parts. Kelly Schuster-Paredes: [00:11:49] Yeah, for me, it's that magic of code. And it sounds really silly, but the fact that I put date today in today's code and then run it and I get today's code and then I go, okay, let's open up two days later. And guess what? Look at day to day it's changed. Imagine if you had to change it, it sounds really silly, but for a 10 year old or 11 year old and 12 year old to see the fact that you don't have to mess with that code. It's done for you. Somebody's done that. Um, with this little line of code, now you can always use this and 10 years down the road, you still have today's date showing up in your code. Yeah, it Sean Tibor: [00:12:24] transforms. There's a moment where they go from having this. Um, everything is literal, right? Like everything that they type in as a literal on their code and whatever they type in is what's produced. But once they start using inputs, once they start using date, time.today, once they start using, , other things that will be dynamic and changing every time they run the program, that's where I think it really starts to get exciting. Kelly Schuster-Paredes: [00:12:48] Yeah. It also allows us to, , start working with functions with that. I like that feature with the date time we add them, the functions with them so that we don't have to write those literals in there. And those functions become. An actual function that can be used later on in another part of the code. And it just solidifies those little Python concepts that we like to cycle back through. Sean Tibor: [00:13:11] Right. And I think this is a great place where you can show them really easily. Hey, here's the place in the code where you can encapsulate that knowledge or encapsulate that function into something that is reusable and you figure out the hard math of how many days were between these two dates or how do I convert something from a string into a specific date, time object that I want, this gives them the ability to say. I've done that once I'm going to put it in a function, I'm going to use the function over and over and over again. And that's a lot more interesting to them than, Oh, I know how to multiply two numbers where the function, it's not interesting.The Random Library [00:13:48]Kelly Schuster-Paredes: [00:13:48] so your other library that you have on there is a random, and I'm just going to jump in quick on that one, because that's the first library that we teach in sixth grade and I do it basically. For turtle because so cool. Putting the turtle into random spots or putting in random colors, having this random integer or random choice colorless. And that's all we really use for random at that level. But it's so magical when the sixth graders see those, these random, beautiful circles for some reason on there on their computer. Sean Tibor: [00:14:22] I know, it's really an amazing thing. And this is actually one of the big things in game design. Games aren't fun. Unless it's different. Every time you play it, otherwise it's just a simulation. So for the students, if they're not using random or they're not using the date time or something like that, if it's the same code, every time they run it. Why should they run it twice? If they see the same thing once, or maybe they'll run it twice and then they'll run it a third time. But whenever you make it random now, suddenly it's interesting because every time they run it, something new will happen, something unexpected. And that surge of delight that you get from something new it's really a good thing and it makes them excited about it. It makes them want to do something else. And then what happens if I change this? Does that still become unexpected? And it's a really great way of introducing. Interest and excitement into your code by introducing an element of randomness. We use random dot choice. We use shuffle, we use all of these things to create randomness within our code. And this is something that we can spiral through. So maybe the first time we do it, it's random. On the second time we do it as choice. And then we come back and we do shovel when we talk about data structures. So we're constantly revisiting the random library. In order to reinforce the warning. Kelly Schuster-Paredes: [00:15:31] And it's one of those that they always come back to. I don't know why I, it is like that excitement level and they know that they can add in random import random and be off with it. So it's cool. And we always combine that with the list. I think if, , you want to put a list of colors or you want to put a list of integers. That's so easy to jump in with a sixth grader or seventh grader that it's something that's going to stick and apply. Sean Tibor: [00:15:56] Yeah. It's definitely a great way to make it more interesting and they get excited every time. I'm like, what should we import import random? No, no, but good, good idea. Math Library [00:16:06] Kelly Schuster-Paredes: [00:16:06] So the next one, and I, again, I'll start with this. Cause I'm doing at the basic level is the math library. You can't go wrong with the fact of showing the kids that I can easily just pull up math dot PI and bring up 3.1. I don't even know how far it goes into it. 3.14, something, something, think it's nine or 10 digits. significant. Yeah. I wasn't one of those people, I was some of our kids here, I've memorized 70 something integers of the pie, but I'm not that person, but it's nice to show them that you have these kind of built in mathematic ability. And we just do basic ones again, staying at the small part. I like to have the greatest common denominator, at least common denied the nominator and it brings them back to those fourth grade, fifth grade math problems. And they're just like, Oh, I could have just done that with print math, that GTA GCD and two numbers. Yes. So you don't need to learn math anymore. Just go to the import math library. All those math teachers are in cringing. Sean Tibor: [00:17:08] I do think it gives them another Avenue for that. So there are plenty of students who are just total math geeks who love math and they love doing this. And I'm like, well, you know, you can do a lot of really cool with math, with Python. So it's again, connecting that interest for them. And when they see that there's a lot of these things that are already implemented for them. It's , wow, this is really cool. Matplotlib [00:17:28]my next one is map plot lib related to math. I mean, I just love the idea of visualizing data. And the second we get into lists and lists of numbers, I love showing that pot lib, and then that leads us into multidimensional arrays or at least two dimensional rays where you can have multiple lists of data and plotting them and visualizing them and everything. And. This is something that you can just keep building on and building on and building on. And I think it just gets better and better. The more that you introduce with the source data and the different types of visualization. And then once you show students like, look, you're used to a line graph or a time series or something like that, but now go look at. All of the different visualizations that can be produced with map, plot lib. And they're like, wow, that's amazing. Okay. Now go look at seaborne and now look at Boca and , look at all these other plotting and visualization libraries. They get really excited about it. And just last quarter, I had a few students who went through and they were plotting historical stock data from yFinance and figuring out , Which of these ticker symbols have had the greatest growth rate and here's how to visualize it and everything. It was really cool to see them get to that point with their code. And Matt potluck makes it really powerful for them because they can see it. Kelly Schuster-Paredes: [00:18:38] Yeah, it was really cool. I mean, those are one of those, that's one of those libraries that we use at the beginning, cause I was really hooked on it and I feel bad sometimes for students because I get really hooked on it. And then I'm like a pass on my own pillow now, and now I'm on this library, but it was something that was really cool. And I love the word cloud feature of mat flat lip. So if you haven't seen that, have those English teachers out there to get them into coding and show them a word cloud with mat plot lib, and they don't have to go generate on some random. Advertised website out there.Turtle [00:19:07] Sean Tibor: [00:19:07] Yeah. If you have data and you need to turn it into something with pixels, there's probably a way to do it with Matt potluck. Kelly Schuster-Paredes: [00:19:12] Yeah. Yeah. It wouldn't be a list if we didn't put turtle on there. I mean, we had the whole episode, a whole episode on turtle. I'm not even gonna go talk about it too much, but you know, some people like to put turtle first and teach kids how to code with turtle first. Um, for me, it. Does not work because turtle is easy, but you lose the Python concept sometimes because it is just T4 T back, you know, T right. And they don't really understand what they're doing. They just kind of memorize it. So I like to go through the Python concepts. We go up through lists. And then I use. Turtle to teach functions and teaching functions, making their own functions in sixth grade is pretty remarkable. In three weeks, I have kids making beautiful Mondrian, art, function, , built turtle program , and people joke around thinking that my kids are only doing 20 lines of code, but these little crazy kids are our monsters. They're coding monsters. They're busting out with lots of lines. Sean Tibor: [00:20:13] It was one of those libraries that you can always come back to and have some fun with it. It is just a fun library and for the right students at the right times, it lets them apply something that they learned outside of turtle. Within that space. So yeah, there's a tendency to go back to the, just the sequential T dot forward T dot, right. , very like prescriptive approach to it. But then you also get the students who are like, you know what I'm going to do. I'm going to figure out some of these methods, I'm going to look up the documentation. I'm going to figure out that you can do this and I'm going to do try this thing. I'm going to make some functions and I'm going to organize it. No, maybe I'm going to bring in the random library. I'm going to use math . There's a ton of really cool stuff that they can do once they realize how this works. And I think the way that was really opened up to me was when I saw the, I think it was either math adventures with Python or doing math with Python, those books use turtle as a plotting library to be able to plot data using the X Y coordinate system in internal. It works really well. Kelly Schuster-Paredes: [00:21:10] Yeah. I agree. Sean Tibor: [00:21:12] All right.Bullet Library [00:21:12] My next one is one, that's a favorite and I don't use it all the time, but for some students, depending on what project they're working on, I love to show them bullet. If they have time to sit down and figure it out. Bullet is a library that once you make really nice menus and choices and things like that with command line applications, and it works primarily on Mac and Linux, it doesn't work as well on windows. Okay. But it lets you have multiple choices or check boxes or text input number and put things like that. We start off by showing all the students, basic inputs and then they have to cast it to a data type or make it work the way they want. We use this, for example, with rock paper scissors. I love being able to show them that they can turn it from the top. The student typing and rock or paper scissors, and having to validate that into you can just give it a list of rock, paper, and scissors. It'll give those as the choices and it overturn the move to you. And it's a really simple way of showing how you can use some of these libraries to make your code more robust without adding a lot more code to your project. Bonus - GetPass [00:22:12] Kelly Schuster-Paredes: [00:22:12] a grade and on that same line, just a real quick, when they get past, you showed me that and I always forget it. And I just had to go back and look at it again, because I always try to say passcode and that's a totally different library. I'm not even sure what that one does, but they get past library. Very cool. Works in co-lab again, I'm all about ease. If it works in co-lab it's good. If it works in moods. Good. Um, But it just allows students to change input, forget, pass, and it'll put the little asterix when they go to type rock paper and scissors. So these little things there's like that wow factor that takes about, I dunno, two minutes to teach. Here's a library. Cool, cool. People coded this stuff for us. All we have to do is write, get past that, get past and go for it. And on that note, just as side note, when I'm teaching to the little kids, I don't do import get pass as GP or import get passed as something else, because I find that that confuses them or import turtle as T for me, when I was learning, I like to write the whole, get past that, get pass. I know it's the longer version, but it's just the way for the sixth graders to understand. And then later on, I show them, it's like showing them a shortcut. Here's the nickname. Sean Tibor: [00:23:27] Right. So I liked the ability to , adjust the namespace. I also like showing them the, from this library import just this thing so that they can see that, okay, I'm not going to import everything from a library. I'm just going to import this one thing. It helps simplify my code, but then we also talk about some of the decisions that you make in terms of like, when to do that versus when to import the entire library. The last one on our list here is one of your. Surprise favorites. I would not have picked this as one of your favorite libraries when we first started our journey of learning Python together. But tell us what it is.Regular Expressions? [00:23:59] Kelly Schuster-Paredes: [00:23:59] Oh, my God. It's a Rex Rex. Is that how he is? I always like to say rejects. I don't know, but I, you know, I can't get enough of these stupid little things cause they blows my mind and I'm back doing again. Cause I like to. Read my books halfway and do my Udemy courses halfway, but I'm back with automate the boring stuff with Al in his video, on his a Udemy course. And we'll put the link there. So if you're not on, if you don't have that course, go get it, it's worth it , but he goes through and does all the little simple tricks with the compile, the search and match operator emo. He always uses emo. Match operator. I don't know. He tells me something emo and it does a little quick things of looking up phone numbers, how to look up the area code, but not the phone number, how to look up the phone, the first seven digits without the first three. And it's just so, so cool to see, like using this little bit of foreign information to really get and dig into , Text or messages or string. And it's just magic. I just, I like the magic of it. Sean Tibor: [00:25:08] You've shown it to your students a few times. Like this is something you can do. It still looks like black magic, I think it's just like, wow, what, how does that work even? We're seeing , as our students are getting more and more sophisticated, I think we're going to see more opportunities to use this in our code and in our classroom. Kelly Schuster-Paredes: [00:25:25] Yeah. And again, if you're a teacher in middle school or high school or college, by showing them these tiny little libraries, this allows you to still go on with your concepts. But, Hey, well, why don't you try to use import reg ex import something like this and see if you can update that code while I'm boring you with my lecture, I'm boring you with my code along. What if you try this and that's how we have this extension of ability is because we have kids that come in, sixth grade, never coding. And by the end of that nine weeks there. Oh, I just downloaded visual studio code. Can you help me? I'm like, yeah, I'm not on that right now. I'm still trying to teach the kids how to do lists. Why don't you go check out this library and come back to me? Sean Tibor: [00:26:08] Yeah. Yeah, it's a, it's great to be able to show them and have some of those in your back pocket that you can let them play with and let them figure it out. And it makes them like a little bit more excited about it. I think. Kelly Schuster-Paredes: [00:26:18] Absolutely. Sean Tibor: [00:26:19] So that's the end of our list. We'd love to hear more about lists Kelly Schuster-Paredes: [00:26:22] You don't have one more. That's nine. Sean Tibor: [00:26:23] as nine. Okay. Hold on, hold on, hold on. And we've got to have one more. Um, Time. For real. [00:26:28] Kelly Schuster-Paredes: [00:26:28] time. Time's an easy one. Sean Tibor: [00:26:30] Well, we already have date time. Although, I do like, , showing time dot sleep, right? So introducing pauses. And what I love most about that is not showing them having them find it and go, wait, I can do a pause or I can make it sit for a second. Kelly Schuster-Paredes: [00:26:45] the worst when you're grading the games though. And they put in those time blocks and I'm like, really? I got to wait for this to load. I'm like, go back and hashtag all their time. They have three, two, one, and I'm like, Oh my God, for goodness, anxious, goLibraries We're Not Using [00:27:01] Sean Tibor: [00:27:01] of libraries that I am not introducing on purpose yet, but I would love to like editor tools is an amazing library and having things like cycle and chain and stuff like that are really great. There's a bunch of standard functions that I'm not using like map and reduce and things like that just cause we don't. Quite get there in our course, but if a student needs it, I can show it to them. Once in a while , funk tools is another good one. There's just all kinds of good Kelly Schuster-Paredes: [00:27:25] elections ones, but yeah, not ready to show my sixth and seventh graders, maybe a counter feature. Yeah. You can probably get away with just those basics. But some, I guess that's the things we use a lot and developers are probably like, what about this? And we can go through a list of them, but these are ones that are quick and easy. Show the kids and the documentation's easy to read, easy to understand. So kudos to all those people out there who wrote those libraries. Sean Tibor: [00:27:49] Yeah, they're really great. And we are going to use them, in the classroom. We'll keep digging out new ones too, because it keeps it fresh and interesting for us. And if it's interesting for us, it's interesting for our students. Kelly Schuster-Paredes: [00:27:58] Absolutely.Announcements [00:27:59] Sean Tibor: [00:27:59] Okay. So I think that does it. , we have new merchandise on the teaching Python store. Kelly has been very busy coming up with t-shirts and onesies and mugs and all sorts of stuff. So you can find that at shop dot, teaching python.fm , it takes a few days to get to you, but it helps support the show. And we really appreciate that. A big thank you and shout out to all our Patrion sponsors. We actually got a new one this month Brianna. Sponsored us at the $5 a month level. So thank you for that. We are on Twitter . We are on Facebook. We're on Instagram. I think we have a Pinterest account. You can find us at teaching Python on all of those social media networks. Our primary social media network is always going to be Twitter, where you can find us at teaching Python. You can also send us. Email through our website@teachingpython.fm, or if you really, really want to just send us an email@infoatteachingpython.fm. And we'll look forward to getting back to you. Thank you to all of those people who have sent in messages to us. We have a little bit of a backlog that we're working through, but we're excited to respond to each and every one of you and your mail makes us very happy. So thank you for that. I don't think there's any other announcements other than the innovation Institute is coming up in just a couple of weeks. So Kelly and I are speaking at that and we are looking forward to attending PI con us. We're working on the final approvals to go do that virtually this year, that's coming up in may. We are looking to attend the education summit. So if you're looking into going to that as well, Hookup with us on Twitter, let us know that you're going so that we can watch out for each other. Kelly, is there anything that I'm missing in terms of announcements? Kelly Schuster-Paredes: [00:29:34] I don't think so. Sean Tibor: [00:29:34] All right. Well then for teaching Python, this is Sean Kelly Schuster-Paredes: [00:29:36] This is Kelly signing off.