Saturday, May 22, 2010

Assessment

Some grading thoughts:

1. Grades and scores can be used to communicate understanding. Or they can be used to communicate achievement. Or adherence to policies and procedures. Problems arise in interpreting scores and grades when a single score or grade is used to communicate many of these at the same time.

2. It is probably not an accident that we've settled on a 4-point scale referred to five letters. It's hard to figure out what's in somebody else's mind. It is certainly folly to try to extract this information to the 0.1% accuracy many grading program offer. 20% feels like a more realistic degree of fuzziness - so five letter grades each taking up about 20% of the grading scale just strikes me as a natural evolution. Maybe 6 maybe 4 maybe even (at a stretch) 10, but certainly not 100.

3. Points-bucket grading systems discourage several important aspects of learning in the real world: the need for revision and subsequent growth that absolutely forgives early (later corrected) misconceptions; the fact that IF not WHEN the student learns is what matters; the quickly learned lesson that a "points hole" that seems inescapable is a powerful deterrent towards effort.

At prom gotta go.




Saturday, April 17, 2010

AAPT Conference in Sacramento

Spent the day at the American Association of Physics Teachers / Northern California and Nevada section conference at American River College just north of Sacramento. My colleagues Mae Linh and Adrian came with.

Some highlights:

- in the morning everyone gets 5 minutes (enforced by an awesome gong) to present a short demo. Saw countless things I'd enjoy implementing, not least the gong itself.

- fantastic talk by a Physics Education Researcher from Ohio State University on the use of interactive clicker devices in class. Made me a believer. Fantastic choice of problems to guide us through involving short-circuited parallel circuits. I was stumped but learned! Speaker also taught folks to fly airplanes. Doesn't it strike you that we should probably listen to pilot trainers on the issue of effective education? I mean, if their students fail, they die along with the student.

- fantastic talk by an amateur astronomer with a high school education who has produced some of the most beautiful images of the deep sky I have ever seen. He is even taking part in research these days!

- I presented for 20 minutes on the Lunar Lander project. I think it was well received. I was asked a physics question I didn't know the answer to. I hope I got across that I love my students and I love physics. Some good questions. Was happy to note that the flight instructor / physics education researcher is also using Visual Python.

- spent the whole day on my iPad. Discovered at I like it even more than I thought for taking notes during lecture. My typing speed right now is very high. I am noticing that flipping between writing and researching is a bit of a struggle. Now, if I was collaborating, that would be cool: my buddy looks stuff up while I write. The level of interest from other teachers was very high, and it made me feel very fortunate to be at a school where such a device is even conceivable in a 1:1 situation.

- Mae Linh won a new flaming tube!! There was a raffle for all attendees and they gave away physics demos and such. Our older, more dangerous, rapidly failing tube will be retired.

Conferences always give me time to think hard about my profession, regardless of what the speaker at any time is saying. Good day!






Location:American River College

Wednesday, April 14, 2010

Mobile computing

If my students had iPads in hand next year I could:

- ask each student to create and curate a personal blog for posting during class or anytime at school or at home

- this blog would consist of a detailed record and portfolio of the student's work through the year

- this blog would be stored in the cloud, permanent and accessible

- each student would use Google reader to subscribe to and read their classmates' blogs (and any/all news/sports/music/etc content they like)

- upon entering class students would click two buttons to immediately have access to my pre-written agenda and warmup task available online. No boot-up delay, no forgotten warmup due to last-minute hallway fiasco.

- student engagement on warmup task could be stored as their responses on a google form, their sketches uploaded to their blog, etc. This could include requests to review specific material or recap the previous days' lesson.

- when lecture begins student could annotate the pdf file containing the class textbook, even record parts of the lecture.

- during lecture I could use free or cheap 'clicker'-style apps to collect feedback - quick yes/no question and I see only 30% of my students got it right. Oh no!

- forgot binder? Lost worksheet? Its online. Got test back? Key online with rubric. Find your updated grades and spend 3 min writing a blog post regarding your grade trend in this unit.

- exam time. Please open WolframAlpha but nothing else. It's visual style is easy for me to pick up glancing around, so please don't attempt to use I'm.

- student has great question about lightning: does it shoot down from the clouds? I heard back and forth. Google it: this row use wikipedia, this row use howthingswork, this row use YouTube, lets combine and process our results in a few minutes.

- homework tonight is to read the chapter on Momentum in the PhysicsClassroom online. Be sure to work the questions and check your answers as you go. Please leave at least one question from your reading as a comment on my blog post for this week.

