Getting Started Teaching Python

June 23, 2026 · 2:00 - 3:30 PM CT · Hosted by Stephanie Bennett

About This Webinar

In this workshop, we’ll provide an overview of CodeHS Python programming courses for middle and high school. You’ll work through a lesson from the student perspective and hear from Teacher Trainers currently teaching in classrooms about strategies for engaging and supporting students learning Python. Participants will leave with a better understanding of the different Python course options available on CodeHS and how teachers use them in their classrooms.

Discover the best Python courses on CodeHS for middle and high school classrooms. Featuring expert tips from teacher trainer Scott Hedrick, this webinar guides educators through lesson structures, student self-pacing, AI integration, and strategies to build supportive computer science environments.

Full Transcript

Read the complete transcript of this webinar
Hello, welcome everyone. I'll give you a minute to get settled in and get comfortable for our 90-minute webinar we have today talking about all things Python in the CodeHS universe. We're going to cover a lot of our great course content and get some expert advice from the classroom with our teacher trainer panelists today. So very excited for this time that we have together. I'm so thankful that you have set aside some time in your summer break. Hopefully you are on summer break. And again just happy you're here and excited to learn from Scott today.

So my name is Stephanie Bennett. I'm a professional development specialist here at CodeHS. I have been with the company for two years and I'm very honored to get to work with a group of current classroom teachers who belong to our teacher trainer cohort. They bring their expert voice and their classroom experiences just from past school years into the conversation here today, whereas I left the classroom in 2019. That was my last year, so it's been a while for me. But we're lucky to have our teacher trainer group to rely on to get updated teaching strategies and all the great advice from their experience teaching in the classroom.

So, if you are interested, I'm going to put a link to the slide deck in the chat. You don't have to have that pulled up, but if you'd like to save that link, you have access to these slides from here to probably next year at this time when I make a new slide deck. Please feel free to open up that slide deck and just put it on in the background. As you can see, I'm screen sharing here. So, if you want to follow along on the Zoom, that will work out perfectly.

All right. Well, I'm going to have Scott introduce himself next, but we would love to know who's joined us today. So, if you want to put your name and what you're teaching Python-wise in the chat, maybe tell us where you're joining from, that would be a delightful way to get us started. And Scott, hello. Thank you so much for being here today. Would you like to introduce yourself and tell us about your teaching experience?

Yes, thank you, Stephanie. My name is Scott Hedrick and I am a computer science teacher, technology guru type person, and I kind of do the fixing at the school as well. I coach, have a lot of different hats that I wear. When you're looking at things, what experiences do I bring to the table? First and foremost, some of you out there are people that are going to be teaching computer science. You're going to be teaching coding. You're going to be teaching programming and you don't bring a lot of experience. Maybe you don't bring any at all. Maybe you've been thrown into something like this and you have a lot of anxiety. I can relate.

I am a business education major and I had a technology endorsement from my university. About 10 to 12 years ago, I started getting involved in different ways of teaching coding to my students. One of the great ways that I learned how to share computer science and coding was CodeHS. As we go through this today, I want you to understand something. Teaching coding did not come easy for me at the beginning of my career. But strong resources like CodeHS made me a successful teacher. I want you to understand as we go through our slides today that it's okay to feel overwhelmed. It's okay to not know everything. I sure as heck don't know everything. There's going to be some times where you're going to agree with how I handle things in my classroom and disagree, and that's all fine. We'll go ahead and get started. If you have any questions for me, if I don't know the answer, I'll try to find the answer for you.

Yes, Scott, I love that introduction because so many computer science teachers don't come from a CS background. Some high schools are very lucky, folks are from industry and decide that they want to teach. But especially at the lower grade levels, middle school and elementary school, I would say in my experience working with teachers over the last seven years or so, the vast majority of teachers are coming at this new without a background in computer science, and that can be very scary. So I appreciate the words of welcome and comfort.

I do see that we have a first-year CS teacher joining us and I also see some familiar names, folks who have joined previous CodeHS webinars. So welcome everyone. Thank you so much for being here and let's talk about how we're going to spend our time today. I'll get the link to the slide deck in the chat one more time for those of you who are just joining.

We are going to go over our courses that feature Python coding and we are going to work through a lesson together. We'll talk a little bit about the basics of Python, its uses in industry, and its syntax, and why your students might want to learn Python versus other languages. All throughout today, we are going to be asking Scott for his advice from his teaching experience. Then we'll save some time at the end to ensure that you feel comfortable reaching out to CodeHS should you need anything outside of this webinar and in the future as you get set up in the fall to teach your classes.

So, we are a fairly small group of 16 today. We will just hang out in the chat. I appreciate everybody introducing themselves and participating. Please feel free to use the chat if you have questions. I will keep track of those and bring them up to Scott when it's the right time in the presentation, and I will elevate those questions to him. Or if I can just give you a quick knowledge-base article link or answer your question quickly, I'll do that in the chat. So we'll just use the chat today.

But I do also want to invite you, if you have not used CodeHS before, if you need to have a CodeHS teacher account, they are free. Our teacher accounts and our student accounts are free and all of our curriculum in the catalog is free. So we encourage you to sign up and explore along with us today as we work through some teaching options for Python and also work through a lesson as a student together. No harm in signing up, exploring along with us, maybe building some muscle memory. If you can put the Zoom in one half of your screen and put the CodeHS website in the other half of your screen, it'll be easy to follow along today. Build up some muscle memory as we navigate the site because CodeHS has a ton of curriculum and we have a ton of teacher tools, and we want to make sure we get you comfortable with both sides of that today.

There are some questions like where do you teach, and if you want a verified teacher account which gets you access to solution code and problem guides, you will need to answer a few questions. Our team will verify that yes, you are a teacher in a school and should have access to those resources, and that usually takes 24 to 48 hours. But you can still participate as a student today, no problem there.

So again, if you've never heard of us before, we are a comprehensive platform for teaching computer science K through 12. I know our name is CodeHS. We did start only providing high school level curriculum, but through the years, 14 years now, I can't believe it. 14 years of CodeHS building curriculum, providing high-quality instructional materials to folks all over the US and the world, we have realized that even young kids can benefit from learning computer science and having exposure to computer science concepts. From that initial high school curriculum, we have created courses now for middle school and for elementary school.

All of our courses are web-based, so everything your students need lives in the CodeHS environment and is very easy to use for any student with a device. As long as it connects to the internet and students have decent internet and a device, they can participate in computer science learning and we love that. We do also have lots of teacher tools which I mentioned, some LMS features you might be familiar with like the ability to message with students back and forth, the ability to grade assignments, and provide feedback to students on their work. All of this is web-based, no additional downloads or plugins needed to use the CodeHS platform from the teacher perspective. So, love that.

All right, we've gained a few attendees. This is amazing. Happy to dive in now to our Python courses. So, what are your options? You know that you need to teach Python, but what's the right CodeHS course? Because I mentioned that our curriculum catalog is vast. If there's one thing I can say about CodeHS, it's that you will never run out of material to teach your students. There is always something new being developed, improved, and so the choices are numerous for Python. It's a very popular coding language. So, we're going to take a brief preview of some of our most popular Python courses and then we'll get Scott's advice on how he picks which content might engage his students.

