Teaching Python and Finding Resources for Students | Real Python Podcast #37

Real Python · Beginner ·🛠️ AI Tools & Apps ·5y ago

Key Takeaways

The Real Python Podcast discusses teaching Python to middle school students, using various tools and resources such as Scratch, JavaScript, Java, Python, BBC Micro:bit, and Micro Python, and shares best practices for teaching programming concepts.

Full Transcript

welcome to the real python podcast this is episode 37. one of the best ways to learn something well is to teach it this week on the show we have kelly schuster paredes and sean tiber from the teaching python podcast sean and kelly teach middle school students python and share their art and science of teaching python on their podcast they wanted to come on the show and talk about the real python articles quizzes and other resources they use when teaching their students we also talk about teaching students how to research topics and use things like advanced search with google we discussed using cloud-based tools like collaborative notebooks and some of the core python concepts students need for a solid foundation kelly and sean also talk about how the changes to teaching over the past year have had some unexpected benefits they also talk about a few recent guests and topics covered on their show this week's sponsor is lenode simplify your infrastructure and cut your cloud bills in half with lenod's linux virtual machines try lenod today with a hundred dollars in free credit for real python listeners visit lenode.com real python alright let's get started [Music] the real python podcast is a weekly conversation about using python in the real world my name is christopher bailey your host each week we feature interviews with experts in the community and discussions about the topics articles and courses found at realpython.com after the podcast join us and learn real world python skills with a community of experts at realpython.com hi sean and kelly welcome to the show hi chris it's great to be here yeah hey chris it was really fun being on your show back seems like ages ago this year so i was a little worried because i didn't put any other episodes after i was on [Laughter] it was that coved thing yeah kind of a little crazy well on the plus side your episode got a lot of downloads because we yeah is there a saturday invite so for a while yeah you got a lot of episode uh downloads because yours was the only one there for a couple months yeah yeah worked up pretty much funny partly why you kind of reached out to me is to talk a little bit about how you're using real python uh not only yourselves but how you're using in class but i wanted to start by talking about like why did you guys pick to use python as curriculum for your classes well you want me to start that one sean yeah well you're actually there for that conversation kelly i was that was before i started teaching yeah so we we always have had a computer science program at our school k-12 and we have the kids in the lower school going through the scratch programming language and they're pretty solid in it and in seventh grade it was kind of a hodgepodge of stuff you know a little bit of swift a little bit of uh legos and everything and then in the high school they were working with javascript and i think java correction java i don't know in the higher levels i don't teach up there yeah the ap courses are all taught in java in the upper school okay so our boss called me in and and uh we had a good conversation and i was pushing for javascript just because that was one of the language i kind of knew and we started researching a lot and we noticed that python was like this up and coming language and there was so much to do with it and we heard about the bbc microbit and the python micro python modules and that and my boss was like we're teaching python cool do it or not well and so right after that conversation was when i came in as well so i was hired in to teach computer science in the middle school alongside kelly and they said to me okay well we're going to be you know teaching python in the middle school and they asked me do you know any of it and i said well no in fact it's been a few years since i've been in a developer role i've been in more you know marketing and technology and things like that that were less hands-on or or detailed so i said no but i'm willing to learn and that was kind of how we got started so kelly and i about three years ago started this journey of learning python so we could teach it and so you mentioned the bbc micro bit and using that is that still a central part of your curriculum it's part of our sixth grade curriculum we spend about three to four weeks on it and we've also introduced it into our robotics curriculum this year more in-depth i should say sean's been doing a lot of work with coding and putting together a lot of the pieces the ultrasonic sensor and everything with the micro bit but as we progress up the grades it's a little bit of a hodgepodge we sometimes get into the circuit pies uh playground and sean brings in all kinds of cool things he can tell you more about those yep so we in the upper grades in middle school so we're talking like 12 13 year old kids we really start to get into the the idea of you know more advanced coding concepts we get into some of the circuit python based hardware when students are into that and what we're really trying to do is match their interests with what python can do and so we'll survey a lot of the different third-party libraries and popular tools matplotlib comes out quite a bit pie game they love turtle even as eighth graders they love making circles and spirographs and things like that and then i've had a number of students this year that have really gotten into a lot of the math capabilities of python and using it to you know validate and check their their math homework in the process it sounds like you use a variety of different not only pieces of hardware and software packages do you you end up using a particular like ide or teaching environment and coding environment oh we'll always start with my sixth grade so we all we love moo in sixth grade we use that a lot the interface is easy the kids have you know the big the buttons are big it's not scary and it's just something easy to jump into we often fall back to replit because if you know a child has a loner tech or laptop we can just get on replit and code right away so those are the two that we use in sixth grade and then seventh grade we like to introduce them to the collab notebooks just because the importing of the libraries is a lot easier for us and then sean does a little bit more in the eighth grade yep so by the time they get to eighth grade they've seen a couple different editors and this is the first chance where we kind of introduced them to a modern python programming environment so they might download an ide like pycharm or visual studio code and then also install their own interpreter locally you know where mu comes bundled with its own interpreter or colab that's built in and running on the you know google servers this is their first chance where they're installing their own interpreter and getting used to how do i use the command line a little bit to make some of this happen and use ides to make my code editing a little bit easier more flexible based on what my needs are as a student so that eighth grade year is where they really start to transition from the all-in-one really easy simple to use to this more flexible custom designed environment that they get to create for themselves i was wondering about that i haven't been teaching in a school system i taught in like a school for recording engineers and we were just at the beginning of you know maybe what google was offering with like cloud-based documents and things like that and i know a lot of educational systems are using google docs and things like that so i kind of wondered about these sort of cloud options and so you mentioned a couple is that is it helpful in the sense that you can they can move keep their projects move them around from home and back and forth especially with how schooling is right now with some in person and some not for sure i mean i think the nice thing about it is they're already used to the paradigm of the google doc right okay so because we've been at google school and they've used it for several years whether it's on a chromebook or on their own laptop when i go to introduce the google co-lab notebook which is just jupiter running on google servers all i have to do is tell them it's like a google doc but you can also run python code in it and they kind of like oh okay well that's no problem and they just then we move on so yeah the paradigm is already there and they get a lot of the benefits of the sharing of the documents and being able to collaborate on it it's not quite as real time as i'd like but you know you can definitely see when someone's editing your document and making changes to it okay and maybe like way down the road would be like something where you teach them something like git or something like that at this point the collab is sufficient for you know working and sharing yeah and it has its own you know version control in there so we can at least talk to them about the concept of it's always being saved and you can go back in time and you know revisit your progress and everything so it gives us some of those precursors to a get style version control environment oh cool and i think like for for us in education for teaching with the with the collab notebook you know kids always forget to save and it's like oh no i've lost my my code but it saves automatically and it is nice when you know we're working in a version and the kids start adding in a whole bunch of things and they get a little bit confused we always tell them you can go back to the day before when the code was working and have a look at that and it's such a nice feature you could do that side-by-side comparison and uh sean's used to we've used a lot for me when i've got lost in someone else's code on the student's code and trying to understand where they've made up an error as 300 lines in and it's just nice to see it that's awesome you wanted to come on talk a little bit about how you guys are using some of real python's uh resources so i don't know who wants to start on this but what what are the what types of resources are you using and how are you using them oh we use a lot of them i even um so i guess it's it's really important to say that sean and i both believe teaching the students how to understand informational text and texts that they probably know less than eighty percent of the vocabulary okay it's one of our important skills that we teach we we like to give them agency and tell them listen you know all good coders know how to research and we start right away in sixth grade and we've actually given them quite a bit of the real python articles for them to start off with and it's it's i don't make them read you know the 20 pages sometimes the articles are quite long yeah sure so we kind of uh make them a little bit simpler but for example the writing comments in python guide okay i by byjaya zane so if we go in there i always start the sixth graders with with the part where it says how to write comments in python here's a hashtag and they they read about the the difference between you know multi-line comments and single line and it's kind of nice because it raises that vocabulary of here's a syntax error and if you do something with a you know a hashtag for a single comment but you decide to go into multi-line there's going to be an error and it's just like a great little introductory to vocabulary that they've never seen before nice yeah i would add to that too i mean there's a really a variety of different ways that we employ the content to be able to help the students develop different skills researching is definitely one of them and we also talk to them about how to determine whether google result is a useful resource or a trusted resource so when they are searching for something right where where they're starting for how do i solve this problem or i have a question about this we help teach them how to formulate that search query but then also examining the results because their ingrained uh habit at this point is to click on the first one the first result and if it doesn't come back with exactly what they need they say well i can't find anything this is this is ludicrous nothing on google that can help me i tried google spoiled them huh yeah yeah and so you know we go back and say well have you tried the second one or the third one you know so getting them to look deeper in the search results or to refine their search and make it more iterative in terms of their their queries but then we also talked about what makes a good source right so sometimes the things that are the number one source are there because they've been you know over optimized for seo and they're not actually useful for learning or they're really useful for someone who's had five or ten years of development experience and it's good for them but it may not be good for you with five or ten days of coding experience right so we often direct them to real python because we know that you know there's some there's good quality articles there generally they're they're going to be at the right level sometimes they're a little bit more advanced than they need right then okay but if they're searching for something about how to use a list in python and a real python article comes up we know that that's probably going to be appropriately leveled for them and their readiness to learn it um can i go back to that for a second and ask you a question about yeah it sounds like there's an iterative process to teaching a student to to look for information on on the internet are there like skills that you're trying to help them to develop you know like how to google and how to how to write a good uh query oh so i start with the basics in sixth grade because when they come in they always like to just copy and paste that question how do you find a list in python and type it out with a variable name you know and so we always start there just in the basics of you need probably four words list python for beginners so i start them with that very basic look and then because i'm modeling the resources that i want them to go to i always you know geeks for geeks always comes up first for them and that's something simple but it doesn't really have a lot of information except for example code and we try to send them and to look at articles or specific videos that we know we have checked in the sixth grade specifically and the seventh grade is kind of like you're on your own a little bit you've had your lesson and we kind of go from there in the basics just to get them into the search are there other techniques that you use sean yeah so we go into some more details of how to make a good search right so we you know in sixth grade we're teaching them you know don't just search for how to make a list because you might end up with a grocery list you should add python to that then we also start to get them to look at more advanced search skills like put in the version of python that you're using right so maybe you want to use version three five or three seven or three nine so put in the version that you're looking at then also as you get into those results you know a big source of a lot of their information is coming from stack overflow yeah and so i'm getting them to look at those pages and know how to read stack overflow and see if it's appropriate for the question or the problem that they're trying to solve you know big indicator for them is if you're seeing an article or a stack overflow question from 2011 the chances are it's probably not that relevant for what you're trying to do today in 2020 right so maybe using some different search tools you know you can modify the the date range and things like that but we start to get into these more advanced skills that help them narrow down and focus on their on their problem in a more specific and and you know hopefully more fruitful way and to kelly's point a lot of that's done through modeling the behavior so we might try to solve a coding challenge together and i'll be up in front of the room doing the full sort of search that i would do as i'm trying to solve it also where i'm you know here's the problem let me make sure i understand it now here's my first query and am i getting the right results if not then i'm going to modify it and so we're talking about each step of that process of researching and refining searches to be able to get to more specific and relevant information i used to teach at um at a law firm and a lot of the lawyers i was teaching about we were well it was at a time when they were having lots of problems with potential malware and they were using explorer and they're using you know kind of fairly insecure tools and so we were switching everybody over to chrome but also i was like i think it would be really good if they knew how to use google better so i spent time you know these are literally people that are researchers in a lot of ways because they're lawyers and they've been using things like lexisnexis and all these kind of advanced tools for that and i was like well google you can actually put a site colon you know and narrow it to this very specific site there's like this whole set of these commands that a lot of people miss in that i always forget some of them too like the idea of like putting like a date range or just something simple like just quotation marks to say it needs to be worded like this you know so those are powerful things i think to teach a kid getting into this stuff and we also show them how to back into those keywords too because if you you know pop open the advanced search window you can always you know type in what you want and then see how that modifies the query string that goes over to google yeah and the kids in the in the in the lower levels we we like to use the image search because when we're when we're importing pictures into the turtle module and moo we have to use a gif or i think also a png so a lot of the times they can't find a good picture and so we go in there and here's how you change the the type in an image search and it they're they're impressed they're like oh i never knew that was there yeah you could do it like literally file type colon pdf kind of thing that's awesome yeah yeah yeah that's why i like teaching lower levels because you can always surprise them and and you you look like you're having magic happen you know yeah yeah that's always the funnest stuff [Music] simplify your infrastructure and cut your cloud bills in half with lenod's linux virtual machines develop deploy and scale your modern applications faster and easier with 24 7 365 human support with no tiers or handoffs regardless of your plan size whether you're developing a personal project or managing larger workloads you deserve simple affordable and accessible cloud computing solutions get started with lenovo today visit lenove.com real python that's lenode spelled l-i-n-o-d-e dot com slash real python click on the create free account button and get one hundred dollars in free credit try le note now [Music] are there other particular materials you're using from real python yes of course so the thing is is i always have to double check that it's the free a free version of it because you know sean and i both have the paid version because we use it a lot for ourselves but i find that a lot of the basics are free or if the first couple of parts of the article are free and that's usually as far as i go with the sixth and seventh graders but we're actually we love the beginner's guide to python turtle oh yeah and the little game that's at the bottom it's um by nikita i don't i'm not going to try to say her last name i'm sorry nikita um but it's so fun and the the kids like to do the the full game and they have the little turtle russian oh the race yeah yeah the race and um i've had some kids modify it a little bit and get in there and change it but that's like the introductory they have a choice of either doing this one or another hour of code that i set up and you know half the kids read the whole article from python's guide to python turtle it's great there's a video course of that uh coming shortly from darren jones um it's just awesome yeah i'm excited to get that one out there we also use a lot of content not just for research purposes but really to kind of front load some of the learning so instead of us getting up there and talking first we give them content to read or review and look at so that we can you know when we get into the classroom we start right away with a conversation or a discussion or examples or something that's more interactive and engaging rather than us just you know spewing forth information so a lot of the ways that we do that are through the these things we made called choice boards so this is kind of kelly's innovation that she's brought to our classroom this year and it seems to be working pretty well but the idea is that instead of an assignment where you have to do this thing then the next thing the next thing we give them a document each week that has four or five different activities that they could choose from to complete and some of them are required like you have to do these two but then pick another one that's your choice to do so out of the four or five they might have to do three of them and they can choose the order that they do them in they can do them you know one after another but they and they don't have to do all of them although some of our students do and we found that using some of the real python articles and quizzes have really helped us for that so a great example is like the basic data types article that has like it has a video course with it it has the quiz with it and we use that a lot at the beginning of our courses to get students to review the material and then use the quiz that goes along with it to be able to assess any gaps in their knowledge right so you know student who goes through that and gets an eight or nine out of ten on the quiz correct is probably doing pretty good and remembers a lot of the materials if they're an older student or has really good reading and comprehension skills as a sixth grader but someone who gets like a two or three out of ten might need to go back and review it again and we can use that as a prompt to get them to you know take another look at the material and make sure they really understand it it's been really cool to see because you know as soon as they see quiz they start thinking grades like where's my grade like are you grading this how am i gonna am i gonna fail and we can tell no no this is for yourself right this is so that you know what you need to learn and where your gaps are and you can kind of see some of them have that little light bulb moment where they say oh okay okay i think i get it it's you know it's not optional but you know like if i get a two out of ten the world's not going to come to a screeching halt or anything and i love it the other day one of the students i don't know how the conversation started but sean walked in and we were talking about data types and the kick goes to sean yeah so what is a point quizzing him what is a point you know for e7 or something i can't remember what it was and i was like what is he talking about oh yeah i forgot i needed a that was a complex number or whatever and floating point numbers sorry and uh it was just funny because they they start getting knowledge that is not necessarily specifically taught in class yeah and sometimes i have to go back and i'm like oh yeah i forgot i signed that in uh real python i better go back and read that article that's too funny yeah it's great because they come in they're like i'm confused by irrational numbers in python we can't bring david here to help us exactly exactly and you know what the most important part of that exercise though is really we asked them to do a reflection on what they learned what's write down two things you that are new that you learned and one thing that still confuses you so that we get a better sense of what they're looking for and what they need help with and then we can kind of tailor our approach in the classroom to help them resolve some of that confusion or you know explore some things that they really are excited about so that reflection part of the learning is really the most critical piece so when i was teaching at the recording school we started to have we used moodle which was like our tool for creating online curriculum i don't if you're familiar with those things yes yeah and it was brand new for us and so what uh we were able to do is something similar to what you're talking about where we could front load our system was cyclical um there would be you know like three week cycles that people would move through as they you know progress through the curriculum and this so that what was an idea was to create this cycle zero which was entirely online but you could basically assign a bunch of reading a bunch of quizzes and initial stuff to again keep it out of the classroom because some of that stuff can be what somewhat tedious to do a lecture on and could probably be done through a video or be done through you know just simply article reading so i think that's great i think that's a real powerful way you know also it's helping you learn and assess you know who is going to need more on hands-on help um and who's going to be able to be able to be able to assign stuff to and be able to kind of run with it and continue to you know like if you give them the right resources they'll be able to run and keep going forward which is really cool yeah yeah and i would add also i think that that whole reflective piece the metacognitive approach of learning about how you learn is really critical even if you don't have a teacher right so if you are by yourself learning python writing down here are the things that i know and i the new things that i learned and then here are the things that i'm confused by is a great way to at least start the that process of reflection and figuring out how you need to learn the next big piece of python and i think that i just stole kelly's i comment i'm just sitting here laughing so it's so cra i just want you guys to all appreciate this this these beautiful words that are coming out of sean's mouth you know metacognition learning how to learn i just want to say that my work here is done i no longer need to train him as being a teacher you're retiring i'm retired he's doing such a great job no i mean adding on to that that whole business of front loading i don't know about sean or or you chris after teaching for so long teaching the basics of here type prints here type function that just gets so boring so i'd rather just front load the kids on the basics and then go straight into code alongs and i you know i'm starting to make stuff up i'm feeling comfortable in class where i can just go i've never coded this before let's try this out and i don't have to waste and i say waste but waste my time going over the basics and the kids can kind of jump in and they're like oh yeah i read that or i saw that or i watched this video right so it's just a it's just a nice way to have more fun in the classroom right make it way more interesting and on topic and yeah get those like light bulbs going off absolutely we love the light bulbs so we wait for those but it's just a good way yeah and i have to say i'm i have to say i'm really proud of kelly here too i mean this is the other side of it so when we started this you know three years ago this was it was my first year teaching i'd never taught in a classroom before but i was a fairly experienced coder technical sort of person and kelly had never written code before uh ed was a very experienced teacher so this combination of the two of us coming together you know she's proud of me for being able to say big words like metacognition but the fact that she's up there coding along and and creating python jazz in front of the room and improving it makes me really happy to see how far she's progressed over the last three years too so you mentioned that sometimes you'll share some of video content and mix it up with some of the articles are there particular types of video content that works well for teaching students well the most the kids find the com the comments video versus reading it okay i try to i try to send them to their reading because we are trying to teach that skill and we do we do provide them with other video clips i make a lot of the basics the very basics on screencast uh after our learning cycle that we went through um well as last year with learning how to record good videos um i don't know where we learned that from but uh i think it's episode 48 on our podcast with christopher bailey yeah that's funny oh is that where i can't remember so yeah we make a lot of our own screencasts and i put that up i'll put a link in the show notes that's my job this time and um and then i also um i always say sent dex i always do a lot of his videos i know that's not real python but he has very short three-minute videos and what was the name of it sir scent index s-e-n-t-d-e-x he's great okay he's fun yeah i think what what we really appreciate about the real python videos is the you know chapter markers in the way that it's chunked into pieces um one of the things we notice with the younger students and i think it's true across you know a lot of age groups is that it's hard to sit down and watch a 25 minute long video about a topic without having some sort of road map for where you are and where you're going so the the chunking into smaller chapters really helps our students you know navigate like oh here's what i need to learn next or i have three minutes to go in this one and then i'm going to take a break and and i can pause here and go on uh to it again when i'm ready to resume and you'll be really happy to know that we do use your video on the list we like and we like that one i do skip around i don't put them through a lot of it i i do do the indexing and i can't remember um that one's the free one too i know the first couple and i do talk about mutability and we don't really go into tuples too much in the sixth grade i just kind of kind of say that but they like that one that one's easy and i see a lot of the um is in uh references in their list what's that's nice [Music] this week i want to shine a spotlight on another real python video course it covers a set of fundamental concepts needed for everyone starting to learn python it's also the course that kelly mentions she shares with most of her students it's titled basic data types in python the course is based on a real python article by john sturtz and in the course instructor darren jones takes you through the basic numeric string and boolean types that are built into python what objects are these types look like and how you can represent them and it also has an overview of python's built-in functions which are pre-written chunks of code that you can call to do useful things i think it's a worthy investment of your time to learn these basic beta types in python and like most the video courses on real python the course is broken into easily consumable sections it also has a shiny new transcript and closed captions check out the video course you can find a link in the show notes or you can find it using the enhanced search tool on realpython.com [Music] this is kind of shifting a little bit what what are things that you guys have covered this year uh on your podcast oh so much i just learned about beware uh yeah russell's great yeah i just made my first mobile tutorial app i followed along and had hello kelly and we had ali a couple of weeks ago yeah spittle yep sorry she got me into django girls tutorial so i've been stumbling through that which she's got some great videos i don't know her name from django girls but her videos are great shawn who else do we have oh we had uh eric mathis is uh on an upcoming episode so we had him back to talk about making projects happen in school and what makes a good project for learning right and getting students engaged and interested so that one's coming up probably as soon as i can get it edited later today and we've got we've just been having a really good conversation about all the changes with with the way we're teaching this year the the things that we've been able to do with remote learning that have actually enhanced the the learning experience for our students i was wondering about that yeah you know it's interesting because i think programming in general can be such a demanding subject in that you have to be able to focus and think through the problems that you're trying to solve and in a normal classroom it can often be fairly distracting when there's a lot of other kids moving around and you know there's always noises and sounds and things like that and so our students that are at home have often pulled ahead of their peers in the classroom because they can hit the mute button on the classroom and focus in on what they're trying to learn and create this environment where they can really think and i believe that that's something that we don't often create for our students is the space to think and have some time to really delve into a problem in a way that is meaningful and relevant and so if there's been a silver lining to all this distance learning it's the ability to show them that space and help them think through a problem in a deep and meaningful way i think when people ask us how did we handle covet and i think sean and i both were we said oh it was great you know i got so far with the teaching i saw a seventh grader one of my seventh graders this year who had me fourth quarter last year the kid is a coding superstar and i guess when they were locked up he was also the one that was asking sean about the numbers and complex numbers sure i i'm like did i teach you last year it's amazing and but they just had so much time during the summer and by themselves they weren't allowed to go out and i think computer science and as long as you have someone to mentor you and you have the resources available to you i think it's one of those subject areas where i mean we've all learned most of us have learned on our own anyways but it's one of those areas where kids can just go and thrive you point them in the right direction here's this tutorial here's this editor and just go and they are really feeling successful i think so it's kind of nice i was wondering about we include materials with the video courses like like pdfs and code samples and i wonder in some cases if that's helpful for you guys in teaching i have not utilized code samples i find that sometimes when the kids get a whole code they'll just skip okay they don't like to read so i tried to avoid giving them documentation i tend to send them to the book and i don't tell them that most of the stuff is on github right you know i try to avoid that because i find and sean and i both agree that when the kids are typing they're making those errors yeah and the fact that they're making errors there's the name error there's a syntax error it's just teaching them to be more cognizant about their typing and the more they type the more they learn so i try to avoid code samples where they can copy and paste is this a place where they're learning to type for the first time too um no they've used they've typed in the past but some of the characters you know like the asterisk or the curly brackets oh yeah it's they're items that they don't really use on a on a normal basis you know hashtags right although they use them on their phone i don't know so it's it's they're still using that peck and look kind of thing at the beginning it is kind of fun because i do tell them from time to time at the beginning of the course to really look at your keyboard and look at every single character that's on their keyboard because at some point they will use it in python yeah pretty much like and they would discover keys that they have never pressed before except maybe by accident and i i give them names for everything we build a lot of vocabulary around just the characters that they're using and so they're really having to think about what they're typing and why yeah what was the name yeah what was the name of the one that and i was like oh i didn't know what that was called you said it in class uh what was it the curly brace no it was like a modulus one but it wasn't the modulus i forgot oh that was pretty sensitive that's the modulo no no it was something else he said i forget i'll think of it later i always do and and the pipe i was like and that's a pipe like what what do you mean yeah yeah you end up using a lot of them um i'm just looking at it yeah you never actually look at your keyboard until you're like wait a minute i've used this for okay that's the for comments this one's for modulo here's the uh you know tilde that we use sometimes for you know everything has a purpose yeah the last area that really has been useful for us is for the long-form tutorials on real python so we bake in time in our course for students to be able to demonstrate their learning so they have time to to really explore a topic on their own and and show how they've integrated all this newfound knowledge together and a lot of students will go to say the arcade tutorial that just came out i think this year or late last year to be able to make a game and they can go through that in detail i had one student who came up with the making a binary search in python and i don't think she really understood what she was getting into she says it looks interesting and then i think about halfway through she's like how about how about um i do something with turtle instead i said no no you got to stay on the binary search it's it's way better than you think it's going to be but those longer form tutorials have been really helpful for giving a student the ability to work through a longer more complex project at their own pace and see how something fits together with the commentary and the feedback from the author to say not just here's a bunch of code but here's why i'm doing this or here's why we're doing this next step and here's how it builds on the previous steps so that's been really useful for our students to delve into a deeper longer project towards the end of their uh their learning yeah and then last year when i was running out of things to talk about because we passed our curriculum that we were supposed to be doing in seventh grade we actually did the uh it was like a facial recognition one from real python i don't remember which one it was called but it was a short tutorial and we could go in there and upload a picture and it was pretty cool there's a new uh pretty recent one that's a sort of introduction to data science and modeling science i saw that i i actually bookmarked it yeah i think that would be really good and we just got the video version of that one that came out and it's kind of short and you're modeling a movie theater which i think a lot of people i mean obviously it's a little kind of sad right now but a lot of people can relate to the idea of like okay there's all these you know positions and if i was going to be the manager of this place and there's so many like games that kids probably could think of like you know they play themselves to optimize the flow of all these different be it resources or whatever you know all the types of games that are out there that this is a way they could do that through sort of data science and it's fairly short which i i think would be an okay topic for kids to get into yeah what was that i think i actually i was i saw it the other day and i bookmarked it it was going in going in and also managing the amount of people or something in yeah that's out on my dude on my own personal to do this yeah anything data science i always go and i i search at because they have the django one on there as well well i have these weekly questions that i like to ask everybody comes on the show and i guess we can start with you sean and if you have to go sure so what's something that you're excited about right now in the world of python well i'm really excited to delve deeper into python39 i think that's the third time i've said delve this podcast so sorry about that it's good get your minor hat on yeah so one of the projects that i did last year and i need to update it for this year is a web-based bell schedule for our middle school so just a simple serverless function that goes through and and each day tells you the schedule for that day in json format so you can use it in a lot of different things but when i did it i had to do it all with you know time zone support and everything because i wanted to be fairly robust daylight savings times and things like that so i'm really excited about the new built-in support for time zone information in python 3.9 and so one of the things that i have on my my to-do list is to rewrite that for our new uh you know weird coveted schedule that we're doing but also to upgrade it to python39 so that i can use all that built-in stuff instead of having to go to a third-party library for it nice and uh what's something that you want to learn next uh well the big thing on my list next is a another you know utility library that i created for an api that we have at our school to manage all of our ipads and the next thing i want to learn is how to create effective mock objects for the testing library that i wrote for it or the test suite that i wrote for it so instead of hitting the api with live data that it actually runs everything against you know mocked objects or or fake requests so it's something that i i have on my list to learn next because i think once i get the hang of it it can be really useful in a lot of other areas too okay cool do you have to go right now uh yeah i do have to split i'm supposed to be somewhere at noon and i have about a 10 minute drive so i'm down to the wire i think but this has been really fun to to reconnect christopher and talk through yeah everything with real python that was so awesome to talk to you again too all right take care christopher bye kelly bye so what are you excited about in the world of python right now i think it could be like an event or a book or what have you so i have been dreaming of this project and i'm just starting to map out my idea clearer clearly i guess um it's been something i've talked about since i've we first interviewed eric a year ago eric mathis and there's this idea of of making this database on on skills for for students and we just recently spoke to eric mathis and he kind of gave me some motivation and he's got a lot of information and a lot of uh code code i think it's also in his book about data science okay so i've been using that and hacking through that that's kind of where the the django tutorials came in where i thought you know i need to get something up on the web so i have a place to put my dashboard for education so that's kind of my project i'm really far behind every time shawn looks at me i've gone and found like six different ways to put in a csv or i'm like i don't know which one should i use so i'm back down to the basics of just listing out the things and kind of going there sean's project for me though because he's always pushing me is really getting into doing more of the github and trying to fork he's been sending me these codes and making me learn how to fork things and add stuff to it tried to use the hack up try to do the hacktoberfest with get but it you know i i just didn't get there so much going on there's a lot going on yeah especially in with school too so yeah absolutely and then i just we just bought the beyond the basic stuff with python from al and i'm on the early release one the early access pdf and i just reading that it's it's so great and seeing all the he's just an easy reader you know it's one of those things you just kind of can keep going with it so it's nice well that's a lot on my a lot of little things yeah it sounds like it that's cool are you hosting it um like does the school provide you space or you you set that up yourself to host this django thing uh just on myself right now i haven't gotten very far everything's locally i actually i'm actually working in a collab notebook right now because every time i go in i have i've been on a personal fight between whether i'm going to use pycharm or visual studio for sure so i was getting used to visual studio with the lego programming but i don't know i liked pycharm and then i don't know the whole vm v-e-n-v i don't know how you guys pronounce it vem space is uh a lot for a new person yeah and you get kind of lost and i was also doing terminal so learning all about terminal and kept ad that's great in his book yeah i was yelling at russell saying why terminal in our last episode i have to listen to that and he yeah it's a great one he explained it really well and i was because i was just like why do i have to install beware through terminal when i could just go into my finder and make my own folder and i think there's the things that happen with newbies you know we do stuff because that's the way the programmers had always learned how to do stuff so it's it's one of those things that you have to be cognizant of when you're teaching someone who's never coded before yeah totally now what do you want to learn next i mean you mentioned several things there but uh is there any other specific things that you want to learn next no we're just um i think sean and i both are rethinking how can we do stuff different in our class we always change we try not to change too much during the year yeah but in the end we always do because we get you know we get bored we're gonna do the card game or we'll do something else and i think just being able to make and show them more examples they end up producing other things for us so i don't know we we're making all kinds of things sean's made all kinds of crazy hardware stuff in the classroom and you know you you name it we've we've tried it so it's uh i need somebody to give me those assignments here and i just like have not been making the time i've been you know getting all these other things going so we decided to ditch the the micro bit kits where they already have the robot designed and you know there's a whole bunch of different kits out there for the micro bit robots and we're making our own and we're piece mealing it we've made up these little ziploc bags for all the students and we've given them ultrasonic sensors and deep boards breakout boards and breadboards and jumper cables and and wires so we'll we'll send you some of that stuff and you can uh you can compete with us we're going to do battlebots all right that sounds funny what were things that that you were happy about the change from you know switching from teaching potentially teaching javascript to now teaching python what what are changes about you know teaching those different languages that that you enjoy that has made that easier for you i guess i think for me working with python versus the other codes and i i guess i should say more like looking into swift because we also looked into using that sure i just think it's something more tangible i i feel like you can easily jump in we take kids that have never coded before in a language maybe a little bit of scratch and in nine weeks we have them coding you know 200 300 lines of code and making up their own apps they've made mad labs they've done designs with turtle and these are things that aren't like box they're not finding it off the web and copying and pasting it they're actually coding their own stuff so i think that's that's the one thing i really love about python i can guarantee and i say this to all the parents when they're freaking out that their child is stressed out the first two weeks i say i'm like i've done this 28 times in three and two and a half years i promise you that by the end of the nine weeks your kid is going to be begging to come back to class and it and it's happened maybe one or two kids that has and i know that sounds a little bit egotistical but it's not because of me it's because of the language you know python is just something that's so awesome that if you know the kids want to build an app i can give them that if they want to draw with python or turtle i can give them that if they want to use hardware i can give them that and i just think that it's one of those languages that is accessible and that's kind of why i love it that's awesome well i really want to thank you guys for coming on the show and it was so much fun talking to you again thank you so much i mean we love we love what you guys do and you're such such a great resource for us at school that we just wanted to say thank you all right we'll talk to you soon all right thanks chris get started with leno today visit leno.com real python and get 100 in free credit when you create your account try lenode now i want to thank kelly and sean for coming on the show and i want to thank you for listening to the real python podcast make sure you subscribe to the podcast in your favorite player and if you like the show leave us a five star rating and a review you can find show notes with links to all the topics we spoke about inside your podcast player or at realpython.com podcast and while you're there you can leave us a question or a topic idea i've been your host christopher bailey i look forward to talking to you soon