- today we'll be learning about position, velocity, and acceleration graphs. I posted a spreadsheet with adjustable graphs on the weblog. Please download it and play around with different values of acceleration to get a feel for how the graphs work.

- I'd like you to watch a YouTube video I found, but let's conserve bandwidth: form groups of four and watch the video one iPad, then discuss.

- please sketch a free- body diagram for this situation and hold it up so I can see it. Ok good hey Rachel could you upload yours to your blog quickly so we can all have a look? Thanks. Now what I like about Rachel's is the precision of the arrows she drew: note that the normal force was shorter because there was a second upward force here. Ok let's all try a new one except this time everybody upload when finished. Part of your hw tonight will be to identify the most accurate ones produced in the next few minutes.

- to start off today Paul is going to give a 5 min Keynote presentation on static friction he prepared last night.

- when you begin today's Lab, choose a group member to act as scribe. He or she will plug into the keyboard doc and record your groups steps and observation. Choose a second group member to do data entry in the spreadsheet program as you collect. Be sure you share these in the cloud before the bell so everyone can access them. I have links to the lab instructions, manuals for the devices we'll be using, and links to good blogs from last years' activity on the course weblog. If nobody wants to be the scribe, choose the member with the lowest battery level so he or she charges up this period.

- please remember to charge up every night. We can make it all day on that charge.

- I added the dates and times for the optional AP review sessions to your calendars next week.

- Norman, let's do meet Thursday at lunch. Here let me invite you in outlook so neither of us forgets.

- oh shoot I did give that back with a checkmark for completion but yes you're right it's labelled missing in my grade book. Let me fix it right now.

- get out your written hw I'm gonna walk around and mark my grade book.

- here's how to make a best fit line to data points in a spreadsheet. I'll place my iPad on the digital presenter so you can see what I'm doing.

- I think this lab works well with some nice background music. Let me draw a name from a hat and the student I draw gets to act as dj with their iPad on the speakers today. Nothing appalling.

- here are some pictures of last years students doing tomorrow's lab. Use these pictures to visualize how you're going to (as a group) setup and perform thte lab accurately in limited time.

- thanks for coming to the gaming club meeting. Download the free 9x9 Go application, find a partner, and i'll show you how to play.

Bedtime. Blogged from my iPad in bed while the kids sleep.

BJP

Sunday, April 4, 2010

iPad thoughts

Just playing around with the iPad to see if it is useful as a blogging device. I am typing two handed with the device in landscape orientation and getting about one-third to one half my usual typing speed. I'm also staring at the keyboard rather than touch typing. I should add, though, that this happens pretty much any time I transition to a new keyboard type - like when I get a different laptop model.

I have spent the last 24 hours thinking about how a $499 16-Gb wifi iPad with about $100 dollars in accessories and software would work for students. A few ideas:

1. When my students come to class, the agenda for the day, the plan for the week, and their warmup problems or activities would already be in their hands on their desk.

2. The free whiteboarding programs are sufficient for student work that involves sketching and minor text - like doing free body diagrams, right triangle calculations, etc. Most importantly, this could be saved and quickly uploaded to a student blog so that it is permanently saved and accessible.

3. Applications like WolframAlpha would replace/reinvent our use of scientific calculators - for the better, since solutions are so multifaceted with graphs and such.

Oops Joey (my two-year old) is demanding access again. Gotta go.

Saturday, March 20, 2010

AP Physics: Physical Pendula in Visual Python


I spent some time today creating a simple physical pendulum in Visual Python. The pendulum swings back and forth for 10 seconds, and generates a sinusoidal position graph as a result. See screenshot above. Code follows:

from __future__ import division # makes sure is decimal and not integer
from visual import *
from visual.graph import * # graphing capability

pendulum = frame()
bob = sphere(frame = pendulum, pos = (0,-1,0), radius = 0.15, color = color.red)
rod = cylinder(frame = pendulum, pos = (0,0,0), axis = (0,-1,0), length = 0.1, radius = 0.02, color = color.blue)

#starting position
startAngle = 30
theta = math.radians(startAngle)
pendulum.rotate(angle = theta, axis = (0,0,1), origin = (0,0,0))
angVel = 0
angAcc = 0

# masses
bob.mass = 0.100
rod.mass = 0.050

# moments
bob.momentArm = rod.length + bob.radius
cmLength = ( (bob.momentArm * bob.mass) + ( (rod.length / 2.0) * rod.mass) ) / (bob.mass + rod.mass)
rotInertia = (rod.mass*rod.length*rod.length/3.0) + (bob.mass*bob.momentArm*bob.momentArm)