I'm going to put a link in the chat again to our overview and syllabi. Introduction to Python programming is a year-long course appropriate for entry-level high school programmers, about 120 contact hours for your students. It's fun, going from really basic programming concepts to progressively more complex programming challenges, an awesome course in our introduction to Python programming. If you are looking for something very visual that will allow your students to be creative with their coding and the output is immediately rewarding, Python Basics with Tracy the Turtle is a good option for both middle school and high school.

Then of course we have our AP CS Principles course that is available in Python. It's available in a couple other programming languages also, but I didn't want to fail to mention it here because if you are going to teach AP CSP, Python might be a great option for your students because the language itself is pretty simple as far as syntax goes. Definitely check out those options whether you are middle school or high school.

So our first question for Scott: what is your favorite CodeHS Python course?

I would say that I've used two. The ones that are listed there, the introduction to Python programming, that's one that I've used with my high school students before, and also the Python basics with Tracy the Turtle. Those are some of the go-tos that I've used in the past. I don't really deviate a lot from that, but those are the ones that have worked the best for me in the past. And for those of you that are new, I know we had some people joining you and you're like, "Oh, this might be overwhelming." Understand that as we go through this, while these courses might seem overwhelming, there are a lot of supports built in to help you out. And we'll talk more about those in a little bit.

Awesome. Well, glad that you have helped your students experience a lot in the Python universe. To follow up, Scott, you have a broad CS background. You mentioned at the top of the hour that you kind of handle a lot of technology in your district, and so wondering if that trickles to your students in conversation and what kind of computer science topics really tend to engage your students the most.

You know, if you're looking at today, the thing that really gets my students fired up isn't necessarily talking about like the syntax of Python coding as much as the big one, which is artificial intelligence. That's the big one that comes out or that comes to mind. Then looking at just going through the course catalog, game design is also something that really gets kids excited about computer science. With AI there's a lot of discussion points that come into that and it's a very exciting area of computer science, but it also is one of the most controversial. Those are usually the ones that I see the most interest in.

Yeah, I love that answer because Python is frequently used in data science, and data science leads to large language models, right? A lot of the AI tools, the generative AI tools that we use, are built on data. So that kind of throughline of Python to data science, once students are a little more advanced, and then AI how it's built, I didn't have room on this slide, but yeah, that is a great connection back to Python is that AI piece.

I will say for folks who maybe are new to the AP CS Principles course, that course, the coding piece is in Python in this version, but it also includes topics like how the internet works, digital literacy, and a lot of other topics in safety and cyber security. So it's a great kind of general CS course to get students interested in the various aspects of the field of computer science.

Thinking about this kind of flagship Python course that we have at CodeHS, I do want to come back to it because we recognize the need for more advancement and more learning opportunities for students. Coming sometime, probably not this summer in time for the fall, but we are doing an advanced Python programming course. I wanted to highlight today what's in this intro course so that if that does ring a bell for you like, "Oh maybe my students are ready for something a little more advanced in Python," you can have a foundational knowledge of what's in this course and be prepared to maybe dive into that advanced Python course when we launch it in the fall. Course overview page here for you, and then also I did already put the link to the syllabus in the chat, but let's break this down module by module.

So we're starting with Carol. Carol is our mascot. You can see her over my shoulder here. Carol is a fantastic way to really introduce novice computer scientists and new students to the world of coding because Carol is a dog. She only knows a few commands. So, in this Carol Python module that starts this course off, students are only going to have to worry about a handful of lines of code in order to get Carol to navigate a world where she can go straight, turn left, put down tennis balls, take tennis balls, and paint squares in her grid world. A very easy introduction to Python programming and the syntax of the language while keeping the commands and structures that students need to know pretty limited.

But then we get into actually coding real Python functions, defining functions, calling functions, defining variables, using them in our code, creating loops and conditionals, all that fun stuff. You can see that as the course builds, students get to build some fun games and simulations to help them really engage with the content and be inspired to keep pressing forward with their computer science learning. There's a mad libs project, a quiz games project, and then a password authenticator. Then towards the second half of the course, the project game of pig. If you are familiar with the dice game where you roll two die and you keep rolling and banking your points as long as you're brave enough before you pig out and roll two ones, then your turn is over and you get a zero for that turn. A really fun motivation for students to continue on their coding journey.

In the last part of this course, we get into data. As I was just saying, data science is really interconnected with Python. So we get into data structures in Python, and then the file IO process of processing information from text files. The end unit here is roles in a software development team where students just explore what it might be like to work in their career as a developer. We do also have some supplemental modules again, some more games, things to keep your students motivated, and also some assessments. The Python course can also support students' industry certification in the PCAP certification exam. That's from the Python authority who makes the rules of the Python coding language. They have a certification exam that we are aligned to.

A couple other options for you to consider: if you are in one of these states—Rhode Island, South Carolina, Arkansas, Texas, or Utah—we actually have state courses where we have aligned to a specific Department of Education created course, and we have made sure our curriculum aligns specifically to these state courses and requirements. Definitely check that out for your consideration as you are diving into the course catalog and considering what might work for you.

Also just throw out the idea of this course pathway. If you are in a building where it's not just one computer science course, but you need a pathway for students to get them through all four years of high school interacting with computer science, building career skills, and maybe getting some AP College Board credits, we have this pathway. It would start with the intro to Python programming course, which we just took a look at those units, then continue into the AP CS Principles course, then move students into data science and AI and machine learning. We just launched a new AI high school course, and there is fantastic content in that new course.

When you are sifting through the catalog, and I'm going to give you a minute here to do that, some things you might consider as you are trying to pick a course is: what difficulty level are your students ready for? Are they ready for an introductory level course or do they need more advanced curriculum and topics like an AP course, a data science, or an AI course? Do you just want to focus on programming like our introduction to Python course, or do you want to mix in some cyber security or web design or AI, which you can totally customize and do, or you might pick a course that is already built with those other topics included? Lots to think about there. Finally, timing: how often are you going to see your students? How many minutes a week? Might your students need some block-based coding before they get into a text-based environment? What topics resonate and spark your students' interest? And I showed you those states where we have specific state courses that focus on Python. Are there specific standards that you need to address?

So, Scott, when you are picking content for your CS courses, was there anything that you really had to make sure you covered when you were picking a CodeHS course? Which factor was most important to you as you were selecting Python content?

Well, I think a lot of it comes down to how I got started with CodeHS. Some of you are familiar with what's called the Hour of Code, which is generally held in December. I'll be the first to tell you that when I look at my classes, every class is very, very different, and we all know that—we're all professionals here, we get it. There's going to be times where what I do with my students, what I pick for my students, it might be that CodeHS is a big part of what we do in class, meaning we spend a lot of time with it, we spend a lot of time interacting with it. And then there's other times we don't. It just comes down to student needs. Some students, some classes that I've had can really handle the coding, others can't.