Original Description

One of the best ways to learn something well is to teach it. This week on the show, we have Kelly Schuster-Paredes and Sean Tibor from the Teaching Python podcast. Sean and Kelly teach middle school students Python and share their art and science of teaching Python on their podcast. They wanted to come on the show to talk about the Real Python articles, quizzes, and other resources they use when teaching their students. We also talk about teaching students how to research topics and use things like advanced search with Google. We discuss using cloud-based tools like collaborative notebooks and some of the core Python concepts students need for a solid foundation. Kelly and Sean also talk about how the changes to teaching over the past year have had some unexpected benefits. They also talk about a few recent guests and topics covered on their podcast. Topics: - 00:00:00 -- Introduction - 00:02:17 -- Why did you pick Python for the curriculum? - 00:05:48 -- Is there a particular IDE or editor you use when teaching? - 00:07:35 -- Is it helpful using cloud based tools with students? - 00:10:02 -- What Real Python resources are you using in the classroom? - 00:11:48 -- Using Google to find good resources - 00:18:31 -- Sponsor: Linode - 00:19:16 -- Other Real Python materials - 00:27:58 -- What video content works with students? - 00:30:33 -- Video Course Spotlight - 00:31:30 -- Recent topics and guests on Teaching Python - 00:34:39 -- Are code samples helpful when teaching? - 00:37:06 -- Using long form tutorials to demonstrate their learning - 00:40:00 -- What are you excited about in the world of Python (Sean)? - 00:41:02 -- What do you want to learn next (Sean)? - 00:41:57 -- What are you excited about in the world of Python (Kelly)? - 00:45:28 -- What do you want to learn next (Kelly)? - 00:46:59 -- Other considerations in selecting Python over Javascript or Swift - 00:48:50 -- Thanks and goodbye 👉 Links from the show: https://realpython.com/podcasts/rpp/37/
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Real Python · Real Python · 0 of 60