# set up angle graph
graph1 = gdisplay(x=150, y=600, width=400, height=300,
title='Angle vs. Time', xtitle='time (s)', ytitle='angle (rad)',
xmax=10., xmin=0., ymax=1.1*theta, ymin=-1.1*theta,
foreground=color.black, background=color.white)
acurve = gcurve(gdisplay = graph1, color = color.black)

# time
time = 0
dt = 0.01

while time <>
rate(100)
time += dt
gravTorque = -1 * cmLength * (bob.mass + rod.mass) * 9.8 * sin(theta)
angAcc = gravTorque / rotInertia
angVel += angAcc * dt
theta += angVel * dt
pendulum.rotate(angle = angVel * dt, axis = (0,0,1), origin = (0,0,0))
acurve.plot(pos = (time, theta))


Sunday, March 14, 2010

AP Physics: Graphing in Visual Python

We're going to spend some time this week studying air resistance. Mathematically, the concept can be a little tricky, since the standard Newtonian principle that changes in velocity depend on net forces is complicated by the fact that the net force now itself depends on velocity!

A ball in free-fall obeys the 2nd Law equations

F_net = ma = m(dv/dt)

F_net = F_gravity + F_air resistance F_gravity = -mg ("-" meaning downward in this case)
F_air_resistance = -bv^n ("-" meaning opposite to the direction of velocity in this case)

So we get what's called a differential equation:

m(dv/dt) = -mg -bv^n

We're going to spend some time solving this analytically but it is also useful to simulate it in Visual Python. The following graphs were made using the Visual Python graphing module:




(These are for b = 0.4 and n = 1.0 -- I chose pretty steep b so we could see the curve in this limited time span.) Note that if the ball had been dropped from a higher altitude, the acceleration curve would have continued to approach zero before the ball hit the ground -- this is known as terminal velocity.

Here's the Visual Python code I used -- feel free to use as you like:

from __future__ import division # makes sure is decimal and not integer
from visual import *
from visual.graph import * # graphing capability

# cast of characters
floor = box(length=30, height=0.5, width=30, color=color.blue) # the apparent ground
ball = sphere(pos=(-15,20,0), radius = 0.5) # distances in meters

# initial conditions
ball.velocity = vector(0,0,0) # m/s
F_fric = vector(0,0,0) # N

# constants of simulation - note upward and rightward are + (positive) in sign
g = 9.8 # magnitude of gravitational field in m/s^2
m = 1 # mass kilograms
dt = 0.01 # time step in seconds
b = 0.4 # drag force constant, where F_drag = -bv^n
n = 1.0 # drag force power, where (again) F_drag = -bv^n
coeff_restitution = 0.70 # fractional decrease in speed at each collision
coeff_friction = 0.15 # coefficient of rolling friction between ball and ground
time = 0.00 # time elapsed since start

# set up velocity graph
graph1 = gdisplay(x=0, y=0, width=600, height=400,
title='Velocity vs. Time', xtitle='time (s)', ytitle='v (m/s)',
xmax=7., xmin=0., ymax=20, ymin=-20,
foreground=color.black, background=color.white)
ballv = gcurve(gdisplay = graph1, color = color.black)

# set up acceleration graph
graph2 = gdisplay(x=0, y=0, width=600, height=400,
title='Acceleration vs. Time', xtitle='time (s)', ytitle='a (m/s^2)',
xmax=7., xmin=0., ymax=20, ymin=-20,
foreground=color.black, background=color.white)
balla = gcurve(gdisplay = graph2, color = color.black)

# gather a few seconds of data
while (time <>

# move time forward
rate(100)
time += dt

# forces acting on the object
F_grav = vector(0,-m*g,0) # gravitational force
F_drag = - norm(ball.velocity) * b * math.pow(ball.velocity.mag, n)
F_net = F_grav + F_drag + F_fric
# note friction force is handled below because we need to know if we've reached the floor

# kinematics
a = F_net / m
ball.pos = ball.pos + ball.velocity*dt
if ball.y - ball.radius <= floor.pos.y + (floor.height/2.0): # if ball reaches floor
F_fric = - norm(ball.velocity) * coeff_friction * m * g # only friction if rolling on ground
ball.velocity.y = -ball.velocity.y * coeff_restitution # loses KE on collision; flip y-velocity
ball.pos = ball.pos + ball.velocity*dt # avoids a problem I had with "sticking" -- kluge
else: # if ball is still in the air
F_fric = vector(0,0,0) # no friction with ground
ball.velocity = ball.velocity + a*dt # do ordinary kinematics

# graph the most recent points
ballv.plot(pos = (time, ball.velocity.y))
balla.plot(pos = (time, a.y))