The biggest thing that I've noticed is when I've gone through the CodeHS Hour of Code, the one thing that's nice about that is you get a variety of different topics, whether it's coding, whether it's game design, just all sorts of different things. Doing those things gives you a sense from one class period, maybe two, of where students are at. Sometimes you walk into a class and it's great, students are helping one another. Other times it's like no, we got to figure out what we need to do.

I know this comes in for a lot of you. It was at my previous school where I taught a computer programming class. You have a bunch of high school students in this class. I think we had 13. Some of you have lots of kids, a lot more than that—who knows, 40 or 50. Some schools really want to be efficient. The tough part is sometimes it's like, "All right, I'm going to teach them Python, we're going to go to intro to programming with Python and that's the route we're going to take," and you don't know a lot about those students. That's okay too, just kind of picking something, go with it. We're all professionals here, you can always back away from it. Sometimes things just don't go the way we want them to, and it's happened to me plenty of times. If you do know your students or get an idea of your students, like I said, the Hour of Code is a great way to kind of get that foundation, even with advanced-level students. That's something you can work on.

Yeah, I will actually pull up our website for Hour of Code and put it in the chat because you're right, it is a great way with just these little short snippets of interaction to be able to sort of take the measure of your students. Not only their skill and their readiness for coding and that logical computational thinking, but also just their interest in a variety of different topics. You can see here we have art, we have music, sports—there's all kinds of great activities. These are totally free and you can filter. You have a couple filters here for you if you'd like to try those out.

I think it's such a good point, Scott, that you can have a plan and then you can change your plan, right? If it's not working, if your students are getting in a rut with the coding piece, switch the topic and bring in a different computer science angle for them to explore. It's really easy to do that. We can show you folks out there how to customize a course. It's free for our users to add in content and switch up the order of content. So, if you're using a course that has a lot of coding at the beginning and your students just need a break, you can throw in a unit on how the internet works, the internet of things, or binary and how computers work at that electrical signal level. Always something to mix up and kind of refresh students' interest in the subject matter for sure.

And I think, if I might add too, I know some of you have a chance to name your classes, others of you don't. In my viewpoint, whenever you go to computer programming and talk about computer programming—if that's the name of the class—then you're really stuck talking about computer programming, and I don't mean to say that in a negative way. If you can somehow through your school get it to be called computer science, that way you can touch on not just computer programming and coding, but you can touch on other subjects because to Stephanie's point, there are some kids where it's not that they're causing trouble, it's just the coding and the programming just doesn't hit for them.

Yeah. And there's just so much to the field that any chance we get to expose students to something that might interest them for the long term and lead to a career, that's great exposure for students for sure.

Thinking about this flagship Python course that we have at CodeHS, I do want to come back to it because we refreshed it two years ago and it is a great course. But we recognize the need for more advancement and more learning opportunities for students. Sometime, probably not this summer in time for the fall, but we are doing an advanced Python programming course. I wanted to highlight today what's in this intro course so that if that does ring a bell for you, you can have a foundational knowledge of what's in this course and be prepared to maybe dive into that advanced Python course when we launch it in the fall. Course overview page here for you, and then also I did already put the link to the syllabus in the chat, but let's break this down module by module.

So we're starting with Carol. Carol is our mascot. You can see her over my shoulder here. Carol is a fantastic way to really introduce novice computer scientists and new students to the world of coding because Carol is a dog. She only knows a few commands. So, in this Carol Python module that starts this course off, students are only going to have to worry about a handful of lines of code in order to get Carol to navigate a world where she can go straight, turn left, put down tennis balls, take tennis balls, and paint squares in her grid world. A very easy introduction to Python programming and the syntax of the language while keeping the commands and structures pretty limited.

But then we get into actually coding real Python functions, defining functions, calling functions, defining variables, using them in our code, creating loops and conditionals, all that fun stuff. You can see that as the course builds, students get to build some fun games and simulations to help them really engage with the content and be inspired to keep pressing forward with their computer science learning. There's a mad libs project, a quiz games project, and then a password authenticator. Then towards the second half of the course, the project game of pig. If you are familiar with the dice game where you roll two die and you keep rolling and banking your points as long as you're brave enough before you pig out and roll two ones, then your turn is over and you get a zero for that turn. A really fun motivation for students to continue on their coding journey.

In the last part of this course, we get into data. As I was just saying, data science is really interconnected with Python. So we get into data structures in Python, and then the file IO process of processing information from text files. The end unit here is roles in a software development team where students just explore what it might be like to work in their career as a developer. We do also have some supplemental modules again, some more games, things to keep your students motivated, and also some assessments. The Python course can also support students' industry certification in the PCAP certification exam. That's from the Python authority who makes the rules of the Python coding language. They have a certification exam that we are aligned to.

A couple other options for you to consider: if you are in one of these states—Rhode Island, South Carolina, Arkansas, Texas, or Utah—we actually have state courses where we have aligned to a specific Department of Education created course, and we have made sure our curriculum aligns specifically to these state courses and requirements. Definitely check that out for your consideration as you are diving into the course catalog and considering what might work for you.

Also just throw out the idea of this course pathway. If you are in a building where it's not just one computer science course, but you need a pathway for students to get them through all four years of high school interacting with computer science, building career skills, and maybe getting some AP College Board credits, we have this pathway. It would start with the intro to Python programming course, which we just took a look at those units, then continue into the AP CS Principles course, then move students into data science and AI and machine learning. We just launched a new AI high school course, and there is fantastic content in that new course.

When you are sifting through the catalog, and I'm going to give you a minute here to do that, some things you might consider as you are trying to pick a course is: what difficulty level are your students ready for? Are they ready for an introductory level course or do they need more advanced curriculum and topics like an AP course, a data science, or an AI course? Do you just want to focus on programming like our introduction to Python course, or do you want to mix in some cyber security or web design or AI, which you can totally customize and do, or you might pick a course that is already built with those other topics included? Lots to think about there. Finally, timing: how often are you going to see your students? How many minutes a week? Might your students need some block-based coding before they get into a text-based environment? What topics resonate and spark your students' interest? And I showed you those states where we have specific state courses that focus on Python. Are there specific standards that you need to address?

So, Scott, when you are picking content for your CS courses, was there anything that you really had to make sure you covered when you were picking a CodeHS course? Which factor was most important to you as you were selecting Python content?

Well, I think a lot of it comes down to how I got started with CodeHS. Some of you are familiar with what's called the Hour of Code, which is generally held in December. I'll be the first to tell you that when I look at my classes, every class is very, very different, and we all know that—we're all professionals here, we get it. There's going to be times where what I do with my students, what I pick for my students, it might be that CodeHS is a big part of what we do in class, meaning we spend a lot of time with it, we spend a lot of time interacting with it. And then there's other times we don't. It just comes down to student needs. Some students, some classes that I've had can really handle the coding, others can't.

The biggest thing that I've noticed is when I've gone through the CodeHS Hour of Code, the one thing that's nice about that is you get a variety of different topics, whether it's coding, whether it's game design, just all sorts of different things. Doing those things gives you a sense from one class period, maybe two, of where students are at. Sometimes you walk into a class and it's great, students are helping one another. Other times it's like no, we got to figure out what we need to do.

