Bringing computational modeling into first year high school physics
I’ve previously written quite a bit about the wonders of computational modeling and the great things Danny Caballero and his colleagues at Georgia Tech have done to create an awesome set of tools to make using creating and using computational models in physics easier and more powerful.
In this post, I’m going to share how I’m trying to create a series of lessons and assessments that tightly weave computational modeling into the 9th grade modeling physics curriculum I teach.
First, let me outline my goals:
- I want students to see computational modeling as a fifth tool for understanding a physical system. I want them to think that they can describe a system verbally, mathematically, graphically, diagrammatically, and now with a computational model. I want them to see the links between these models, the power the computer has to help them to visualize them.
- I want my students to see the power of computational modeling to explore systems that cannot be explored by other means. I want them to see how easy it is to add air resistance to the motion of a soccer ball, or imagine what would happen to the motion of the planets if the gravitational force were an inverse cube law.
- I want my students to see overall paradigm of computational modeling as an extension of the power of Newton’s laws. We can predict the future by simulating the motion of the object over very tiny steps as constant velocity, and then updating the velocity using the forces acting on the object. In this way, I want them to see that all of their programs, different as they may look, share this common feature.
- I want to do my part to create enthusiastic programmers that have an appreciation for computer science and a understanding good coding practices.
To accomplish these goals, I am going to try to develop a series of activities for each unit that introduce programming gradually, trying to reinforce and expand the current model they are studying (eg. Constant velocity, or Simple Harmonic Motion). We’ll begin by having them make physical measurements from models that have already been created for them, and move to having students modify the code of the models to change the simulations. As students progress and get a better understanding of how to write good code, they will develop their own models from scratch.
Here’s the first lesson I’ve put together. If you’re interested, I’d love for you to give it a whirl.
- You should start by following the instructions at vpython.org to download and install vpython.
- Next, download the zip archive of the necessary files. This contains the 1-dMotionSimulation.py program we’ll be working with, as well as the PhysUtil python module created by Georgia Tech.
Finally, I’ve created this short 3 minute introduction that explains how to open and run the 1-d Motion Simulation, and lays out the first challenge: finding the velocity of the ball 3 different ways, and then changing the program so that the ball starts on the right side of the field and moves to the left. I would imagine that this first assignment would take most of my students somewhere around half an hour to do, starting from scratch, with no previous exposure to programming.
This video isn’t meant to be a Khan-like expose fully explaining all the details of vpython. Instead, I wanted it to be a short introduction that got three main ideas across:
- Reading comments is critical to understanding.
- Understand the overall structure of the program and how it’s broken down into parts.
- You can figure this out by exploring. Here are three chords—go start a band.
Ultimately, I’ll code this challenge up as a Webassign assignment, but I wanted to put this out now to share with you for feedback.