I think I rushed them through the tutorial. I was so worried about not saying too much that I said nothing. This meant I was not really facilitator and left them too much on their own.
Given that my seniors have graduated this week, I wanted to have my leftover sophomores and juniors in regular physics try to do some programming in Vpython. It might seem strange to have them tackle a project that was hard for AP Physics, but the fact is many of the students are accelerated science students (normally, only seniors take physics at our school) who are interested in taking AP Physics at some point.
As before I stated the problem. I got out a bouncy ball, bounced it, and let them observe that its rebound bounce does not return it to the same height. I then stated the problem clearly:
You will write a computer program that reproduces the first bounce of your bouncy ball via an animation and printed data. Your program will then animate and predict the second, third and fourth bounce of the ball. You will check your programs result against the real bouncy ball, and explain WHY your program works using your knowledge of kinematics.
They all understood what I was asking, but I made it clear that feeling that this was a bit much, is a totally natural feeling.
Here are the things that I did differently at the beginning of the project:
Frontloading
- I made sure that they were clear on the fact that their only goal for Day 1 was to complete a tutorial that would teach them the language and challenge them to solve a problem; that of a ball trapped in a box bouncing around the walls.
- I made sure they were all logged in to their computers
- I explained that they would be programming and solving a physics problem using computer programming
- I had them open up the VIDLE programming environment and type the equivalent of "hello world". For VPython its
from visual import *
sphere()
- I then explicitly showed them how to download the tutorial from the vpython.org site.What I must remember is that most of these students have never programmed before. So for them to write two lines of code that actually does something is a completely new experience. It is novel
Setting metacognitive expectations
- I told students that programming goes slowly at first, but as it continues it grows both more interesting and challenging
- I explicitly asked them to be patient during the first 20 minutes of programming as they got settled into it, explaining that a certain amount of intellectual unease is completely natural
Guiding Students through the tutorial
- As students worked through the tutorial I circulated and students knew that at any point I would ask them to stop and run their program
- I would ask students what they thought they needed to do to fix erroneous code. If they were not able to answer this question, we would literally think out the code the way the computer would and see what logical conclusion it would take us to.
- Students were then able to modify old code to produce new results
Students were completely engaged once the rules were laid out and they were given permission to feel completely unsure or lost. Every student was really engaged. Every class I taught went over the bell, and I even had students come in for extra help.
My concern now is how to keep this momentum going as we incorporate realistic physics into our model.
More on that next week.