I know this comes in for a lot of you. It was at my previous school where I taught a computer programming class. You have a bunch of high school students in this class. I think we had 13. Some of you have lots of kids, a lot more than that—who knows, 40 or 50. Some schools really want to be efficient. The tough part is sometimes it's like, "All right, I'm going to teach them Python, we're going to go to intro to programming with Python and that's the route we're going to take," and you don't know a lot about those students. That's okay too, just kind of picking something, go with it. We're all professionals here, you can always back away from it. Sometimes things just don't go the way we want them to, and it's happened to me plenty of times. If you do know your students or get an idea of your students, like I said, the Hour of Code is a great way to kind of get that foundation, even with advanced-level students. That's something you can work on.

Yeah, I will actually pull up our website for Hour of Code and put it in the chat because you're right, it is a great way with just these little short snippets of interaction to be able to sort of take the measure of your students. Not only their skill and their readiness for coding and that logical computational thinking, but also just their interest in a variety of different topics. You can see here we have art, we have music, sports—there's all kinds of great activities. These are totally free and you can filter. You have a couple filters here for you if you'd like to try those out.

I think it's such a good point, Scott, that you can have a plan and then you can change your plan, right? If it's not working, if your students are getting in a rut with the coding piece, switch the topic and bring in a different computer science angle for them to explore. It's really easy to do that. We can show you folks out there how to customize a course. It's free for our users to add in content and switch up the order of content. So, if you're using a course that has a lot of coding at the beginning and your students just need a break, you can throw in a unit on how the internet works, the internet of things, or binary and how computers work at that electrical signal level. Always something to mix up and kind of refresh students' interest in the subject matter for sure.

And I think, if I might add too, I know some of you have a chance to name your classes, others of you don't. In my viewpoint, whenever you go to computer programming and talk about computer programming—if that's the name of the class—then you're really stuck talking about computer programming, and I don't mean to say that in a negative way. If you can somehow through your school get it to be called computer science, that way you can touch on not just computer programming and coding, but you can touch on other subjects because to Stephanie's point, there are some kids where it's not that they're causing trouble, it's just the coding and the programming just doesn't hit for them.

Yeah. And there's just so much to the field that any chance we get to expose students to something that might interest them for the long term and lead to a career, that's great exposure for students for sure.

Scott, I don't know if you remember however many years ago it was, your first year teaching with CodeHS. How would you say the pacing went? Did you get through that 120 hours of content or what advice do you have for our first-year teachers trying to wrap their minds around how to get through all this material in a semester or a year or whatever they have available with their students?

Yeah, it's a little bit of a challenge and I'm not going to sound like the perfect teacher because I certainly am not in this case. But when I taught a semester of computer programming at my previous school, it was very evident after the first few days that we had a wide variety of ability levels. All right. For me to tell you that I stood up in front, lectured, explained, and did those types of good things, I'd be wrong. I would say this, and it's kind of like I said, what works for me may not work for you, but I know some of my students could go through that intro to Python class really quickly. So, I let them work ahead. We'll talk a little bit about how we made sure that they didn't cheat—that's a whole different discussion a little bit later.

For students that I knew it was just going to be a little bit slower, one of the advices I would have when you're pacing things is don't be afraid to let the students work through the material themselves with your guidance and your facilitation. It's also important that some of you who are new to computer science and don't know a lot about Python coding or the topic, it's okay to tell the students you don't always know the answer but we're going to work to find it. I found it really helpful, granted I only had 13—some of you have 26, some of you have 40, who knows what you're going to have—but I found it helpful if possible to have the higher-level students, the students that it came easier for, help the students that had more questions.

When you talk about pacing, yeah, there's going to be some students that get done earlier than others. Then the question becomes what are those other enrichment activities that you're going to have the higher-level students do? Granted, some days it might be, "Hey, if you have something else you need to work on, great," or maybe it's another programming assignment, or, "Hey, can we figure this out?" Trying to find that practical problem for students to solve can be very helpful to them. That takes a lot of time. I don't know if I have the perfect answer to that.

No, those are so many good points in that answer and I think the one that I will pick to kind of reiterate is student choice and a project, something that they're passionate about. Like if it's music, if there's a band that they love and they want to build a program that will randomize a playlist of that band's songs, or if they really like the Tracy the Turtle Python programming and they want to create a piece of art, we have the CodeHS Sandbox. Students can always, after they finish a lesson in your class period, move over to the Sandbox and code anything from scratch in either one of those languages. So, Scott, did you ever use the Sandbox?

A little bit. Not maybe not as much as I should have, but yes, I have.

We'll make sure we touch on the Sandbox a little bit later because it's definitely a place for students to grow and take their creativity and their passions and intertwine them with computer science.

At this juncture, I'm going to put in the chat a link to our course catalog. And I just want to give folks a minute to explore the course catalog. A link is in the chat and we have a lot of great filters here. If you're a middle school teacher, you can select middle school. If you want to see if we do have a course that is aligned to specific state standards in your state, we have a drop-down menu for state standards. Then you can also in this menu select Python, and that will bring you to our most recently updated and most popular Python courses at the top. As we scroll down, some are tangential to Python, maybe some more advanced topics with Python. We do also have some physical computing options if you are lucky enough to have micro:bits or Arduinos in your classroom. Please take a minute to just look through the catalog and if you have any questions, throw them in the chat, and hopefully Scott and/or I can answer them for you about courses, projects, and assignments. So, I'll give you one minute to look through the course catalog here.

All right. So, any questions, feel free to put them in the chat and we will continue on here. I'm going to ask you all to put on your student hats while Scott and I get to be teachers. This is my favorite part of doing professional development is getting to put on my teacher hat and lead you all through a lesson. So hopefully you have finished the sign-up process that you started at the beginning of the webinar here today. Now what you can do is you can actually join our intro to Python section as a student. In the chat, you will see "join the section as a student" and there's a URL: codehs.com/go/5df3d. Once you click the link in the chat, you'll see a page that says "join section summer webinar Python." Scott and I are listed as teachers. Click that big blue button that says "join section." We are going to look for module two, unit two. We're going to work through this lesson: Intro to Programming with Carol. Because I love Carol so much, our mascot, I couldn't help but include a lesson with Carol.

All right, so I want to show you the student side also. I'm going to navigate to the student side as well. Let me find our summer webinar here. Great, we've got 14 students already. Y'all are awesome, getting in, getting ready. All right, so if I navigate to the assignments, I can actually switch from my teacher view to the student view. This is something you might want to do. Scott mentioned earlier that if you have never learned Python before and you are one day ahead of your students or shoulder-to-shoulder with them learning, that is okay. A great way to do two positive things at once here: you can learn Python and also get familiar with the assignments that the students are working through. On the teacher side, I'm just going to click "switch to student view." You can do that too once you have a Python section set up.

Now this is what you are seeing. So if you are side-by-side Zoom and CodeHS, I hope you have enough screen real estate to do that. We are going to work through this lesson in unit 2 together. We have units or modules interchangeably used here at CodeHS. The lessons are these vertically listed 2.1, 2.2, to 2.3. You might find that these take about—the more intro ones take about half an hour for your students to get through. You can fit in two lessons a day, but once you get to the more complex lessons, they're usually paced for about 45 minutes per lesson.

