Friday, May 25, 2012

VPython Bouncy Ball - Take 2

I realized my mistake with AP students in doing programming in visual python was that they did not really feel comfortable with the language and did not have time to explore.

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.

Monday, May 7, 2012

5/07/2012 - Senior Skip Day

One of the great benefits of having 10 laptops in a classroom, is that during senior skip day, lesson plans are much easier. I should probably back up and explain.

I teach a physics class that until recently was the exclusive domain of seniors. We have been accelerating qualified underclassmen through biology and chemistry over the past couple of years and the result has been that I now have classes that are anywhere between 10% to 30% sophomores and juniors. 

This is great because because it puts pressure on the seniors to perform since the underclassmen do so well. However, on a day like today, when I don't have all my students in class. I could have been at a loss for an activity.

Enter the laptops...

Last week we had our King of the Hill car race competition. Students build mousetrap or rubber band cars, that race up a ramp. The first one to reach the top, or the car that knocks its opponent out of the way wins. It is an elimination competition that students really enjoy.


One of the things we require is that students have to write a final report documenting their cars performance in terms of physics variables and equations. One reason laptops in the classroom are a great boon is simply this: With my seniors gone, I have the resources to have my sophomores and juniors finish their reports in class.

It's very simple, but it allows me some time to get some prep work done for my seniors who are taking finals in 2 weeks, while allowing my other students to remain productive