Unit 1 Computational Modeling Assignment
After spending all day yesterday with Camtasia to produce the introduction to computational modeling video, I’ve made some good progress this morning and developed my first assignment in computational modeling.
Let me first state my goals in creating this assignment.
- I want my students to work with the big idea and purpose of computatinoal modeling in mind—using physics and computers to predict the future. This is why I created the introductory video, and it’s also why I’ve decided to start this work from fully working programs, rather than having students follow a set of instructions to write their own programs or discover computational modeling on their own (though I am curious about how one might do this).
- I want my students to study by first understanding good code, and these use the ideas they pick up to begin to write their own code. I’m no expert in CS education, I’ve read a decent bit saying that one of the best ways to learn to program isn’t to start by writing programs from scratch yourself, it’s to dive into fully written, well commented programs and begin to make small changes.
- I want my students to see from the beginning how a computer model can achieve agreement with the real world. This is the reason for the first assignment—modify my code so that the object’s motion on screen matches the motion of the cart you observed.
- I want my students developing connections between multiple representations of physics: the thing they’re seeing, the code that produces the motion, the graph of the motion, the motion map, the algebraic representation and a verbal representation. This is why we’re doing computational modeling in the first place, since I think there are very few other ways to see an object move on the screen, and watch as the graph of the motion is generated in real time.
- I want my students to tinker. I would love for them to develop their own computational solutions to problems in the text that don’t call for computational work just by taking this code and tweaking it.
- I want my students to see code as an expert sees it. This is why I begin by giving them a highlighted map of the code that breaks it down into 5 sections, and why I produced a video that explains to them the various pieces of the code. I’m fully aware that videos aren’t the best way to learn things, but I’m curious if they might be useful in this instance.
- I want my students to progress independently. One of the big problems I find with working on programming is that when my students get stuck, they have a hard time knowing what to do. I need to develop tools to help them better understand errors and what to do when they are stuck.
- I want to gradually reduce the scaffolding. In the beginning, I plan on giving heavily scaffolded exercises like this one that give students fully working code and ask them to tweak it. As we progress, I’ll offer less and less scaffolding—students will have to add objects to the code, and eventually write large chunks of the programs entirely on their own.
One last big question I’ve come up with in working on this project. A while ago, I remember Bruce Sherwood saying that one of his students commented “you know, all we are doing is writing the same program over and over.” Our orbits program looks just like the projectile motion program which looks just like the mass on a spring program. To me, this is the start of a huge insight—all these programs are the same. We’re using the same idea (N2) to predict the future. I would love for my students to come to this recognition, and I’m curious as to whether or not computational modeling might help them develop a more expert like understanding of problems, so that instead of thinking of this as a rope problem and a elevator problem, they might start to see that they are all Newton’s second law problems.
So here is the two page assignment, uploaded as a pdf in scribd:
This isn’t the best way to view this document, since scribd can’t show the videos I embedded into the pdf.
If you want to see the videos, here is a link to the 100 MB PDF download.
Since few people really want to download a 100MB pdf, I’ve also included the two videos here.
Introduction to computational modeling (10 min)
CVPM first assignment introduction (5 min)
Also, in case you can’t click on the link in the documents to download the assignment package, here’s a link to the assignment as well.
Finally it might help to have a bit of context on this initiative and my students to fully evaluate this. This work is being done in concert with the Georgia Tech Physics Research Group. We’re interested in how introducing computational modeling to high school students affects their understanding and learning of physics—Can they do assignments like this? does it help them to understand physics differently? Can they apply computational modeling in new and novel situations that don’t explicitly call for it, does it change their perception of computer science or physics? How can we measure students’ use of these ideas? And I’m sure along the way we’ll come up with many more ideas.
I teach 9th grade honors physics at a private school. My classes are small (<18) and all of my students have computers (next year, we will be fully 1-1). My students are quite adept with math; most studied algebra last year and will be studying honors geometry this year.
I would love to know any suggestions or questions you may have about these materials or the research project to test the effect of computational modeling on high school students.