Episode 47: Deconstructing the List Lesson Sean Tibor: [00:00:00] Hello, and welcome to teaching Python. This is episode 47, deconstructing the list lesson. My name's Sean Tiber. I am a coder who teaches, Kelly Paredes: [00:00:22] And my name is Kelly Schuster Perez. And I'm a teacher who coats. Sean Tibor: [00:00:26] so it's a Sunday morning Kelly. We're recording. I think it's like coffee. Talk with Kelly and Shawn where we're both waking up and ready to talk about lists this week. Kelly Paredes: [00:00:36] Absolutely. And I have ,my Lego cup. Sean Tibor: [00:00:38] I know! I'm a little envious. That's a, that's pretty cool. we went, we wanted to do this week was actually talk about not just lists, but how we teach lists. I think everyone who works with Python. Learns about lists probably within the first, few hours, eight, 10, 12 hours of learning Python. You have this idea of lists, but what we don't really talk about it is how do you teach that? And now that we've done this for a few years and quite a few iterations, I think it's a pretty good place to start with talking about the teaching behind lists and how we go about doing that. Kelly Paredes: [00:01:14] I know, I feel like we get a lot of questions about really what do we do and how do we get the kids to where we are. So I'm really excited about this topic. Sean Tibor: [00:01:21] Yeah, me too. , it's a nice thing that everyone knows how this works. So we're not going to spend a lot of time talking about the actual list in Python. We're going to talk more about how we teach it. Kelly Paredes: [00:01:30] Oh, wait, I can't show off my skills of what I know, like lists methods and lists comprehensions. Sean Tibor: [00:01:35] Okay. We will link to a just on get hub that Kelly will publish of all of her lists. Kelly Paredes: [00:01:43] No, thanks. Okay. Moving on. Wins of the Week [00:01:45] Sean Tibor: [00:01:45] you, you want to show up to that level. Okay. Alright. So let's start the way we always do before we get into teaching lists. Let's talk about the winds of the week and Kelly, I'm gonna make you go first. Cause I still need a few seconds to think about my win this week. Kelly Paredes: [00:01:58] Awesome. I'm going to steal it because you're going to go. I wish I would have had that one. mine's not about coding. I think the real win of the week is that we have made it through our first week and a half of school without, any mental breakdowns. We went virtual. we got a lot of our teachers up and going a lot of conversations with teachers , and, Helping them off the cliff of how do they do virtual learning for a week. And we're about to switch into a, half virtual half in school. Mode and the fact that the teachers are there, they're confident and we're all ready to go as well. And we know what we're doing for the most part. I think that's a huge win on any, anybody's list today. Ha list. And I feel like a little, a lot of teachers out there are feeling this when that we were in it, we're in this 2020. 2021 school year. And we are like every other teacher were Renee ready to survive. And I feel like that's a huge win for me right now. I feel like I can survive whatever, life shoots at us. Sean Tibor: [00:03:04] I agree. I've really been amazed at how you've been helping everyone. get to that point. It's almost like the education therapist for teachers this one Kelly Paredes: [00:03:14] And psychologist. And you too. Sean Tibor: [00:03:17] Yup. And we've divided ended up the work pretty well. So I've been on campus with the teachers who are there. You've been working with all the teachers that are virtual and covering so much ground over zoom. It's pretty amazing how much we've been able to get done this week. we're at the point I was speaking with a kindergarten teacher on campus. Earlier this week and she was asking, was it okay if I, I do this or is it okay if I hold off on my morning meeting for a little while later? And I said, look, we're in waffles for dinner mode. Okay. If you need, this is one of those things where if you need to eat frozen Eggo waffles for dinner, because that's how you get fed, do it. Kelly Paredes: [00:03:53] how did you know? I just bought a whole bunch of box soups to make it through next week. Sean Tibor: [00:03:58] Yup. Yeah. At this point we are, we're just trying to get it done by whatever means possible. And we're ready for that. We've gotten, we've got the tools we need. We've got the training we need. Now we just have to go do it. It is not going to be perfect, but there'll be a really good start and we'll build up from there. Kelly Paredes: [00:04:15] Absolutely agreed. So now that I've, I've set that stage, I think you have that good win because you survived putting up all these cameras for everybody. We have all these cameras, the owl, the meetup, and, Oh my goodness. You've been setting him up. I think that was a huge one, but I'll let you pick your own Sean Tibor: [00:04:33] That was, that was pretty cool. And, and the big breakthrough was setting up the Calendly link so that people could book time with me because the number of requests coming in were pretty intense. So it made it a lot easier for my own workflow. But that's not actually the wind of the week I was going to cover. I'm actually going to steal one of you yours because you put this together and I shamelessly borrowed it. Stole it for my classes as well. But the choice boards that we talked about in our last episode have been working really, really well with our students. I think once they got the idea or the concept down of it, they just put their heads down and went for it. And that ability to give them some choices in what they wanted to learn and the order in which they wanted to learn, it really seemed to make a difference in their level of engagement. And it really made it. Easier for me to manage the client, this room w while everyone was virtual. So yeah, I'm looking forward to our future choice boards. I've got some ideas for how we can apply those in a bunch of different areas. But, we also got a compliment, , from one of the RFS teachers. Who's also a parent who's who said her daughter. Is transformed this year for computer science, the choice board has made. So she's just into it and excited. she told her mom to buzz off because she was, working on our computer science homework at five o'clock at night and she didn't want to be disturbed. So Kelly Paredes: [00:05:48] That's so awesome that the ability to have that agency and to choose what you want to learn. I found it so interesting. I don't know if you looked deeply into some of the outcomes, but, the difference of. Some students. So some students chose all the right, the program activities, and some other students really did the reflection, parts. Both of them were learning. both students type of students were. Digging through the same topics, but some students really liked the reading part and trying to look for their muddy as points and look for, things that , they didn't know where they learned and the others ones, they were just things coded the four different programs. It was so cool. I kinda got a glimpse into that child and how they learn. So it was really interesting. Sean Tibor: [00:06:33] Yeah. It's, it's fascinating. The different ways that students learn, you can find it just by asking them. Okay, which one looks like the easiest thing to tackle next. And the answers were so varied because they'd say. I think this coding, these pie bites are gonna be really easy. I'm gonna go do this. And other different kids would look at the exact same thing and say, Oh, I don't want to do the coding. I'm going to go read this thing or do a puzzle or something else because they're, they learn differently their brains work differently. And being able to give them that choice, lets them feel that sense of confidence in their own learning. That they can accomplish it and they can make it work. So it's something that we're going to use a lot more this year . And it's really gonna make a big difference for the way that students learn. Fails of the Week [00:07:14]So Kelly, I know we've had some pretty big wins and we've been working really hard for them. do you have any fails this week that you like to share the show? Some of that, vulnerability in, in our teaching and our professional lives. Kelly Paredes: [00:07:28] I have a personal one. And, and a student teacher one. so my personal one is I've actually failed on doing any Python coding for about two weeks now. And I feel like personally, I've let myself down and I haven't progressed any, and I'm now I'm back into the basic modes again. And I feel, That I've, overlearned how to do list and variables and data types and basics for sixth graders. I haven't progressed professionally, but that's okay. I think that fail. that imposter syndrome kicks in for me every single time. I fall back to the beginning of six, sixth grade, a Python where I'm like, Oh, I only know this stuff. And I know it really well. So that's like a big fail that I think I go through every beginning of the quarter, which is funny, but I think I'm getting over it a little bit. Sean Tibor: [00:08:19] okay. I have one word that will solve all of this for you, Kelly Paredes: [00:08:22] Okay. Sean Tibor: [00:08:23] reg X. You know how to do ragexe right. You know how to do ragexe you're way beyond the basics. So Kelly Paredes: [00:08:31] Absolutely. But I gotta, I got to sharpen up on my list. Comprehensions there. Sean Tibor: [00:08:36] all right. we'll work on that. Maybe we can talk about that as some of the extension opportunities. for me, the fail of the week is embarrassing, but I broke our camera, the really expensive camera that we got that makes it so much better for students to view the classroom and to feel like they can be there and participate when they're remote. And I left it on a tripod that wasn't quite stable enough. And when I came back the next morning, at some point in the night, It had been tipped over and broke and landed on the lens. So I got to have a very uncomfortable conversation with my boss about, how about we take a moment to learn how the repair and warranty process has worked for our new cameras. so it was all okay. it was something that was not intentional or anything like that, but. we are getting it repaired and I'm also working on a three D printed ring that goes around the lens so that if it falls over again, it hits the ring and not the expensive part. Kelly Paredes: [00:09:31] Isn't that fail forward. How can we, our upstream, we should have thought about that instead of downstream actions here, all these books that I was reading this summer. Sean Tibor: [00:09:40] maybe we'll lead to other things. once I have this part designed, maybe a you'll be able to order it on Amazon soon or something. Kelly Paredes: [00:09:47] Absolutely. We'll put those to the proceeds. I'm just going to claim those. I feel like I deserve some of those proceeds on that. Main Topic [00:09:54] Sean Tibor: [00:09:54] yeah, probably, probably. All right. So we'll, we'll fail forward on that one. but it was definitely an Oh no moment when I saw that. Alright, let's jump into our main topic here. And I think this is, like I said before, I'm at the top of the show. I think this is going to be a really great topic because. Everyone generally knows how lists work. Maybe you're totally an expert and you get it. You've been using them for years. Maybe you actually implemented the lists or something. And if Guido's listening to this, but it's something that, we all have some level of exposure to, but one of the things that we don't necessarily. Do is think about how do we teach that? So how do you know people who are new to lists, learn it in the moment active way and how do we enhance it? They're learning through all the different ways that they can approach it. And the ways that they learn it. Kelly Paredes: [00:10:45] absolutely. I think there's a lot of, good teaching involved. I think sometimes when you're a computer scientist. Or a programmer and not necessarily a teacher, you forget that there's a lot of skills involved with, as a teacher and the planning and the production of presenting a topic that sticks for the kids. And I think that's something that we have, and we were talking about this that we have really honed in on, and we have been able to go through that agile development design process where we've just. Almost not, I'm going to say, because I don't believe in perfection, but, we've got it pretty good. Sean Tibor: [00:11:30] . So I think what we'll do just to give you some structure to the conversation is we're going to go through this a few different areas. We're going to start with. The goals for the topic. What do we want the students to learn? Then we're going to talk about how we introduce that to students. So how do we introduce this concept and set the stage for why we're learning about lists, then we'll show some examples and demonstration ideas that you can use in your classroom. We're then going to talk about the practical applications of lists. So how. Do you think about lists in your own coding and how we teach that to students? So how we get them to think about when and where they can use lists, we're going to talk about synthesis opportunities, so how they can combine lists with other topics in Python, because that ability to synthesize demonstrates a higher level of learning and understanding than merely being able to recall the information. And then lastly, we're going to show a little bit about how to make it creative and fun. And make it come alive for students. So a, that's our roadmap for the conversation today, so that you have a sense of where we're going with this, but by the end of this episode, what we want you to have is an understanding of what goes into teaching a lesson about lists and the thought process that we go through and. Kelly and I do this in a organic way. We do this conversationally where we're talking about different parts of this, and we touch on lots of different elements of the lesson at each time. But this gives us, a little bit more structure for our conversation. And we'll share this structure as part of our show notes. Kelly Paredes: [00:12:59] that's a really good outline. And I like how, this is laid out for everyone because it starts on something that, I truly believe in as a, is that backwards by design process. And I liked how our episode's going to be laid out for you. And I'm hoping that we can, share this. this is our first time doing this, sharing our secrets. Sean Tibor: [00:13:18] Yeah. Yeah. Kelly Paredes: [00:13:20] a little bit nerve wracking. Sean Tibor: [00:13:22] it is a little bit different. you're getting a peek behind the curtain of how we think about teaching and you can use this approach for any topic in Python, outside of Python. the things that we're going to share today are definitely generalized across a lot of different areas, but we'll use lists as the example for how we teach it. Kelly Paredes: [00:13:41] Yeah, and I want to set the stage for everyone. if you're not familiar with our structure, we do teach sixth, seventh, and eighth. So this is a development of the students' cognitive skills over a three year span of a three year course. So, sixth grade. Newbies they've come in. Maybe they know scratch. Backwards by Design [00:13:59] Maybe some kids have done Python. Maybe they've worked with microbits with make code and we're sending them off at the end of eighth grade, ready to go into AP comp PSI. so it is a development over three years. And in theory, it could be changed into a longer program. I'm not really sure how that would translate for some people that do this as a year, but this is a, a rapid iteration for us over three years. Sean Tibor: [00:14:25] Yup. So we always start there there's lessons and each unit with, what do we want the kids to know? What do we want our learners to have at the end of this unit? Or this lesson. So we start with that backwards by design. So we go through that and look at where we're coming from. So what, where are they starting? And then where do we want them to be? And then we can look at the space in between and figure out how to best get them there. It's a little bit like roadmapping. for them setting out some guideposts and we are the important distinction here is that we are not setting only one path for the students. We want to lay out several different paths that they can follow and choose from in order to get to that same goal at the end, where they have, the understanding of how things work. Kelly Paredes: [00:15:10] Absolutely it's that we do have this kind of outcome, this assessment first, sometimes starting with the younger age at the sixth grade age, it's a very, Finite with a little bit of student agency choice, but it's a pretty much finite outcome. Most of the kids are going to produce the same type of lists or the same methods of the list, but , it's working on this. Where do I want the kids to be? And what type of, outcome do I want to see in their product? So that's where we mean by backwards by design, we don't go out and say my first lesson, my second lesson, my third lesson, we say here, the end of you say that unit, this list unit, the kids are going to be at this point, they should be able to produce, this act, this action. we'll talk about our actions later, but it's that set focus. And then from there, we back up. And we present the learning opportunity. Sean Tibor: [00:16:15] this can also have some differentiation. And it also, because like we, some students are starting at a more advanced position, so they may want to end at a more advanced position as well. So we will often do, here are the minimum expectations. And then here are, intermediate and advanced goals that they can achieve as well. So examples of this with the list, it might be, meeting expectations might be the ability to create a list and to be able to add and remove items from the list. Intermediate expectations might be that they're able to use a adeptly use string into indexes or indices to be able to find items in the West. And then, and maybe use some of the different methods like sorted and sort to be able to sort the almonds in the list. And then advanced usage might be things like string slicing or being able to, do a list comprehension. So we can put that differentiation in to our goals to be able to see, here are the things the different students can do and not every student is going to get to the advanced level, but if we can get 95% of them to that meets expectations level where they're getting that minimum expectations. We've succeeded with the lesson. And the next time our goal is to get to 96% or 97% of the students. Kelly Paredes: [00:17:27] Absolutely. And in that progression of learning, we have this kind of focused, I I'm going to use the Bloom's teknon taxonomy. Cause we talk about that, but this focus, taxonomy, this learning taxonomy of what the kids are going to go through. For example at the, at the younger age, in sixth grade, I really focused on vocabulary. And I love that the opportunity to just keep saying the words and quizzing them on the words and not necessarily the product, but that comes out after my. My desired intention for their learning. But that, that idea, if I say something, if I say a vocabulary where they're gonna trigger this picture in their heads, Sean Tibor: [00:18:14] So that's like basic recall, right? Like that they, when they hear the word, they understand the meaning of it in some way, shape or form. Kelly Paredes: [00:18:22] exactly. And able to communicate their understanding so they can actually pick up something specific and communicate where they have that disconnect. Sean Tibor: [00:18:31] the other thing that we do with this before we move on to the introductions and how we introduce this, the other thing that we need to. do is establish what they need to know before we start this. So what's the prerequisite knowledge that we can build from, in order to make this lesson happen. So in the case of lists, that would be like, they have to have a fundamental understanding of data types and how to assign variables and variables in general. But they, and they. It would be helpful if they've done some things with four loops before, because that's a great way to synthesize knowledge later between the list and the four loops, but you can differentiate and create this. This list of here are the things that they need to know in order to do this. Here are here's knowledge. That would be nice to have because it will help accelerate or improve their acquisition of the information. Kelly Paredes: [00:19:18] absolutely. And I'm gonna, I'm going to throw you for a loop. I'm gonna move up a number three to number one, on our outline. Fine. But I think it's very important that we give some solid foundation for our listeners because it's hard to picture what we're really talking about. And so I'll set the example with sixth grade. When we go in to teaching this lesson, my outcome in mind is that the kids are going to make some sort of invite app. Whether it's, for a 12th grade birthday, a 25th wedding anniversary for their parents, it's some sort of invite, think about a wedding invite where you have to choose beef or chicken, or are you going to the reception or are you going only to the wedding? And I think about how this stuff can be. Stored in a list and how choices can be given to the user. And I set that stage for the students because that is where I want them to be. That's my desired outcome, my desired assessment, because I know by doing this invite app of whatever they choose to do that they're going to have to make some lists. I can backwards up. And that's what you were saying about what we want them to know, our desired assessment evidence. What is that evidence that's that we're going to look for that make sure that our students have learnt the topic at hand. Is that kind of set the stage a little bit? Setting Realistic Expectations [00:20:46] Sean Tibor: [00:20:46] That that helps. And I think that the key there is to set your expectations, to be realistic, set really realistic expectations for what they should be doing. And this is often hard, the more knowledge that you have yourself, for example, one of the traps that I fall into is, a student will demonstrate the concept that they get it. They understand it, but it may not be the most Python implementation. And so I'll, I'll go in and say, no, but if you format it this way, or if you do this or here's a better way to do that. Okay. And sometimes that can make it less, understandable for them or less, attainable, if there's, if we're all always pushing them to the next level or something, that's more pathetic. So sometimes you have to put that behind you and really focused on, did they grasp the content, except are they going through, back to Bloom's taxonomy? Are they demonstrating, that they've synthesized it with other information? Are they demonstrating that they can share it with others or teach others? Are they being creative with it and less so about? Are they being pathetic and the way that they do it. Kelly Paredes: [00:21:45] And I'm sure a bunch of developers are going to cringe both about this, but there's something beautiful about ugly code from a sixth grader. I, I, it's something you can just see, you can look into this code and you can almost. See the process of their thinking and there's something so beautiful for me when I'm looking at someone's code and they're like, I have this error and I'm okay. Reading, it's like a novel and you read this, this code and you're like, Oh my gosh, that's what they were trying to do. That's so cute. And so there's something really beautiful for me about ugly code and the fact that it's not tidy and it's not. Necessarily following pep eight. I mean, we're talking about 11 and 12 year olds. So every developer who's cringing about this moment saying, Oh no, we need to follow the rules and poor Guido. Sean Tibor: [00:22:35] Actually I'm sure Guido would be the first person to agree that Kelly Paredes: [00:22:38] Good, Sean Tibor: [00:22:39] beautiful and ugly code. So I wouldn't, I wouldn't worry too much about it. I mean, he might ask for some type hinting, but we'll get there, with the sixth graders now he's been doing a lot of amazing work on, on improving the typing abilities of Python lately. Introducing the List Concept [00:22:51] So, anyways, I think that that is a good kind of establishment of. The goals for this area, as well as setting our own realistic expectations for what we want the students to achieve. So that'll take us next into now, how do we introduce this concept? So we have to have a starting point for the students. How do we introduce the list in the best way possible so that as many students can get into it, as possible at the beginning, Kelly Paredes: [00:23:17] Yeah. It's like the planning of those learning experiences. What are, what are the instruction that we need in order to get them to our end result? Always keeping that in mind, our end result is X. How are, how do we go through ABCD all the way through X, Y, and Z? what are those learning experiences that are going to help build the knowledge, build the understanding, and allow the students to apply and use and really demonstrate their learning. Sean Tibor: [00:23:47] that's right. That's right. So I always start this part of it by laying out a problem, laying out some sort of issue with their fundamental knowledge that they have already, that. Could, maybe it's been working for them for awhile, but we show them this problem and end with lists. I always start with what happens if you have a lot of different variables, right? It's almost like that code smell. Like if you find yourself saying student name one student named two student named three. that becomes really cumbersome because you start to run out, okay. My own student named 343 or a student named 344, that scalability is where lists are really helpful. And so I always laid that out as the first problem with using the knowledge we've already had before and how lists can potentially help us solve that. Kelly Paredes: [00:24:38] Yeah, and I always do it the similar, but in a more. 11 year old way. I go, wow. I need to make a list of my favorite students to that. And by saying favorite students, that's this, this is just an example of how, of how I teach with my silliness by saying favorite students. All of a sudden the kids are like what? We have to make a list. You're going to make a list of us and their wait for their name to be called. And that's a little tidbit. If you're ever teaching kids. Always use their names. So Sean will go student one and then he'll fill in at that name and the kids start looking for, for, their names on that list. So. Sean Tibor: [00:25:18] When students can see themselves in their code, in whatever way, it becomes immediately relevant and much more interesting to them. So that's always something that. That works well in the classroom, as well as if you're teaching at asynchronously, give them opportunities to make it their own and make it personal and let them see themselves in their code. And they'll be far more engaged on it. Kelly Paredes: [00:25:39] absolutely. And when you have so many favorite students, you have a huge amount of information to put into a lesson. That's always a good thing to Sean Tibor: [00:25:46] Is that, is that your secret is that they're all your favorite students? Kelly. Kelly Paredes: [00:25:49] Yes. I tell them they're all my favorite students, at least once. During the quarter, Sean Tibor: [00:25:54] Good, good. Kelly Paredes: [00:25:55] at least once. Sean Tibor: [00:25:57] So, so I also, show this solution is not just lists, but I talk about how programmers use something called data structures. To organize their data so that we can organize the information that we have into ways that we can use it. And that leads us right into a vocabulary section. And, for sixth graders, it might be introducing that vocabulary for my seventh and eighth graders. Most of the time I'm reviewing that vocabulary with them. Like re-establishing that knowledge and bringing it back to the forefront for them, but it really is important at the beginning to establish that common vocabulary for the lesson. So that. It makes it more efficient. It makes sure that everyone is on the same page and that they can have these tools to communicate to them to one another. And to me about what they're trying to accomplish. Kelly Paredes: [00:26:44] Yeah. And when I was learning Python, I can't remember exactly which, instruct or videos did this, but I really liked the concept of where they put comments. right before every single line of code. So it's something that I do a lot for this studio. So I'm constantly putting definitions and I'm constantly reviewing, how do we make lists again? What are the things what's that key that we have to use in order to make a list? How do you know it's a string? What makes it a string? What is this thing again? Is this an integer? Oh, look, we can put enters and in our list and I constantly. Writing and saying those vocabulary words. So there are a lot in my code. I always tell them, look, we just wrote, 60 lines of code where 30 lines of it are comments, and it's just getting them to you use those keys, use those comment features and having some notes. I guided notes for them, and it's such a nice feeling. Cause when they go back and I can give them a challenge, I say, go back and look at your code, your notes, your codes, and how can you solve this challenge based on the notes. Sean Tibor: [00:27:54] yeah, it works. It works really well. Especially once you reinforce that over and over again. we think about where we want them to be and where we want them to go. This is where even with the younger students, the ones that are less experienced, I really want to make sure that they have a, an understanding of real vocabulary words. So I'm not, making things up. I'm not trying to make. more accessible words for them. So we'll talk about how lists are ordered, that they have an order to them versus unordered data structures. We'll talk about lists being mutable versus immutable. So we want to use the right vocabulary in an appropriate way for the students so that when they progress on to those advanced computer science, Classes, if they see mutable data structure or a sequence, they at least will recognize it. That is a word that they know, even if they have to go back and look it up again, to remember what it means. Kelly Paredes: [00:28:49] Absolutely. And I think one of those things about ordered list is, is probably the hardest for a sixth grader to understand yeah. That Alyssa that's, ABCD is not necessarily equal to a, CB a D list. And it was something that kids have a hard time to understand. So I always show them because I have so many lists on paper. Yes. I'm a paper person. I have all these lists and I show them, here's my list on my PostIt. And here's my list in my book. And look, they've got the same things in it, but they're not in the same order. And they're two different types of lists and trying to give them these visuals. And I hold up the paper and I hold up my book and I show them, look, there are two lists. They have the same things on there, but they're not the same list. And that those visuals and those opportunities , for the students to see something that's not necessarily code and to make this picture in their head, it helps to connect that idea. Giving Examples and Demonstrations [00:29:46] Sean Tibor: [00:29:46] Yeah, leads into another thing. That's really important in our next section too, in this is what examples and demonstrations are we going to give for this concept so that they can start to see how this works. And this is where we always start with real examples of real world lists. Lists are not unique to Python or even programming lists have been around for a very, very long time in different forms. And so when we can show them, here's a grocery list or here's a invite list for your birthday party or something along those lines that shows them, here are the things that you are already familiar with. That have this concept behind them. It really builds their confidence that, Oh, this is something I know this is not actually that new. And so if I know it in the real world, it won't be that hard to learn it in Python. Kelly Paredes: [00:30:34] Absolutely. changing those things, adding in some methods along the way, sorting the list and counting the list. It's always this fun thing. So showing them an outcome in the sixth and seventh grade, where if I can take the length of the list, Oh, there are. 60 kids. Wait a minute. I've I've missed somebody who did I miss and, and doing an alphabetical order to find my favorite student. And I always put the word all in there. And so that's the first one that comes up in the list and I'm like, Oh, all of my students, again, silliness, sorry, things like that. That, it's, it's a real world. Yeah. I know. The grocery list is, is something that's very common. we've seen them. But, you throw in some funny things that they like, and what is their favorite candy bar? I don't know. What do they like at the, at the store double stuff? Oreos seems to be a winner for me, at least. Sean Tibor: [00:31:24] it gives them, it helps. This is the important concept. It's transference of knowledge. We're not creating new knowledge for them. We're transferring it from one domain to the other. So we're transferring something they already know about how lists work in the real world and transferring that to their domain of Python knowledge. So it's always easier and stronger for students to learn when they can transfer rather than when they have to create from scratch. Kelly Paredes: [00:31:48] Yeah. One of those things was those games. I always get lost on the games, I think you helped me out with I'm like, what game is that? And you're like, Oh, that's that game? Sean Tibor: [00:31:58] they can transfer this. I demonstrate that transfer. It's something I do explicitly. So I will show here's a grocery list that's handwritten, and then I'll create that same grocery list in Python so that they can see. Here's the way you do it. It's right here. The code. It's not that much different than what you've already seen. and when I'm, as I'm going through and doing that, I maybe don't use as many comments as you do, but I do spend a lot of time going through how do we know it's a list? Oh, we see these square brackets. how do we know each element in the West? Okay. They're comma separated. So I want them to spend some time recognizing and building that understanding of here's where the. Lists are created. Here's how they look, here's how to recognize them. And then them in the future, when you look at your own code or other people's code, Kelly Paredes: [00:32:43] Yeah. And thinking about our progression into eighth grade from six to eighth, things like lists within lists so that, later on we can make our, our card deck in seventh grade and it's talking about, so I have a list of. My courses and I'll do this with them. Here's math, science, English, social studies, whatever. And inside each course is a list of things I have to do for homework. So it's this list of list and start building on that structure and that list. Necessarily only contain strings and editors and floats. So telling them that list can contain more things helps set that stage and that progression of learning, especially when they want to make their social. And they're making ice cream flavors and toppings and lists, it's just really and scoops. They love doing scoops. And how many scoops do you want for your ice cream? So Let's Get Practical with Lists [00:33:35] Sean Tibor: [00:33:35] I've gotten a lot of, a lot of mileage out of using ice cream. As my example, with functions, with methods, with, all sorts of different, concepts in Python, ice cream seems to be the universal, constant for everyone who wants to transfer knowledge. So. so after the demonstrations, then we really start to get into practical applications. How do you get hands on with this? What can you do? so that gets into some of the things like making an ice cream social, right? How could you organize all this information for your ice cream social? So it's in lists instead of individual variables. and so we, this is a great place where we talk about, using lists for all different sizes of information, right? So you might have a small list. For ice cream flavors where you want to limit the choices so that, I have six different flavors of ice cream. I'm going to put that in a list. And if someone asks for something that's not in the list, then I can, you can't do that. It's an error. So it gives us the ability to work with them. The smallest. Then we talk about, say, medium-sized lists like, you can use the list for all the students in the school. if you wanted to list all the student names, or if you wanted to go to really large list, like maybe you might leave a weather sensor outside. And look at all the weather data every few seconds for the last week, that might be thousands of pieces of data in a list that you could organize and then do some cool stuff with it. So we talk about different sizes of lists, so they can start to wrap their mind around the scalability of this. we talk a little bit about, when not to use a list, so a list isn't for everything. Kelly, you do some cool stuff with us about like how you get them to go into dictionaries later, where. , you have them thinking about when would I use a list versus a dictionary? Kelly Paredes: [00:35:14] Yeah, just go the tick tock videos, but you know, we don't want to share all my secrets here, something the best tick-tock videos. And I learn a lot about what goes on. Yeah, no, one of the things that come came out, during our online learning and the use of zoom and sharing out is the idea that kids can flash their code up on a screen real quick and giving that opportunity. For, for the kids to showcase what they've done or what they want to do. I've really allows us to pull out those practical applications and say stuff like, Oh, if you combine this and you make that one long list, or if you do this, you can enumerate through a list or, Mo that might not necessarily be a good use of lists. Lists Are Ordered. Content Presentation is Not [00:36:02] That's for sure. Dictionaries. And we're going to talk about that later, but I'm going to show some of you, if you want. What a dictionary is, and I'm really going into those spaces. so it's really weird because each year. I teach different methods in different orders, because it just depends on what the student wants to do with their app and who I call on first. So it's a kind of a fun thing. And I have a checklist of things that I've covered and at the end of the week or whatever I go through and I'm like, Oh yeah, I covered pop. I've covered, remove, I've covered a pen. I've covered sort. I've covered indexes. Oh yeah, that's great. But I may do index indices first. And length, last, and that just depends on what that code was that the kids wanted to do. And I think that's the benefit of how we teach is it's very it's fluid, but it's, it's very dependent on what the students want to do. And I love that about us. Sean Tibor: [00:37:03] So to make, so to make a, to extend this learning, Or the conversation, we do not put our topics in an ordered list, right? Like everything is unordered, it's a set. This is probably the Kelly Paredes: [00:37:15] order. I don't know what that is. Sean Tibor: [00:37:17] I mean, it really helps it become more fluid and organic, to the learning process when you can. separate yourself from the order of the way things should be taught. So you have some basics that, yeah, it should be generally first and you have some more advanced topics that should be generally save for later. But. You can be flexible and fluid with how you teach that. So as we go through these practical applications, as we do the ice cream social, or we do my other favorite is the class schedule. So they make their own class schedule using a list. We start to get into a lot of these advanced topics. So we will cover things like list manipulation with. A pen, pop, remove, insert we'll cover list, indices, things that are confusing for students at first. Like, listen to this, you as being zero indexed is a really tough thing for them to grasp at first, but once they get the hang of it, It, it makes sense. And they can reapply it in a lot of other areas. And that's something that goes into many other programming languages. So it is something that they may get their first exposure here, but they will use it over and over in the future. negative indices also tend to be a bit confusing. but then the other thing, when we get into these practical applications that I think really helps. Is I use the debugger and mew a lot. I also use Python tutor. So if you haven't seen Python tutor before we'll put links to this, but Python tutor is a way to visualize step-by-step the execution of Python code, and it basically ends up being an online debugger, but you can just paste in whatever code you want and then step through it one line at a time. We'll visualize the list for you. So it'll show you, you have a variable in the global frame named. students, favorite students, maybe. And then it has a little arrow that shows the list being laid out on screen. So you can see the order of things. And as you step through your code and you pop things or you sorted or whatever you do, you can see how that list changes over time. So it works really, really well for students to be able to see this and be visual with the list because otherwise it ends up being all in their head and sometimes it's a little hard to comprehend. Kelly Paredes: [00:39:23] Absolutely. And, and within those practical applications, I have to throw out the, the challenges we had to change the name. This year, thanks to a code challenges, but we have class challenges and every, every single class period I have, especially with my sixth graders, because I really want to do a lot of assessments, a lot of quick formative assessments to make sure that I'm checking knowledge. but I, I use this opportunity for the kids to, to write out. The basics. So going through like the debugger method, but I, I take out a little, a little snippet, five questions, what's the definition. How do we write a list? write a list and, and remember the last item or write a little, yes. and count, remove the third item in this list. So little things that. That you would do as you're teaching, but instead I do it as a challenge, a problem. So even if they don't know it, they can try to process and they'll see it. And that struggle , of applying that practical information , in a problem statement, Sean Tibor: [00:40:34] Yeah. And that, that gets into another part of this is like we set out those goals at the beginning. What do we want them to learn? we need to ask how do we know they learned it . And I think many of us grew up , in a system or grew up in an educational model where the assessments were all cumulative. It was the big fat test at the end. And you stressed out about it and you regurgitated knowledge onto a Scantron form to be able to demonstrate that you knew all of the information for the unit. But what we've found, at least in our experience has been that that just demonstrates recall. That just demonstrates that you can recall the information that you were taught. It doesn't really demonstrate any of those deeper levels of understanding. So for us to use these, frequent periodic assessments, the, the formative assessments that demonstrate knowledge in at a variety of levels, not just the recall, but the application, the synthesis with other ideas. At at least those levels of understanding show a much deeper or acquisition of skills, by the end of the unit. So we want to be able to assess that frequently and throughout the lesson, not as one big cumulative test at the end that maybe has limited use. Kelly Paredes: [00:41:42] Yeah. And so like the Python tip I always give is, for. I tweeted this out, I think is repeating it in concepts. It's that chunking it formation over time, that process and how their minds eventually taken take in is all about this chunking numbers, repeating and, and assessing, and low state testing. When the, when the brain is trying to make sense out of something just deliberately practicing in deepening that. That chunk of knowledge is going to, I'm not a neuroscientist, but I do love reading about it. It's just going to a large, that, that neuron, that synopsis. Oh, there's a list. And hopefully when they, when they see mom or dad making a list of the items that they want to buy off of Amazon, that they're like, Oh, maybe I can write that in Python. And I, I think what mr. Tibor always says, I think there's a Python code for that. I'm sure you can do that in Python. And so I say that to them of. repeating those practices. When you see those, think about what that would be like in Python. Think about how you would write that code. Synthesizing Knowledge about Lists [00:42:45]Sean Tibor: [00:42:45] And I think that really gets us into, the next part of our conversation or the next part of our lesson is. Opportunities to synthesize. according to Bloom's taxonomy, right? The ability to synthesize information or demonstrate that synthesis with other concepts is a more advanced, , demonstration of knowledge, right? It's a higher level of learning. , the synthesis opportunities that I'm typically looking for include, I love using lists with, for loops, because I think it's really powerful to be able to say, now you've got this list of information. What do you do with it? I want to run some bit of code for on every item in that list that iterative, let me go through every item. And I know that I'm spoiling students because it's. So easy to do that in Python to say for every item in this list, do this code. when they, I go to other languages are going to be banging their head against the wall, but in Python, it's a really fantastic concept. And it's such a great synthesis opportunity. I think lists icing is great because they can. Add this additional piece of knowledge, to slice a list and think about how that works, for them to be able to get pieces of lists, right? So it's like more advanced knowledge and it helps them think about, starts and ends and order and things like that are , pretty impressive, in the language. And then. this is also where we start to look at, lists of lists, combining it with other data structures. When we get to dictionaries, being able to do a dictionary of lists or lists of dictionaries is really helpful, for them to be able to see how this all works together, in a really, cool way. Kelly Paredes: [00:44:17] And going on the emotional social SEL, all the little acronyms that they give for this, but always taken into account during the synthesis prop. Synthesis period is reminding them that it takes time. It takes time to learn. It takes time to take in this new knowledge. And I try to remind them all the time that there's going to be times when , learning Python makes you feel like you're in a foreign country like Russia or Germany, because most of them take Spanish or French or Chinese. when you're in Russia or Germany and nobody speaks English, you're going to feel like nothing makes sense. You don't even know where the bathroom is and it's okay. And that all of these words and all these things that we can do, It's just your brain trying to process it. It's trying to restructure how you think. And it goes back to the idea of it's so nice to see their code because I can see them trying to process, trying to make that learning come out. And make sense of all these things that they want to do with the code, but they don't necessarily know how so always looking back at that opportunity to help them synthesize, to remind them that this overwhelming feeling is just them processing. All these great methods of, using list , and here's how you look up the information. And here's where I go. And here's, here are the people that I like to look at and the websites that I felt were good, I always throw back to scent decks and I geeks for geeks , and I show them always the first introductory page of real Python, , those parts where they can. Get the knowledge, get the understanding, get the application. And by getting those things start to synthesize more of the information. Sean Tibor: [00:46:07] And, there are some really great resource. Versus for this, like Eric Mathis has a bunch of cheat sheets that are really clear, crisp examples of how to use lists and list methods. the Python flashcards that he came up with too are really great. it's a really good way , of making it tactile, for students. So they pick it up and they can hold it and they can feel it. we can't really do that at the Kelly Paredes: [00:46:27] Virtually, but we did do it. We did Eric Mathis. We did use his little flashcards in the ed puzzle. And if you don't know, ed puzzle, ed puzzle gives you an opportunity to quiz during a video where again, you're asking them to synthesize what was just given what knowledge was there. And most of the time we do. Like an application and write out a list or, or write out, an index, and to see, and how do you search for an item within a list? So things like that Keeping it Fun and Creative [00:46:54] Sean Tibor: [00:46:54] Yeah, it works. It works really well. So, then we, we also have to make this fun, right? Like it has to be something, I mean, I would say it's Kelly Paredes: [00:47:02] being in our classroom is fun. we don't have to make it fun. It's so much fun. Sean Tibor: [00:47:06] Most most of the time. you could argue, Oh yeah, we're working with, 10, 11, 12 year olds, 13 year old kids. Like it has to be fun for them to know it, it doesn't always have to be fun. Sometimes they just want it to be practical and useful to them like that. They see the value in that. But also if you're 25, 45, 55 years old, why not have fun with it? Like fun helps the learning. Stick. And so some things that we've done that make lists more fun and more interesting beyond just the, the, we've already talked about the. Ice cream, social. We've talked about the favorite students. We're talking about the things about making them see themselves in the code. The feedback that we get from students, the list, examples of the programs that they liked the most so far have been really the class schedule, where they create their own class schedule and use a list to organize it. And then when they do rock paper scissors, There's something about having rock paper and scissors in a list, and then using random dot choice to be able to get the computers move from that list seems to really click for them in terms of the usefulness of this. Like, this is really fun because now it's not predictable. It's not something that I wrote. The computer is doing something at random and that makes it more interesting. So that. Randomness element in your code can be really cool. So if you're like looking for something else to synthesize with it, to make it fun, bring random dot choice into it and find a program or a game or something that they can use to make it unpredictable. And that makes it more interesting. Kelly Paredes: [00:48:34] Yeah, and I liked the, which one does not belong kind of thing, Mickey, Donald goofy Kermit, and have them sort out and try to pop out , the item in the list that doesn't belong, silly, things like that. I don't use student names during this time, pop out the kid that I really don't want to teach right today, but sometimes pop up the kid that's talking too much. there's always one of those that I know I can pick on , and , they love it cause they get extra attention, but trying to have them find the silliness, the in the code or, Which yeah. Which I keep thinking of Sesame street, where they had those four squares. And I always do that. which one thing is not like the other, I'm not gonna say Sean Tibor: [00:49:13] Yeah. Kelly Paredes: [00:49:13] Cause, but yeah. Things like that. Fun, silly things. Sean Tibor: [00:49:17] And letting them create their own too. So giving them the room to be in the space in your schedule to say, okay, we've done this now. Either take something you've learned already and make it better, or try to make something new and different. And so we've seen a lot of like magic eight ball type generators, not the classic massive magic eight ball, but they can make their own. And they find that really interesting and the ability to add new options to the list. Is pretty magical for them too. It was like, Oh, I could just add this one thing to the list. And now that's in the mix for the answers from the magic eight ball. So Kelly Paredes: [00:49:48] And Madlibs Madlib seemed to be really popular with sixth graders. The fact that they can do a list of adjectives and then pop them in to a story. And some of the stories are quite, unique with those young minds, but they're, so I'm just going to leave it like that. They're quite unique. They've got some creative, some huge creative minds. They're in sixth grade and it's fun. How do we know they learned it? [00:50:11] Sean Tibor: [00:50:11] just remember to keep it fun, remember to have some fun with it yourself, and that will become contagious. So I know we spoke about this a little bit earlier, but, just to touch on it at the end here, how do we know that they learned it? Formative assessments, frequent assessments of how they're doing challenges, make sure that they're demonstrating, not just the ability to recall the information, but that they know how to use it. They know how to apply it. They know how to synthesize it without their information. get them to teach it to one another. help each other with, debugging their programs. Those are all great demonstrations of the knowledge that they've acquired. And you can match that against the goals that you set out at the beginning to be able to see where they land. Recap and Review [00:50:48] So that kind of wraps up that, that the incompletes, the lesson is we set out something for them to learn. We set our goals, we introduced it to them. We gave them. Examples of how that works. We came up with practical applications that are hands on with them, that they can use it and try it and experiment with it and fail at it and fix it and, encounter all those errors that you get with lists so that they know how to handle them in the future. We give them opportunities to synthesize the information and then. We make, and we try to make it fun and creative, give them an opportunity to have fun with it and be creative. And then finally we make sure that we, we have, we've checked to make sure that they understand and that they've learned what we set out at the beginning. So that gives us like that full spectrum of learning from start to finish, we start with the end in mind. And then we verify at the end that we actually got there. So a lot of times, I've done this in the past before I set out the goal, I do the lesson. And then I forget to check that we actually got there. So we might they've missed something. We might've, left something on the table that we could affect. So make sure that you completely close that loop by checking throughout and reviewing at the end to be able to say, did we actually get there? Kelly Paredes: [00:52:02] And I always wanted to keep in mind again, social, emotional side. I'm building up the idea that it's okay to fail. It's persistence is huge. I work on persistence. And what does it mean to be persistent and persevere? And I work on that a lot in the beginning of the sixth grade years and telling them that, listen, it's not really about the code. I, I'm not really teaching you about the code, but I'm teaching you skills that are going to help you throughout your, your life. And, big picture. What's going to go on through high school in eighth grade and college and your career. So always keeping in mind how to enter weave in the social media, emotional and keep it in mind. Also the brain science behind learning, what's that neuroscience, the, the ability to chunk information using these, what's called a memory palace technique. Where were you when you make a list? How did you write a list? how did you find an item in the list? Did you use your finger down, down a piece of paper in order to scan a list? Having them create this concept image, this chunking image, this repeating and practicing and synthesizing, always using those things within your lessons will help those concepts stick. And you're not just focusing in on the code. And when you, when you take the pressure away from just the code, you're going to have a better outcome of learning from your students. Sean Tibor: [00:53:32] Yeah, I agree. And so that, and it's also important. And throughout that process is to also recognize praise, make sure that they're getting the feedback positive and constructive, to help them understand that they're on the right track or that they're achieving what they need to achieve. And because that, again goes back to that brain science, the dopamine hit of positive feedback when you're doing something right in a small way, getting that constant. like, yes, this is right. Yes, this is right. The feedback rush of I'm on the right track helps them stay there and it helps train their brains to find the things that make incremental progress for them in their own learning. Importance of Feedback [00:54:12] Kelly Paredes: [00:54:12] absolutely. It's one of the things that, has been proven to increase learning and understanding is that feedback loop. Constant consistent, repetitive, not repetitive, but, repeating the feedback opportunity for the kids. It's a lot of work on a teacher end, but if you keep the assessment small and the goals small each day, that feedback loop is something that is attainable for you as a teacher. Sean Tibor: [00:54:39] That's right. it should be something that you can manage. So if it means that you give 30 seconds of commentary to a student each day across your 15 students, you're giving seven or eight minutes of feedback. So that gives you some, some benchmarks for whether you're doing enough. and right now there's so much going on, even if it's just a few seconds or a few sentences of feedback for a student, it can go a long way, especially when they're not an always in front of us. And don't always get that, face to face, contact and feedback. Kelly Paredes: [00:55:11] And a little tidbit because I know Sean just had 15 students. That's. Due to COVID. So I want to, I understand there are people, teachers out there who do not have the benefit of such a small class. So one of the opportunities that you can use me having, I have taught a class of 38 before in my life. Sean's never had to have, but, making there's always, there were always those. errors or pieces of feedback that are, mom and around your students. So making a short video of an example where a student can sort a list or where a student can loop through a list. Whenever you see that, then you have this video clip of generic feedback and even generic feedback CA it can be helpful. if Sean Tibor: [00:56:00] As long as it's relevant. Kelly Paredes: [00:56:01] as long as it's relevant, So, if you cannot give that specific feedback to every student, make sure you give some sort of generic feedback. That answers a specific question. That makes sense. Sean Tibor: [00:56:15] So Kelly, , I'm looking at the clock here and I I'm shocked here. We've been talking about how to teach about lists for an hour now, which is amazing. We've really. This is something that we get into. This is one of the reasons why we teach something as simple and as complex as a list go. It takes a lot of thought and a lot of practice to teach it effectively. So I know that there are a lot of people out there who have been teaching this for longer than we have teaching to different groups of students. So, adult, student, adult learners, teaching asynchronously and not interactively. so there's a lot of different methods out there and a lot of different ideas for how to do this. We've covered the things that work for us when we're working with students in a classroom or remotely. so there are probably other ideas out there. So. What works right. Share with us the tips. And we'll share them back out with the, with our listeners. What tips and tricks have you found, or what approaches do you take to teaching a concept in Python and what seems to work well? Where to Contact Us [00:57:14] So there's a few places where you can send that into us. You can always follow us on Twitter and engage with us. There were at teaching Python for our show handle, but I'm at SM Tiber and Kelly's at Kelly Perez. On Twitter. So you can always, interact with us there. We love having those conversations. you can also, if you're not using Twitter, you can always reach out to us through the website. If you have a longer idea to share, there's a contact form there. And we love getting that listener feedback. our website is teaching python.fm, and there's a contact us form. On that page. yeah. one thing we always forget to mention is that we have a Patrion, so there's, there are a number of people who support us on Patrion and those funds go directly to helping us edit the show, to save us a bit of time, because sometimes it takes me a little bit longer to edit than I would like. Kelly's laughing at me. but your, your support on Patrion goes directly to producing the show. we are not retiring from our day jobs anytime soon to be able to focus on the podcast. Kelly Paredes: [00:58:12] dream. We could still dream. Sean Tibor: [00:58:14] maybe someday, but, but for now all of that support goes directly to making the show a little bit better, and a little bit more timely for you. So, we really appreciate that. it's, I'll put a link to the Patrion in the show notes, so you can always get to that from there. And we are now going to set a goal live on the air that is probably going to fall on me. And I hope we can, that we can get there. But if we don't say it, it doesn't happen. we are going to shift to a. Structured schedule for releasing episodes so that we have more episodes out more frequently. we're going to be publishing our episodes every Tuesday night at midnight Eastern time. So Eastern U S time zone, we'll be posting our episodes every Tuesday night so that you have something to look forward to each week on the commute to work or the walk from your bedroom to your workspace. Kelly Paredes: [00:59:04] And I know this is scary for Sean talking about structure because if you ever see our classroom, both of us are so unstructured, even though I do have lots of lists in my life, Sean Tibor: [00:59:14] that's Kelly Paredes: [00:59:15] we put it on the list Tuesdays. Sean Tibor: [00:59:17] Yep. So we are, we are going to be doing a weekly episodes published on Tuesdays at midnight. we're looking forward to that because we know it'll help us, continue to work on new topics for you to have stuff that's more relevant and timely for you. and to that note, if there are any educators that you want to hear from any teachers, any people within the Python community, please send us your ideas for guests on the show. We are definitely looking forward to having more voices in the community as a part of this. And as we start to structure this better, and as we get into the rhythm of the school year, it'll, be a nice way to bring in some additional perspectives. Kelly Paredes: [00:59:52] Yeah. And I just want to, I read a tweet before I, we jumped on this and I just want to read it out. This is from a person that I follow all the time will Richardson. He's got this idea of making. Education different. And it's sort of a philosophy ever since I went to one of his talks years ago and he did a quote that I think is perfect for summing up how Sean and I also believe in our philosophy in teaching is, is make space for the teacher and student agency. We're all different people make space for teacher and student play. We, I know Sean and I, we do a lot of play and have a lot of fun. He says, make space for teacher and student passions. We both have a passion and we want the students to have their passions come out and make space for teacher and student problems, because we have to have that opportunity for us to dive into our problems. And lastly, he says, make space for teacher and student dreams. So I think it's something. As teachers, if we can just think of those agency, play passions, problems, and dreams, and put that into how you teach every lesson. it's going to be great. Sean Tibor: [01:01:07] Yeah. And I know that it seems challenging right now with everything that's going on and yeah. World. things are definitely more difficult. We're playing on hard mode this year for, the school year. So the only thing I would recommend is if you can, if you know a teacher, if you have someone in your life, that's a teacher that's working really hard right now to make the school year work. Even though there are a lot of challenges in their way, send them a note just to two sentences that says, Hey, I can see how hard you're working. I really appreciate it. Or if you're, do it for your kids, teachers do it for a friend and also do it for the students. Send them a note and say, I know how hard you're working and I can see how challenging this is. And I know you can do it a little bit of appreciation and affirmation, goes a long way. People are working really hard right now to make this work. And a little bit of a quick note or a positive affirmation. is, is often sometimes what we need to get through the day. And from teaching Python to all the teachers out there, all the people who are working hard to make this happen. Thank you. Thank you for all the hard work that you're doing. Thank you for making, doing what needs to be done for students to make them successful and help them continue their learning. we are in awe of teachers around the world right now. We're an off students around the world, of all the things that we're doing. So take a moment just to appreciate one another to take a moment to say thank you. And you got this and so for teaching Python, this is Shawn Kelly Paredes: [01:02:34] And this is Kelly. Sean Tibor: [01:02:35] signing off.