On the student side, the activities, what you're going to complete if you are new to Python and what your students are going to complete are these icons listed horizontally. A lot of our course content is delivered via short videos. We can see that we have a video as our first activity in this lesson. Then, we have a quick check for understanding. It's labeled as a quiz, but it's really a more formative type of assessment: did we internalize what we watched in the video? There will often be an example program. These are fully coded programs; they already work. Students hit run, they see what the output is, and they're meant for students to be able to tinker and explore, try to introduce bugs into the code, and see what happens when they change different values. It's really an exploration place where students don't have to be afraid of breaking a program that they worked really hard to write.

These pencil icons indicate a coding exercise where students will either get some starter code or maybe just a blank editor to start coding in. They have to complete a coding challenge with directions, sometimes very specific to certain activities having very specific function names or very specific variable names, and sometimes they'll be a little bit more open-ended.

These stethoscope icons are debugging activities, and I love that we have these in our curriculum because debugging is so powerful for students. It really takes the cognitive load of typing every single character out and lets them focus instead on what's on the screen. Debugging is such an essential skill for all programmers. You can see there are a couple other types of icons here. We have these two little pieces of paper; this is an open-ended reflection for students to write a couple sentences, and this one is reflecting on what they've learned so far in the three lessons. Then we also have badges—digital badges that students can earn as they go along through the course.

So let's get started, students. Let's put on our student hat and see what this content is all about. I'm going to re-screen share because I'm not sure that I shared the sound, so let's try this. Oh, come on internet. All right, let me do some work here.

That's one other thing, Stephanie, I probably should mention too for some of us in our classrooms: when we have the internet that may or may not work as you're working through these assignments. Yes, students can do these things at home. Just be aware of your internet capabilities in your community. I come from South Dakota. I see a lot of people were from like Florida and different places like that. Where I come from is pretty rural; I'm on the eastern side of the state. The community I live in is about 2,300, a farm community. Up until a few years ago, we had satellite internet, and if you know anything about satellite internet, it's not good. Some things to think about. I'll let Stephanie play her video, sorry, I was trying to figure things out.

No, you're good. You're good. I love all the advice, the real-world experience. It's just important to be aware of what your students have at home or what they don't have at home. Like I said, some people have money, some people don't. Some people live in areas where there's good internet, some people don't. Those are all things that play into this.

All right, so you've got your student hat on. We're ready to engage with this content. We're going to learn a little bit of introductory level Python. So, I'm going to play this video for us.

"Hi. In this video, we'll be going through an introduction to Carol. So, who or what is Carol? Well, Carol is a dog that listens to your commands. And this is a picture of Carol. Programming or coding a computer is like giving commands to a dog. Just like a dog may only understand some specific commands, our computer program can also only work with a specific set of commands. So, what exactly can Carol do? Well, we can have Carol move around the world and we can put down and pick up tennis balls. So, here's Carol's world. It's a grid world with walls around the edges and a dot represents each space where Carol can stand. So, what specifically can Carol do? Carol knows four commands. Carol knows how to move, turn left, put down a ball, and take up a ball. The move command moves Carol one space forward. The turn left command moves Carol 90 degrees to the left. The put ball puts down one tennis ball on the space where Carol is standing. And the take ball picks up one tennis ball from the space that Carol is standing on."

All right. So, you can see this video goes very introductory, step-by-step, everything that students need to know. You could have this up on the projector at the front of the room and you could let the video play and you could pause it, make sure students are following along. Or you could also, once you're a bit more familiar with the content, choose to teach from the slides. Up here at the top, remember we're in student mode, but both teacher mode and student mode have access to these videos and to these slides. If you as the teacher want to do a little bit more direct instruction, you are feeling confident with Python, you want to add a little pizzazz and some personal flair to the content, you have full access to the slides and can edit them and do what you want with them. All these slides are exactly what we saw in the video.

Maybe we come to this slide where we're learning the four commands that Carol knows, and we're going to explain that the naming conventions, the syntax of Python, require that we use all lowercase letters, that if we have more than one word we put an underscore in between the words, and that we have the open and closed parenthesis. These are requirements of the Python coding language. We can get into a little more detail and provide students with a little more context if we want to teach from the slides.

All right. So, let's say we've gone through all of these slides and we are ready to move on. Take a look at the bottom of the screen here. You can see that my lesson 2.1 is yellow. These colors—gray, yellow, and a couple of versions of green—are going to be important indicators for both you and students throughout the platform. Yellow means that I have started an activity, but I haven't completed it yet. Gray means that I have not opened that activity yet. Watch what happens when I click on continue to move on to our check for understanding. Now that video is complete, I've earned my point and I've moved on to this quiz.

All right, students. Help me out in the chat. What did we learn? Which of these is a valid Carol command? `move` all lowercase, `MOVE` all capital letters, `move()` open and close parenthesis, or `move(1)` open and close parenthesis with a one for a parameter. Which one of these did we learn that Carol knows? Ah, very good audience. Yes, this answer is `move()`. Python can have parameters, but in Carol's world, Carol doesn't know parameters; she only knows `move()`. If we click check, then we get a little confetti up here. Yay, we got it correct. If we got it wrong, we would get some feedback about what was wrong with our answer.

All right, students. Which of these is something Carol doesn't know how to do? What did we see in those four commands that Carol knows in this part of our course? What do you think, students? All right, so this one: Carol does know how to turn left, she does know how to move forward, and she does know how to put down a ball, but she does not know how to turn right. If we needed to, we could go back to our slides or our video and reference anything we wanted to while we take this quiz. So there we go.

Now our quiz is green, and we've moved on to this example program. So, Scott, I'll ask you, how do you implement example programs with your students? Because all students have to do is click play, run the program, and then they can click continue and move on. Oh, look, we have our little soccer ball instead of a tennis ball for the World Cup. Yay, I love it when they change up Carol's world. Example programs, all students have to do is click run, move on. There's not a coding assignment here for them. How do you implement them and get students to engage with these examples?

Yeah, one of the things, Stephanie, I wanted to talk about just before we get too far: I know sometimes when we watched a video, if we went to the chat, I know some of you would probably say that YouTube is blocked, maybe, maybe not, depending on your school system. The one thing that's really nice that I found very, very helpful in my career is, in my previous school district, YouTube was blocked. Kids couldn't get on it. If they went to the CodeHS link button here, they were able to view the videos. That is tremendously helpful, made a big difference.

A lot of times, the one thing I try to do with examples that I give is I try to make it fun. For instance, with Carol, as we go through this together—and granted, there are times we go through things together, but as I mentioned before, we do some things self-paced—sometimes I just try to have the kids, and this is maybe more for my middle school kids than anything, I will try to have them help me do this and I'll play the teacher that doesn't know what he's doing and have Carol do things that don't accomplish the task to try to get the engagement piece with that. High school students, as we all know, want to get through things fast and move forward.