← Previous Next →
1 A better Python REPL – bpython vs python interpreter
A better Python REPL – bpython vs python interpreter
Real Python
2 Introducing large-type.com – A Utility Website
Introducing large-type.com – A Utility Website
Real Python
3 Reading Hacker News Without Wasting Tons of Time
Reading Hacker News Without Wasting Tons of Time
Real Python
4 Forward References and Python 3 Type Hints
Forward References and Python 3 Type Hints
Real Python
5 Using Sublime Text as your Git Editor
Using Sublime Text as your Git Editor
Real Python
6 Python Code Linting and Auto-Complete for Sublime Text
Python Code Linting and Auto-Complete for Sublime Text
Real Python
7 Make your Python Code More Readable with Custom Exceptions
Make your Python Code More Readable with Custom Exceptions
Real Python
8 Write Better Tests with Sublime Text's Split Layout Feature
Write Better Tests with Sublime Text's Split Layout Feature
Real Python
9 How to Use Sublime Text from the Command Line
How to Use Sublime Text from the Command Line
Real Python
10 Rename Variables with Multiple Selection in Sublime Text
Rename Variables with Multiple Selection in Sublime Text
Real Python
11 Sublime Text Settings for Writing PEP 8 Python
Sublime Text Settings for Writing PEP 8 Python
Real Python
12 Write Cleaner Python with Sublime Text's Indent Guides
Write Cleaner Python with Sublime Text's Indent Guides
Real Python
13 Sublime Text Whitespace Settings for Python Development
Sublime Text Whitespace Settings for Python Development
Real Python
14 Function Argument Unpacking in Python
Function Argument Unpacking in Python
Real Python
15 Python Code Review: Debugging and Refactoring "Conway's Game of Life" +  Automated Tests
Python Code Review: Debugging and Refactoring "Conway's Game of Life" + Automated Tests
Real Python
16 Using "get()" to Return a Default Value from a Python Dict
Using "get()" to Return a Default Value from a Python Dict
Real Python
17 A Python Shorthand for Swapping Two Variables
A Python Shorthand for Swapping Two Variables
Real Python
18 Python Code Review: Refactoring a Web Scraper, PEP 8 Style Guide Compliance, requirements.txt
Python Code Review: Refactoring a Web Scraper, PEP 8 Style Guide Compliance, requirements.txt
Real Python
19 Click & Jump to Test Failures from the Command Line (iTerm2)
Click & Jump to Test Failures from the Command Line (iTerm2)
Real Python
20 Setting up Sublime Text for Python Developers
Setting up Sublime Text for Python Developers
Real Python
21 Sublime Text + Python Guide Overview
Sublime Text + Python Guide Overview
Real Python
22 Python Code Review: Adding Pytest Tests to an Existing Python Web Scraper
Python Code Review: Adding Pytest Tests to an Existing Python Web Scraper
Real Python
23 Type-Checking Python Programs With Type Hints and mypy
Type-Checking Python Programs With Type Hints and mypy
Real Python
24 A Shorthand for Merging Dictionaries in Python 3.5+
A Shorthand for Merging Dictionaries in Python 3.5+
Real Python
25 Python Code Review Flask Web Security Tutorial + Virtualenvs, requirements.txt
Python Code Review Flask Web Security Tutorial + Virtualenvs, requirements.txt
Real Python
26 My Python Code Looks Ugly and Confusing – Help!
My Python Code Looks Ugly and Confusing – Help!
Real Python
27 Setting Up a Programmer Portfolio/Developer Blog – How To Get Started
Setting Up a Programmer Portfolio/Developer Blog – How To Get Started
Real Python
28 Do I Need a GitHub/GitLab/Bitbucket Profile as a Developer?
Do I Need a GitHub/GitLab/Bitbucket Profile as a Developer?
Real Python
29 Programmer Portfolio – Example and Walkthrough
Programmer Portfolio – Example and Walkthrough
Real Python
30 How to Get Your 1st Speaking Gig at a Tech Conference
How to Get Your 1st Speaking Gig at a Tech Conference
Real Python
31 How to Build Your Public Speaking Skills as a Developer
How to Build Your Public Speaking Skills as a Developer
Real Python
32 The Object-oriented Version of "Spaghetti Code" is "Lasagna Code" ?!
The Object-oriented Version of "Spaghetti Code" is "Lasagna Code" ?!
Real Python
33 Setting up Sublime Text for Python Developers – Lesson #1
Setting up Sublime Text for Python Developers – Lesson #1
Real Python
34 Cool New Features in Python 3.6
Cool New Features in Python 3.6
Real Python
35 "is" vs "==" in Python – What's the Difference? (And When to Use Each)
"is" vs "==" in Python – What's the Difference? (And When to Use Each)
Real Python
36 Emulating switch/case Statements in Python with Dictionaries
Emulating switch/case Statements in Python with Dictionaries
Real Python
37 Python Function Argument Unpacking Tutorial (* and ** Operators)
Python Function Argument Unpacking Tutorial (* and ** Operators)
Real Python
38 What Code Should I Put On My GitHub/GitLab/BitBucket Profile?
What Code Should I Put On My GitHub/GitLab/BitBucket Profile?
Real Python
39 A Crazy Python Dictionary Expression ?!
A Crazy Python Dictionary Expression ?!
Real Python
40 String Conversion in Python: When to Use __repr__ vs __str__
String Conversion in Python: When to Use __repr__ vs __str__
Real Python
41 Method Types in Python OOP: @classmethod, @staticmethod, and Instance Methods
Method Types in Python OOP: @classmethod, @staticmethod, and Instance Methods
Real Python
42 Optional Arguments in Python With *args and **kwargs
Optional Arguments in Python With *args and **kwargs
Real Python
43 Python Context Managers and the "with" Statement (__enter__ & __exit__)
Python Context Managers and the "with" Statement (__enter__ & __exit__)
Real Python
44 Installing Python Packages with pip and virtualenv / venv
Installing Python Packages with pip and virtualenv / venv
Real Python
45 "For Each" Loops in Python with enumerate() and range()
"For Each" Loops in Python with enumerate() and range()
Real Python
46 Python Code Review: LibreOffice Automation and the Python Standard Library
Python Code Review: LibreOffice Automation and the Python Standard Library
Real Python
47 Managing Python Dependencies With Pip and Virtual Environments – Lesson #1
Managing Python Dependencies With Pip and Virtual Environments – Lesson #1
Real Python
48 Python Tutorial: List Comprehensions Step-By-Step
Python Tutorial: List Comprehensions Step-By-Step
Real Python
49 Leveraging Python's Implicit "return None" Statements
Leveraging Python's Implicit "return None" Statements
Real Python
50 What's the meaning of underscores (_ & __) in Python variable names?
What's the meaning of underscores (_ & __) in Python variable names?
Real Python
51 Python Data Structures: Sets, Frozensets, and Multisets (Bags)
Python Data Structures: Sets, Frozensets, and Multisets (Bags)
Real Python
52 Writing automated tests for Python command-line apps and scripts
Writing automated tests for Python command-line apps and scripts
Real Python
53 How to find great Python packages on PyPI, the Python Package Repository
How to find great Python packages on PyPI, the Python Package Repository
Real Python
54 Immutable vs Mutable Objects in Python
Immutable vs Mutable Objects in Python
Real Python
55 PyPI vs Warehouse, the Next-Generation Python Package Repository
PyPI vs Warehouse, the Next-Generation Python Package Repository
Real Python
56 pep8.org — The Prettiest Way to View the PEP 8 Python Style Guide
pep8.org — The Prettiest Way to View the PEP 8 Python Style Guide
Real Python
57 My Experience at PyCon 2017 in Portland
My Experience at PyCon 2017 in Portland
Real Python
58 Pylint Tutorial – How to Write Clean Python
Pylint Tutorial – How to Write Clean Python
Real Python
59 "Reverse a List in Python" Tutorial: Three Methods & How-to Demos
"Reverse a List in Python" Tutorial: Three Methods & How-to Demos
Real Python
60 Python Refactoring: "while True" Infinite Loops & The "input" Function
Python Refactoring: "while True" Infinite Loops & The "input" Function
Real Python

The Real Python Podcast discusses teaching Python to middle school students and shares best practices for teaching programming concepts, including using various tools and resources, and designing and implementing prompt systems.

Key Takeaways
  1. Choose the right tools and resources for teaching Python
  2. Design and implement prompt systems to enhance student learning
  3. Use advanced search skills to find relevant resources
  4. Understand the basics of prompting in Python
  5. Use prompting to teach programming concepts
💡 Python is a great language for teaching and learning, and using various tools and resources, such as Scratch, JavaScript, Java, and Micro Python, can enhance student learning and engagement.

Related AI Lessons

Up next
AI in Care - Katie Furey, Pairly.com
The Access Group
Watch →