Projectile motion 3: using vypthon to get real
This is part 3 in a 3 part series about how I’ve decided to move teaching projectile motion from one of the earliest units I teach, until after my students have a thorough grounding in vectors, Newton’s laws and momentum. In part 1, I discussed the problem I see with teaching projectile motion as one of the earliest units in physics (before Newton’s Laws). In part 2, I discussed how to introduce projectile motion using Angry Birds.
At the end of our introduction to projectile motion using Angry Brids, my students had grasped the two big ideas of projectile motion simply by applying the models they already knew to the two components of motion of the Angry Birds. Still, I’d like more. The problem with all the problems kids see in projectile motion is that they’re not realistic. When you calculate the range on the baseball after the hit, or the kicked soccer ball, it never matches what you’d get in reality. As I said before, doing endless problems like this really just teaches students that physics is an academic game you play in school, that really has nothing to do with the real motion you observe when you watch a punted football wobbling through the air.
And at the same time, in our 21st century physics group, we were learning how Prof. Ayana Arce and her colleagues at the LHC are building computational models of the interactions that take place between the fundamental particles in LHC collisions, and using these models to discover new physics, since if the models predict the data they see in reality, it is an indication that the physics built into the model is correct.
So is there a way I could bring this computational approach to physics down to my freshman? Is there a way we could get beyond pseudocontextual problems using vpython and start to study the motion of real projectiles? Absolutely. I started by showing them this code.
My students are greatly improving their ability to read vpython code. They quickly saw the initial velocity of the object. They also saw that the program for the motion of a projectile is not very different from the program for the fan cart experiencing constant acceleration. This is the big idea—we can explain many phenomena with a small handful of ideas.
All of them were able to take the code, and calculate the initial speed and direction of the ball, as well as the range of the ball. It was pretty powerful to check our answer not by looking something up in the back of the book, but instead running the code and seeing where the ball lands.
But again, this program is rather boring. I asked them how we could make it more realistic, and students thought we could add air resistance. How many extra lines would this take? Now that my students are starting to see the power of vpython, they all said 3 lines, and they can even tell me the three lines look something like this:
Fnet=Fg + Fdrag
accel = Fnet/m
Note: technically, a soccer ball almost always feels a drag force that is proportional to the square of the velocity , since it is almost always experiencing turbulent flow, which you could code as
After this, my students started to build multiple models—some made a model of the dropped and fired bullets, while others tried to model the motion of a soccer ball with and without air resistance. Here’s an example of what a group of 3 students were able to do (again, my students are now working with about 5 hours of total time on vpython).
The motion model class makes it very easy to draw the acceleration vector onto the motion maps of both of the balls, which can lead to so many fascinating explorations—is the force of air resistance constant? How can you tell? What happens to the force as you increase the velocity?
Here’s the original assignment students were following to build this model of a soccer ball. Note, there are numerous errors in this assignment.
Now I’m trying to think of a project that will tie all of this together. Could we go out onto the field, kick a soccer ball, film it, analyze it in tracker and then build a model to match the motion? I think so. My question is, how could we then use that model to make a prediction that we could easily test? Its hard to fire a soccer ball at a predetermined angle and speed in test our prediction of where it will land.
Even bigger question: has all this just been one 3 part exercise in pseudoteaching? I don’t know. Only way to find out? Test my students’ understanding.