One of the things that's helped with my high school students is I'm blatantly honest. I'm like, "Listen, if you just kind of click through things, it's not going to help you when we get to assignments, it's just not going to help you." I try to address it from a humorous standpoint. Humor has a good way about things, and I try to be humorous about it, trying to have them work through that. A lot of it comes down to—and I realize that many of us have big classrooms, you have a lot of students, I had 13—it was really easy for me to walk through the room and check and kind of see how things were going. This point where we're at right now is a checkpoint, trying to figure out things. We always worry about what happens if a student continually goes through and continues and continues, well, it's going to show up at some point, and it's going to show up at some point that things aren't going to work as well for them.

Yeah, I love that use case of letting students have those moments where they make the wrong choice and then there are consequences, right? Sometimes we need to learn. A couple things I would like to point out here in this Carol IDE, or programming environment, is that students have the option when they are working in this editor to step through the program. This is really great for debugging. Each line is highlighted as Carol completes the action. They can also slow down the animation and watch the lines of code highlighted, or they can speed up the animation and watch it happen really fast.

The other thing is that when they click example and they're not in a Carol coding environment, when they get to actual typing Python, they will maybe have a suggestion here like, "Hey, take out the parenthesis and see what happens," or, "See if Carol can turn right instead of left." Sometimes in these examples, there is a little something suggested that they tinker with and explore with, but not always.

Let's continue on to our first coding exercise. Over here on the left, we can see the result world that we want to get Carol to in order to successfully code this assignment. Here is our starting world where Carol has a soccer ball located at the fourth row over. We basically want to take that soccer ball away and have Carol finish in this spot with no soccer ball. We have a quick view of the commands that Carol knows over here on the left. If we want to collapse that, we can give us some more coding real estate here. Whatever we type, we can click run, test it. Oops, I have a mistake here because I know that Python has to have open and close parenthesis. I can run it and, let me reset first, I can get Carol to move, but I still haven't accomplished that ending world.

I can also click on test cases to get some feedback about my code. If I need a reminder of what the goal of the program here is, I can click on assignment. Then a great one, and Scott, I would love to get your routines on how students approach getting help in your classroom because this docs tab is a huge benefit to students if they know it's there, but you got to train them. Scott, how do you approach students asking for help and this resource of the docs tab here?

Yeah, I think what you run into, what I do is this: in the class that I had, we had students that were at different points. As I mentioned earlier, your brain as the teacher is going to really be confused on which points people are at, and that's okay. One thing I do is a lot of talking through with students. I'll sit by them, I'll help them, and I'll talk about the different supports that they have available to them. I'll say, "Okay, let's go over into the docs, let's take a look at what we have there, let's see what we need to do."

The other thing that I'm guilty of too is I always have my computer and the answer key, and we kind of look through it together. For those of you that have had students or maybe you yourself have programmed or coded before, you know there's a lot of collaboration that goes on. The other thing too, and I always thought it was kind of weird, is there is a way for the students to communicate with you as the teacher. I don't use it a lot, but I found it kind of weird. It's like, why are you messaging me? We're 13 people here. But you have to understand that students are going to connect with you in a way that they feel the most comfortable. 15 years ago, I'd have been like, "All right, hey, you just need to learn and come up to the desk." Sometimes it's as simple as, "I need help, can you come over here?" and they're not willing to shout out. So, I try to model that, and I've learned to be more understanding to those that actually want to communicate with me through the messages.

Yeah, this is such a great feature, thanks for pointing it out. When students go to the more tab, they can click on conversation and they have the ability to send the teacher a message here. This one, my student Stephanie already sent a message: "Hey, I'm not sure about this one." Then as the teacher, I could just reply back here. This is great if you are teaching remote or virtually or asynchronously from your students; this is probably a huge help to really train your students into the routine of using this conversations tab. There is a spot on the CodeHS teacher side of the platform where you can see all of these conversations in one spot.

As Scott was saying, if you are allowing students to self-pace through course content or you've assigned a module due by Friday, there's going to be tons of exercises for students to accomplish in that one unit, and you might not remember what your first Carol program is supposed to be doing, right? Training students to use this conversations tab allows you to open up their question right next to their code in this exact view and be able to answer them really efficiently.

Yes, the docs tab here where students can search—if they forget how to write a for loop in Python, they can navigate through this documentation and go, "Oh yeah, it's `for i in range`, that's how I write a loop in Python." That's a great resource. Conversations is a great resource. Alternatively, we also have access to the slide decks from the videos. This is also great when students are stuck; you can say, "Hey, go back to the video slide deck and look at the commands that are available to you," right? I like that these slides can be right here next to the student code.

Scott mentioned coaching with the solution. Once you are a verified teacher on the platform, you will see this option to view the solution code. Yes, use this as a coach, a debugger to help you quickly help students debug their code, to help coach them to the correct solution without giving away the answer, obviously.

The last thing I'll point out here in this more tab is code history. We don't have an undo button in the editor here. What we have instead is code history. If students get their code in a state where it's so messed up they can't remember when it worked last, they can go back to the starter code if there was any—in this case, there wasn't. But you can see every timestamp. If I physically click save, if I run my code, if I paste code into the editor, all these things trigger these snapshots. I could go back and get back to a place where my code was working. Those are the great features of the student side.

Let's hop over to this debugging exercise just to show you what it looks like. Again, I think these are such a gift to students to be able to say, "Okay, there's some funkiness happening with this code, but I don't have to worry about typing out every single character. I can just fix it to get Carol to get to this ending world where she's on the third column here." Let's just click run, see what happens. `turn left is not defined on line three.` We know that there's an issue here. Maybe we can fix that. Run it again. Still have an issue with turn left. Oh, well, that's not supposed to be capitalized. Then, you know, oh, maybe I noticed that `move` is missing its parentheses, since all these turn lefts have parentheses, `move` probably needs it too. Now I can—let me slow this down and run it—and we can see that Carol gets to that correct ending world after doing a little circle, a backflip if you will.

Love these lessons, love that students get all this great feedback and instantaneous information about their learning. It's just a really great way for students to work through learning computer science.

Scott, I do want to ask because in my two years with CodeHS, I've worked with a lot of teachers, and some teachers will let their students just go at their own pace—everybody's learning something different every day of the week—other teachers really like to keep their students all together learning the same things on the same days. Have you tried it both ways? What brought you around to letting students self-pace? And are there any limitations or kind of guardrails you put on self-pacing?

Yeah, I'm going to talk about a couple things. In the last section when you were talking about seeing the students' code, I'm going to talk just a little bit about that. I know a lot of times there's always a concern about cheating and different things, and when you look through people's code, you can get a sense of where they're at or whether they're trying to get to certain places. That's extremely helpful to me. They can be way off-kilter, but at least you have an idea that they're trying to get to where they need to be. Whereas, if you don't see a lot of information there, maybe they are cheating.

The other thing I also noticed too is one of the most challenging things about Python for my students: spelling and grammar, making sure everything's spelled and indented through some of those things. Stephanie, remind me—sorry, I got off the subject a little bit there—but what was the question again that you wanted me to answer?

