Computational Thinking: How Pat Counts Teaches Physics with Python

This is the third of an occasional interview series I’m doing of educational innovators.  You can find the whole series here.

Pat Counts is a Physics teacher from Wyoming, Ohio (a city outside of Cincinnati).  We met him at the Pycon Education Summit, where we learned of his efforts to incorporate Python into his curriculum.  We’ve since met quite a few in the Physics community who are really on the forefront of using computational thinking in their teaching.  In the interview below, Pat tells me about why Python is a good fit with Physics, his teaching style, and resources he’s used as he’s taught himself the Python he needs to teach his students!

Pat Counts with a Student
Pat Counts in the classroom

Elliott: We’ve seen some good interest from the Physics community in using trinket to incorporate coding and computational thinking into the Physics curriculum. Is there something about Physics that you think makes it a good fit for Python?

Pat: For years the printed textbook has typically been a central component of physics courses. But physics is a science of change, and static textbook pages don’t convey change very effectively. Computers have the potential to provide a much more dynamic environment for modeling change than do ink and paper, and the best learning takes place when students interact with the concepts they are studying. Computer simulations like the excellent online PhET sims can complement the crucial hands-on lab activities and are effective tools for facilitating that kind of dynamic interaction. Another mode for modeling the natural world is computer programming. Galileo said that the book of nature is written in the language of mathematics. Computers excel in doing mathematics, and they can be especially useful tools when students are familiar with a programming language. Python is a great programming language for introductory physics because it’s powerful yet human-friendly, and its learning curve is not steep. Almost immediately, students can apply physics concepts through their code, then they can run their code for immediate feedback. That kind of interaction with physics concepts is incredibly exciting and effective.

“The book of nature is written in the language of mathematics” – Galileo

Elliott: It makes sense that Python’s immediacy would work well for high school students.  Could you describe your personal approach to teaching and how you like to run your classes? Is there a ‘style’ you’d say you have compared to your colleagues?

Pat: I’m not sure how to describe my teaching style. That might be because it’s always in at least some state of flux. Sometimes a new strategy will fail to improve the learning environment or experience, but we learn from that. The best thing to do is to use what works and find a better alternative for things that don’t. But that’s what my colleagues do too, so I’m not unique. I am very fortunate to teach in a school that values educational technology. We incorporate it not for its own sake, but when it facilitates deeper learning. Some laboratory work we do is certainly “old school” with low-tech materials, but we also use state-of–the-art computer-interfaced probes and sensors to collect, visualize, and analyze data. I’m very much interested in having students collect data and learn from that instead of directly from me whenever possible.

 I’m not sure how to describe my teaching style. That might be because it’s always in at least some state of flux.

Elliott: You said your style is very flexible; could you tell us about your Personal Learning Network? I met you at Pycon, so it obviously includes some in the programming community. Are there other teachers or ed tech figures you look up to?

Pat: I have grown a great deal professionally in the years since I started teaching, and so has the physics teaching profession. For years I was the only physics teacher at my school, so I looked to professional conferences and workshops for opportunities to exchange ideas with other physics teachers. One of my most formative experiences was participating in a modeling instruction workshop. Modeling instruction is a pedagogy in which students learn to construct conceptual and mathematical models of phenomena through inquiry and to recognize that seemingly new situations are often variations on models they have already seen at work in other contexts. The modeling community is an energized group of teachers and researchers who strive to improve the learning of their students, and I’ve learned a lot from them and from other professional groups. I attended PyCon to explore the possibility of incorporating programming in my teaching, and what I found was a vibrant community of programmers, many of whom are eager to share their knowledge with students young and old.

At PyCon what I found was a vibrant community of programmers, many of whom are eager to share their knowledge with students young and old.

Elliott: What are some challenges that you’ve run into so far? Do you have advice for others looking to incorporate coding into non-CS courses?

Pat: My biggest challenges so far stem from the fact that I am only a novice programmer. It is difficult to know what questions to ask when you are just learning to do something and aren’t even aware of the things you don’t know. I will say that I’m learning Python slowly and deliberately, paying careful attention to the little things that might confuse beginners so that I can be more aware of them in the work of my students. To those non-CS teachers thinking about incorporating programming into their courses I would say that they should identify and focus on two or three goals they think can be facilitated by programming, then they should consider reaching out to programmers in their area. There are active Python communities, large and small, all over the world.

I’m paying careful attention to the little things that might confuse beginners so that I can be more aware of them in the work of my students.

  • Pingback: Computational Thinking: Teaching Science with P...()

  • http://helponlineclass.com/ Latashia Blackburn

    Thanks for this nice post Elliot Hauser basically computational thinking is less cost other then the thinking of the human it takes less time and shows the efficiency and good idea to teach physics with python i have never seen anything like that before so hope for the best experience.