We're two middle school teachers learning and teaching Python [audio]
teachingpython.fm
teachingpython.fm
At 10$ each kids can lose or break em. Now I'm imagining some super programmer origin story, where a old Unix coder gives a poor kid a PI and said kid ends up at Google later.
Back before I got my first salary job I was building apps on a old laptop. While struggling with Windows , Ubuntu ran like a champ.
I largely learned to program on that thing, got my first salary job and now I can buy whatever computer I want.
Did they run a study to see how many students went on to pursue compsi ?
There are some amazing after school programs that are trying to address the uneven distribution of resources in computer science education, but we definitely need a more comprehensive approach in the US.
I'd like to see a Python course for kids using Google Colab, so you don't have to install stuff and jump straight to the lessons.
We love using Colab for teaching coding. The Jupyter notebook environment is great for learning, and the familiar Google Docs interface makes our students feel comfortable right away.
I'd love to make a Colab-based course for kids. Just haven't been able to devote the time to building it out fully. We have most of our Python basics materials in a Colab and we use it for our returning students to get back up to speed at the start of a new course.
What would you like to know?
So maybe that's what happened?
Practiced for a few months in the summer and started teaching. Really scary and in year 4, I am still learning. It is hard, it is humbling, it can be very humiliating at times, but isn't learning something new always like that! I have enjoyed the thread. The kids no my journey and Sean and I promote active learning and discovery in the classroom. Happy to answer questions. Thanks Scott for the point to! - Kelly
Consider this - learning is not about receiving factual information. Rather, it's about transitioning through a series of states that take you from being someone who does not know a thing to someone who does.
It's fairly obvious that for most people, receiving a snippet of factual information does not trigger those state transitions! Usually, what does trigger those state transitions is experimentation.
Experimentation increments you through those states. But effectively nobody records those intermediary states and state transitions. Egregiously, services that could sort-of do this, like stack overflow, explicitly do not.
Having that history would provide two things: more relevant information for learners, and data that would be useful for teachers to engineer a better curriculum.
Also, if you did this well you could mostly get rid of exams.
The best moments are when students learn something new and blow my mind. I had one student figure out how to make a really elegant Python for loop that would create a full rainbow of RGB colors using the colorsys library.
I had been writing this in 5-6 lines of code. She did it in two (plus the library import)
for i in range(255): color = colorsys.hsv_to_rgb(i/255, 1.0, 1.0)
Not bad for a 6th grader!
https://pybullet.org/wordpress/index.php/2021/04/15/pybullet...
https://docs.google.com/document/d/10sXEhzFRSnvFcl3XxNGhnD4N...
Maybe fun to create some exercise with it.
We did a fascinating episode on the way we learn with Barbara Oakley. (https://www.teachingpython.fm/68). She taught us a lot about how the brain works through acquiring new knowledge and skills. I didn't realize how much of learning is a combination of creating surprising experiences and practicing the skills and behaviors that we want to develop.
So when we immediately provide the answers to a learner's question, we're not practicing the behavior of thinking through a problem or experimenting and researching to come up with effective solutions.
We also like to practice an iterative process for problem solving that encourages our students to quickly improve their understanding. When we include a reflection on what they learned as part of the process, it's amazing to see how fast they build confidence and competence in the coding.
If we just gave them the answers, they're not really learning anything other than to ask us!
When I look back on it, it's incredible how much I learned WITH my students. What we're really teaching them is not Python, it's how to learn new things, especially when it's difficult.
I wish these kind of programs weren’t limited to private schools - my own high school (https://www.browardschools.com/dillardhigh) had a great technology program.
While it helped build my career, it struggled to get investment and was the only public school in the county with these courses. I would have expected for it to be replicated.
First a network administrator frames the kid and gets him expelled, claiming that the slow, buggy Mac network is due to the kid hacking it with AOL Punters. Next school, the computer teacher has no idea how to even write HTML, and tells the kid to write the school's website and a calendar app for the teachers (for no pay of course, that would be child labor!). The kid removes viruses and fixes incorrect proxy settings in school computers, and is subsequently banned from the computer labs. Any computer issue is blamed on the kid, because his permanent record says he was expelled for hacking. Finally he's sent to a private school where everyone gets a laptop, and proceeds to learn how to scam ad companies, write networked programs to remotely share the homework answers with all the kids (p2p), and in his spare time builds parallel computing clusters and router linux distros that fit on floppies. After 9th grade he drops out, because clearly he wasn't learning anything!
Maybe we shouldn't even teach advanced computer classes, and instead just let the kids go wild. Maybe having a set curriculum takes away from them learning how to teach themselves and pick their own interests.
Fortunately, there are some State of Florida programs that will help fund teacher training for STEM subjects, especially computer science. (https://www.fldoe.org/academics/standards/subject-areas/comp...)
Finally, one of the reasons we started the podcast (and our school has been VERY supportive) is to share as much as we can about our experiences to help support and inspire other teachers. We're lucky that we could learn and work together. Many computer science teachers don't have any peers in their subject area. We wanted to make a podcast that allowed them to be the third person in the room as we talked through the challenges, successes, and lessons learned from our teaching experience.
It's been an extremely rewarding journey so far.
I've used it a lot for coding Microbits, and it works really well.
Nowadays I'm so stuck in my ways (and burned out on 'development') that I can't get myself to pick it up... as wonderfully useful as I know it would be
Perhaps the strangest bit for people used to other languages is signifiant indentation. Some hate it, but most people seem to adjust to it OK.
I think it's more specific than that. You can pick up the SYNTAX of python in an afternoon, if you have experience in coding in other languages. If you're also learning programming concepts and computational thinking skills, then it can take much longer. And that's a good thing!
One of the frustrations I see with students is that they think they are stupid for not picking up things as easily as I do. I have to remind them that I started coding more than 20 years ago. They didn't see all of the years of frustration and struggle when I was first learning how to code.
We need to normalize that everyone proceeds on their path with coding at different paces. It's great if you can learn a ton in an afternoon. It's also great if someone learns the same amount in a week, or a month, or a year.
While they're right, I can probably pick it up in an afternoon... that's really not my goal.
There's this weird behavior I've found in myself, where I don't just want to get started/be familiar, but I want to be good. I think this is common, and it simply comes with practice.
That's more where my... burnout from development comes in. I could pick up the basics quickly, but unless I can get past this urge to stick with what I truly know in order to practice, it's another likely source of 'imposter syndrome' (for lack of a better term)
I'm generally aware of some Python rules already through associates, and a lot of scripting/proper programming - so I definitely agree. I could pick it up quickly.
I personally just find it difficult to get the gumption to pick up development-style things anymore.
I can tolerate a good bit of (bash) scripting, Ansible, etc - but Python gets a little too close for me ('factories' to make objects of objects, etc).
While it would be useful, the amount of 'practice'/grey matter shaping necessary to get good enough to get there... harder to undertake (when my current habits have done 'okay')