Yeah, it was: you do some self-paced and allow students to work at their own speed, do you put any guardrails on that? How do you get students collaborating, communicating, and on the same page even though they maybe are learning different things at different times?

I'll give you an example. I have a colleague that's a computer science teacher, a very successful computer science teacher, and I would say that we both do well, but we are both very different. He is very much more of a "we're going to stick together" type of person. The good is I feel that everybody's on the same page, everybody can help one another out, you know exactly what everybody knows. The problem with that is, if he ever happens to be gone, it's hard for the students to move forward because he is the leader of the class, as I am, but it's harder for the kids to kind of move forward because they have to get all the information from him. But the students that come out of his classes do know their stuff and are ready for college, there's no doubt about it. They are ready for the university setting.

In my realm of things with the self-paced part of it, it's really nice that if I happen to be gone, students know how to get supports in order to help themselves through things. Is there something to be lost through self-pacing? I think that there can be. Yes, of course there can be. Sometimes when you do self-pacing, it might take you a little bit longer to realize that somebody isn't getting it; they're over in the corner, they're off-task, and in some cases, the danger is they can get too far off. The tough part for me is when students need help when you're self-pacing, trying to process and get your mindset of where you need to be for that specific student. My colleague doesn't have to do that; he has his lesson plans, he knows exactly where things are, and he does a fantastic job with that.

There's a gift of independence and then there's also the drawbacks. Are there collaboration opportunities in my class? Definitely. In his class? Definitely. Self-pacing, well, what happens if students get done early? Stephanie mentioned the Sandbox. With some of my middle school kids, there are other little enrichment things that we do. It just kind of depends on your style and your level of control that you want to have. We're all different, and that's kind of where my belief is on things.

Yeah, that makes so much sense. I appreciate the two different perspectives there and the pros and cons of each, for sure. I did want to talk about classroom routines, and before we do that, I do just want to go back to our teacher view here and let's see if this will take me to it. Yes. Okay, so I want to point out lesson plans and I want to talk about the routines that are kind of inherent in the CodeHS lessons. If I open up these lessons, we can see again there's a video, there's a check for understanding, there's some examples, there's some exercises, there's some debugging. I think teachers who are new to using CodeHS will find some really high-quality instructional materials here. You'll find that there are lots of opportunities for students to get repetition in and get practice in, but we don't want to lose the communication, the collaboration, and just switching up routines every now and then.

I want to point out the lesson plans here. If you are a free CodeHS user, you have access to, I believe, the first five lessons in every course. If you're a pro user, you have access to all the lesson plans. You can find those by clicking here on these maroon icons, and they all look the same. We start with student-facing objectives. If that's something that is required for you to post and discuss with your students at the beginning of class, we've got those for you. The activities are what students engage in when they log into CodeHS. You do have access to the solutions and problem guides.

I'm actually going to pop into a problem guide because I think they're pretty special in that they give a lot more detail than just the correct answer. Here we can see some solution code. This is a possible solution for spelling out your name, one letter on each line as it's printed in the Python console. But also, our curriculum development team has been really careful about pulling out some common student misconceptions and ensuring that you have coaching points ready when students stumble upon these common problems. Then, with our more complex and advanced coding activities, we may also have "explain this to me" videos. This would be our curriculum developers walking you through the solution step-by-step in a short, like one-minute video. Love these problem guides, want to make sure that you know about them if you have access to our lesson plans.

Routine: if you're only doing coding in your course and students are kind of signaling maybe they're in a bit of a rut, Scott, how do you switch up your classroom routines? How do you know when students are ready to step away from the videos and the quizzes for a little bit?

Yeah, I think that's a good question. Depending on the classroom, looking at middle school, sometimes I'm very intentional about how long we are in CodeHS—how many days. I know that we're going to work on CodeHS for a few days to a couple of weeks, and then we're going to change it up to something different. High school is a little bit different; give them another task to do. Everybody knows that coding and looking at a screen and trying to figure out things can be very stressful. Giving them an opportunity to take a step back and do something maybe different.

Sometimes, with my middle school kids, we have little robots that we work through, and we do that—that's a little bit different. Sometimes it's changing up the routine of what we're doing rather than being involved in coding all the time, just changing up to something different that maybe we are studying. The other part of it is, one thing that I've learned is that when students learn things in CodeHS, if you can find an applicable way to have the students share their learning with others, it's very important. Sharing examples or showing middle school students or high school students how they can share their learning with younger students can be applied to anything we do. We have robots that we use with kids, and that really helps because it makes this meaningful for the students, it's a really good way for them to connect, and it also creates some good community in your school or in your school district.

Yeah, I love that. There are so many ways with computer science skills that students gain to show off their work and build a portfolio of work over the years. We have a teacher trainer who had his freshman students, at the end of their freshman CS class, build a web page for eighth graders coming into the school as freshmen—like everything you need to know about coming up to freshman level from 8th grade. I just thought that was an amazing way for them to apply their web design skills to an authentic audience just like you were saying. That's the robots, anyway. It also helps you grow your CS program, right? When younger kids see the excitement of older kids for a subject area, they're probably going to be more likely to sign up for that class because it looks fun and exciting and they get to show off what they learn. That's amazing, I love that.

One incoming eighth grader, the one thing she did—she was a fantastic drawer, a fantastic artist. We had to meet with younger students. She drew pictures of what the students were to code, and they were fantastic. It was very neat. I wish I had a copy to show you, but you think about just ways to engage kids, and it did engage the young people that we had. They were awesome, they understood it, they knew what they had to do, and it was really cool. That's my one little cool tidbit of the school year.

Yes. Well, there are always those kids who just blow you away, right? It's amazing. All right. Well, let's switch gears into just some basics about Python, why your students might want to learn it, and what courses might work for your students again. A reminder that those introductory courses are going to be your Python basics with Tracy the Turtle. I also did want to point out our middle school and mix-and-match has a Tracy the Turtle Adventures series. That one's really fun because Tracy, who's this tiny little turtle and she draws on the screen, she goes to the carnival and students are challenged to draw a ferris wheel with Tracy, and they're challenged to draw snacks like popcorn and corn dogs by guiding Tracy around the canvas. So really fun ways to get that immediate visual feedback as students are coding with Tracy the Turtle. Then upper-level courses again: advanced Python with AI programming, data science, and the PCAP certification prep course that we have.

As you can see, Python is really versatile. It's a general-purpose programming language and definitely used a lot in artificial intelligence and machine learning, data analytics, some back-end web development, and a lot with automation. So, it's a great workhorse in the coding language world. I did want to point out that in a survey of over 24,000 programmers and developers, Python ranked fourth most popular just last year. It's a very popular, very versatile language, great for your students to learn because the syntax is really quite simple when you compare it to other languages like Java and JavaScript, which have a lot of brackets and braces. Scott mentioned though a couple hang-ups with Python, and one was indentation. Scott, anything else you want to talk about like the syntax things that your students tend to stumble over and need kind of constant reminders on?

