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.

1. You should start by following the instructions at vpython.org to download and install vpython.
2. 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:

2. Understand the overall structure of the program and how it’s broken down into parts.
3. 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.

June 14, 2011 9:11 am

Your district pays for WebAssign? Color me envious…

• June 14, 2011 9:14 am

Actually, the students pay for it, since we don’t have a textbook, and it’s pretty cheap.

June 14, 2011 9:21 am

How much is it per student? Does the district pay for students (F/RLunch) who can’t afford it?

• June 14, 2011 9:35 am

It’s something like \$11/student/year (and more if you use an online text). I teach at a private school, and students have to pay for books—for those students on Financial Aid, I believe the school covers the cost of books to the same extent.

2. June 14, 2011 10:53 am

NIcely done, I am glad others are promoting computational math/science as well as programming. VPython is a great way to start and the new PhysUtil should make it even more friendly.

I would suggest speaking a little slower next time and perhaps leaving your final instructions as comments so the students can refer back to them, but you will probably put it in the posted assignment though so that isn’t really an issue.

I don’t know how much you have used video tutorials with your students but in our experience they need a little training to get the most out of them. Most of them watch it all the way through and are unsure where to start, we fixed this by saying something like, “Pause the video while you do that” or putting our hand up in a “stop” action when we are videotaping our face as well. This has dramatically cut down on questions and confusion.

If this is their first foray into VPython they may have some syntax questions that are not really part of the physics but I am sure if you keep it up they will overcome it by becoming more comfortable with the language.

Thanks for sharing your code! I’ll post our full instructions for making video tutorials soon but it looks like you are well on your way. Keep up the great work and I look forward to hearing how it goes.

• June 14, 2011 6:28 pm

Phil,
Thanks so much for the super helpful feedback. I do definitely need to slow down, and will probably recut the video as an even smaller set snippits embedded in a webassign assignment. I’m sure that students will have a ton of syntax questions, but at first, I’m going to try to focus on getting them to understand the big picture of the code and reading comments.

June 15, 2011 2:02 pm

Hey! My name is Emily Kinney and I am a student in EDM310 at the University of South Alabama. I am commenting on this as an assignment and will follow it up with a post to my own blog (http://kinneyemilyedm310.blogspot.com/) by 6/22/11. If you want to look at our class blog, here is the website (edm310.blogspot.com). I think that is is great that you are adding computational modeling into your lessons in physics. I have never learned computational modeling before– maybe because I have never taken physics, but I’m sure this is very helpful for the students. Learning can only better them for the future, so they are lucky to have you teach them this!