I think a lot of it comes down to—and that's the biggest part—any programming language has a syntax and just a way that you have to do things that's going to be a little bit challenging. It can be something as simple as forgetting the colon, or forgetting the indentations with that. That's why for me, sometimes when I just have the answer key around, not that I try to readily make it available to students, but just to kind of take a look at where things are.

Those are some of the things. I see with the problems with any coding language is that there's a point where people get frustrated. They've worked on it, they need a rest, they need to be away from it. If they do that, the next day, in a minute or two, they've got it all figured out. Sometimes it's stepping away from it. The other thing is, it's tough as we talked about viewing your code edits. Sometimes you need to remove—start from scratch and then go through it—and then sometimes you'll find the errors.

Great advice for all programmers, experienced and novice, for sure. Any other kind of routines or scaffolds that you want to talk about that maybe are unique to your classroom? You've given us some hints about what students kind of struggle with routinely, and you've told us about training students to use the docs tab, and if students want to use the conversations area to ask questions instead of raising their hand in class, you welcome that. Anything else you want to say about scaffolds or supports for student learning that kind of follow throughout the year?

I would say some of the built-in supports depend on knowing your students. Some of you will be able to know your students coming in because you've had them before, some of you won't. But I would say be very intentional. Like the young lady that I had that drew the pictures, I would be very intentional. If I knew that there were students in the class that were really going to struggle with topics but were willing to receive help, I would probably try to position a student that's very helpful with students that would struggle but are also willing to get help.

The other part of it too—and it might depend on the age group, some of you have classrooms where you're able to move desks, some of you don't—but I think it's very important that as an instructor, as a facilitator of Python, that you set up your classroom in a way where students can move and you can move to help one another. Sometimes, if you have—I can remember one of my classrooms there were just tables in there and you basically had to jump over the table to try to help people. I think it's just important that you have scaffolds in place. Another thing is, depending on the age group, you are able to have teacher assistants. In middle school, if you know that there's a high school student available that can come in and help and work with your students, that's very meaningful in a couple ways. That student likely has learned that material fresh; I learned the material 20 years ago, whereas the high school student might have learned it two years ago, one year ago, or six months ago, and maybe they can better relate the information to the students in your classroom.

Awesome. It sounds like you have just a very comfortable, supportive environment that you've built up with your students, and that's very special and impactful, for sure. For folks out there who have maybe never taught Python or never learned Python before, know that you can bring what you might know in another coding language, even Scratch or Scratch Junior or another block-based coding language, and bring those control structures and those data structures over to Python. Those are things that are common to almost all coding languages: loops, conditions, functions, and data structures like variables, parameters, or lists. These are things that are the backbone of all coding languages. If you know anything in any language, it's going to be useful to your Python learning. Scott, anything you want to add about advice for educators who are learning Python for themselves?

I think the main thing is this: don't feel that you have to know everything. Okay. I'm certainly not the most gifted Python programmer there is. Unfortunately, we live in times where everybody wants to be the expert, nobody wants to mess up. When you're doing something new for the first time, CodeHS is going to help you a lot. That's the big thing, there are a lot more supports. When I tried to teach coding and programming in 2010, there just wasn't a lot out there. There are just a lot of supports that are out there. Understand too that when you talk about grading, and you talk about all these questions that you might have about AI and different things, it's important to teach Python because Python's going to help students understand AI better at some point. Just understand what you're doing is important. Anytime you do something new for the first time, it's challenging. But I will also say this: it's less challenging because of CodeHS, hands down, because you've got some information in front of you as opposed to just trying to create it from nothing.

I appreciate that shout-out very much. All right, so I think you had promised to talk to folks about academic integrity. So which of these questions do you want to tackle in our last couple minutes here?

Academic integrity, it comes down to this: I think it's very important that you're upfront with your students. With my high school students, I was very frank with them. I was like, "You know what, you can go through—now, this is before AI really came out and was very prevalent—you can probably find all these answers somewhere." I approached it from the standpoint of: I want you to learn Python. I don't want you to feel like we have to take a test, we have to do this, we have to do that, and you're going to fail. My biggest thing is I want them to learn it. The grading wasn't as important. Some of you will feel differently, and that's perfectly fine.

What about students using AI to cheat? We all know that students are going to try to gain whatever advantage they have. My approach to it is sometimes you can even model it too, like, "Gosh, your code isn't working. Let's just see, maybe AI has a little bit of a way to help us here," and model it. There's nothing wrong with that, I don't feel that way. But I feel like sometimes if we are too rigorous and put so much stress on students, that's the gateway where students will cheat. My involvement with coding is I just feel that it's important that they know it and that they learn how to collaborate and find answers, not have it do it for them.

Yeah. Sounds like you've got some really genuine heart-to-heart conversations going on with your students on a regular basis, right? Because we know just one isn't going to cut it. So, I love that advice. It sounds like your students are really driven to gain the skills and not just the grade, and that's what we want at the end of the day, right?

Scott, I appreciate you so much. We are coming to the end of our time, so I'm going to give the folks in the audience some advice moving forward. You will have access to this slide deck for as long as you need it. We know that we're probably a month or two out from your fall semester start date. Anything that we talked about here, if you're like, "Oh, what did Stephanie say about the Sandbox?"—actually, we didn't have time to get to it—you can go to our knowledge base and you can search student collaboration, and you'll find that in our Sandbox, students can work together coding a program. All the ins and outs of all of our tools and curriculum pieces are in that knowledge base. We also have a fantastic support team. They are real human beings who will answer your question. Scott, you ever reach out to our support team?

Probably not as much as I should, but I think to your point, whenever I've needed something from CodeHS, and through the years I've known people personally like Stephanie or Stephanie-type people, sometimes you go directly to them for answers. If they're anything like the support team, the CodeHS support, you're going to get an answer. That's the important thing. Whenever I've reached out to CodeHS for anything, usually via email—probably should be going to the support page—but I've always gotten an answer, and I've gotten a good answer.

I'm glad to hear that. We really pride ourselves and invest in our support teams, and everybody here—over half our company is former educators—we're genuinely here to help. So, I'm so glad.

There are other ways to stay in contact with us. If you have social media, you can find us there, join other programs we have. Then of course I'll ask you to do two things before we leave here, folks. The first one is give us some feedback on how we did today. We are trying something new this summer with more of an expert panelist-style webinar. We're bringing in our teacher trainers to share their classroom experiences while I do the slides and the teaching of a lesson. We'd love to know if it's resonating with you, if it's working for you, and how your learning journey went today. If there's a topic we didn't make it to and you want to learn more about it, please let us know in the survey. We are always looking at those responses and responding to them as we can.

Finally, I will give you a link to a certificate of completion so that you can get documentation that you spent your hour and a half here with us today. We are so thankful that you all were able to come, and I'll do a shameless plug for our last few webinars of our summer webinar series. This week we have an AP CSP deep dive. So if you are a CS Principles teacher, come join us tomorrow. We're also doing a preview of our brand new AP Cyber Security course that is new to College Board this year. Then you can learn some AI skills on the 30th, next week. Thank you all so much for being here with us. Scott, thank you for the fantastic advice and wisdom from the classroom. And we'll see y'all next time. Bye.