<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7110509848145748830</id><updated>2011-07-07T18:46:00.714-07:00</updated><category term='Teaching'/><category term='Physics iPad'/><category term='teaching physics lab report rubric'/><category term='teachers'/><category term='scientists'/><category term='FCI'/><category term='grading'/><category term='masteringphysics'/><category term='GridWorld'/><category term='twitter'/><category term='programming'/><category term='air resistance'/><category term='Stirling Engine'/><category term='physics'/><category term='honors physics'/><category term='Java'/><category term='blog'/><category term='AP Comp Sci'/><category term='occupations'/><category term='AP Physics'/><category term='drag forces'/><category term='Visual Python'/><title type='text'>Open Problems</title><subtitle type='html'>Thoughts on teaching science and whatever else comes to mind. Title from, among other places, the Clay Shirky tweet: "[T]he only good measure of student progress I know is the number of open problems they can successfully characterize."</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-2086100781017198970</id><published>2010-05-22T22:01:00.000-07:00</published><updated>2010-05-25T20:14:19.551-07:00</updated><title type='text'>Assessment</title><content type='html'>Some grading thoughts:&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;At prom gotta go.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-2086100781017198970?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/2086100781017198970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/05/assessment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/2086100781017198970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/2086100781017198970'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/05/assessment.html' title='Assessment'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-336635213584652653</id><published>2010-04-17T18:21:00.000-07:00</published><updated>2010-04-17T18:24:48.041-07:00</updated><title type='text'>AAPT Conference in Sacramento</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;Some highlights:&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- 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!&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;Conferences always give me time to think hard about my profession, regardless of what the speaker at any time is saying. Good day!&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class='blogpress_location'&gt;Location:&lt;a href='http://maps.google.com/maps?q=American%20River%20College&amp;z=10'&gt;American River College&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-336635213584652653?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/336635213584652653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/04/aapt-conference-in-sacramento.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/336635213584652653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/336635213584652653'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/04/aapt-conference-in-sacramento.html' title='AAPT Conference in Sacramento'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-9136955437310983302</id><published>2010-04-14T22:26:00.000-07:00</published><updated>2010-04-14T23:18:20.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Physics iPad'/><title type='text'>Mobile computing</title><content type='html'>If my students had iPads in hand next year I could:&lt;br /&gt;&lt;br /&gt; - ask each student to create and curate a personal blog for posting during class or anytime at school or at home&lt;br /&gt;&lt;br /&gt; - this blog would consist of a detailed record and portfolio of the student's work through the year&lt;br /&gt;&lt;br /&gt;  - this blog would be stored in the cloud, permanent and accessible &lt;br /&gt; &lt;br /&gt; - each student would use Google reader to subscribe to and read their classmates' blogs (and any/all news/sports/music/etc content they like)&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt; - when lecture begins student could annotate the pdf file containing the class textbook, even record parts of the lecture.&lt;br /&gt;&lt;br /&gt; - 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!&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- homework tonight is to read the chapter on Momentum in the &lt;a href="http://www.physicsclassroom.com"&gt;PhysicsClassroom&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt;- to start off today Paul is going to give a 5 min Keynote presentation on static friction he prepared last night.&lt;br /&gt;&lt;br /&gt;- 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.&lt;br /&gt;&lt;br /&gt; - please remember to charge up every night. We can make it all day on that charge.&lt;br /&gt;&lt;br /&gt; - I added the dates and times for the optional AP review sessions to your calendars next week. &lt;br /&gt;&lt;br /&gt; - Norman, let's do meet Thursday at lunch. Here let me invite you in outlook so neither of us forgets.&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt;  - get out your written hw I'm gonna walk around and mark my grade book.&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt; - 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.&lt;br /&gt;&lt;br /&gt; - 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. &lt;br /&gt;&lt;br /&gt; Bedtime. Blogged from my iPad in bed while the kids sleep.&lt;br /&gt;&lt;br /&gt;BJP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-9136955437310983302?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/9136955437310983302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/04/mobile-computing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/9136955437310983302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/9136955437310983302'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/04/mobile-computing.html' title='Mobile computing'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-3317656828581668882</id><published>2010-04-04T10:39:00.000-07:00</published><updated>2010-04-04T10:53:57.806-07:00</updated><title type='text'>iPad thoughts</title><content type='html'>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. &lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;3. Applications like WolframAlpha would replace/reinvent our use of scientific calculators - for the better, since solutions are so multifaceted with graphs and such.&lt;br /&gt;&lt;br /&gt;Oops Joey (my two-year old) is demanding access again. Gotta go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-3317656828581668882?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/3317656828581668882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/04/ipad-thoughts.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/3317656828581668882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/3317656828581668882'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/04/ipad-thoughts.html' title='iPad thoughts'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-3804965824861845508</id><published>2010-03-20T15:12:00.000-07:00</published><updated>2010-03-20T15:18:30.311-07:00</updated><title type='text'>AP Physics: Physical Pendula in Visual Python</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8wrxSRKaTB4/S6VJnC95GEI/AAAAAAAAMiU/3s4kZk0tn1Q/s1600-h/Capture.PNG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 238px; height: 320px;" src="http://1.bp.blogspot.com/_8wrxSRKaTB4/S6VJnC95GEI/AAAAAAAAMiU/3s4kZk0tn1Q/s320/Capture.PNG" alt="" id="BLOGGER_PHOTO_ID_5450843859162044482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 51, 204);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt; Code follows:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;from __future__ import division # makes sure is decimal and not integer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from visual import *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from visual.graph import *  # graphing capability&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pendulum = frame()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bob = sphere(frame = pendulum, pos = (0,-1,0), radius = 0.15, color = color.red)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rod = cylinder(frame = pendulum, pos = (0,0,0), axis = (0,-1,0), length = 0.1, radius = 0.02, color = color.blue)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#starting position &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;startAngle = 30&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;theta = math.radians(startAngle)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pendulum.rotate(angle = theta, axis = (0,0,1), origin = (0,0,0))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;angVel = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;angAcc = 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# masses&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bob.mass = 0.100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rod.mass = 0.050&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# moments&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bob.momentArm = rod.length + bob.radius&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cmLength = ( (bob.momentArm * bob.mass) + ( (rod.length / 2.0) * rod.mass) ) / (bob.mass + rod.mass) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rotInertia = (rod.mass*rod.length*rod.length/3.0) + (bob.mass*bob.momentArm*bob.momentArm)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# set up angle graph&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;graph1 = gdisplay(x=150, y=600, width=400, height=300,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          title='Angle vs. Time', xtitle='time (s)', ytitle='angle (rad)',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          xmax=10., xmin=0., ymax=1.1*theta, ymin=-1.1*theta,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          foreground=color.black, background=color.white)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;acurve = gcurve(gdisplay = graph1, color = color.black)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;time = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dt = 0.01&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;while time &lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    rate(100)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    time += dt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    gravTorque = -1 * cmLength * (bob.mass + rod.mass) * 9.8 * sin(theta)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    angAcc = gravTorque / rotInertia&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    angVel += angAcc * dt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    theta += angVel * dt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    pendulum.rotate(angle = angVel * dt, axis = (0,0,1), origin = (0,0,0))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    acurve.plot(pos = (time, theta))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;img src="file:///C:/Users/BPHILH%7E1/AppData/Local/Temp/moz-screenshot-1.png" alt="" /&gt;&lt;img src="file:///C:/Users/BPHILH%7E1/AppData/Local/Temp/moz-screenshot-2.png" alt="" /&gt;&lt;span style="color: rgb(204, 51, 204);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-3804965824861845508?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/3804965824861845508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/03/ap-physics-physical-pendula-in-visual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/3804965824861845508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/3804965824861845508'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/03/ap-physics-physical-pendula-in-visual.html' title='AP Physics: Physical Pendula in Visual Python'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8wrxSRKaTB4/S6VJnC95GEI/AAAAAAAAMiU/3s4kZk0tn1Q/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-3829352501715537162</id><published>2010-03-14T20:25:00.000-07:00</published><updated>2010-03-14T20:41:03.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Python'/><category scheme='http://www.blogger.com/atom/ns#' term='AP Physics'/><category scheme='http://www.blogger.com/atom/ns#' term='air resistance'/><category scheme='http://www.blogger.com/atom/ns#' term='drag forces'/><title type='text'>AP Physics: Graphing in Visual Python</title><content type='html'>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!&lt;br /&gt;&lt;br /&gt;A ball in free-fall obeys the 2nd Law equations&lt;br /&gt;&lt;br /&gt;F_net = ma = m(dv/dt)&lt;br /&gt;&lt;br /&gt;F_net = F_gravity + F_air resistance F_gravity = -mg       ("-" meaning downward in this case)&lt;br /&gt;F_air_resistance = -bv^n       ("-" meaning opposite to the direction of velocity in this case)&lt;br /&gt;&lt;br /&gt;So we get what's called a differential equation:&lt;br /&gt;&lt;br /&gt;m(dv/dt) = -mg -bv^n&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8wrxSRKaTB4/S52sBrtUbkI/AAAAAAAAMhU/OUgqxT7rn2Q/s1600-h/velocity_vs_time.PNG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_8wrxSRKaTB4/S52sBrtUbkI/AAAAAAAAMhU/OUgqxT7rn2Q/s320/velocity_vs_time.PNG" alt="" id="BLOGGER_PHOTO_ID_5448700269100822082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8wrxSRKaTB4/S52q2sMFr_I/AAAAAAAAMhE/b9KExeLMVqM/s1600-h/velocity_vs_time.PNG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8wrxSRKaTB4/S52sIkfQObI/AAAAAAAAMhc/dDNK_Q4ncQU/s1600-h/acceleration_vs_time.PNG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 217px;" src="http://2.bp.blogspot.com/_8wrxSRKaTB4/S52sIkfQObI/AAAAAAAAMhc/dDNK_Q4ncQU/s320/acceleration_vs_time.PNG" alt="" id="BLOGGER_PHOTO_ID_5448700387421862322" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8wrxSRKaTB4/S52q9NH544I/AAAAAAAAMhM/1lTYrl0hv3Q/s1600-h/acceleration_vs_time.PNG"&gt;&lt;br /&gt;&lt;/a&gt;(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.&lt;br /&gt;&lt;br /&gt;Here's the Visual Python code I used -- feel free to use as you like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;from __future__ import division # makes sure is decimal and not integer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;from visual import *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;from visual.graph import *  # graphing capability&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;# cast of characters&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;floor = box(length=30, height=0.5, width=30, color=color.blue) # the apparent ground&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;ball = sphere(pos=(-15,20,0), radius = 0.5) # distances in meters&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;# initial conditions&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;ball.velocity = vector(0,0,0) # m/s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;F_fric = vector(0,0,0) # N&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;# constants of simulation - note upward and rightward are + (positive) in sign&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;g = 9.8 # magnitude of gravitational field in m/s^2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;m = 1 # mass kilograms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;dt = 0.01 # time step in seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;b = 0.4 # drag force constant, where F_drag = -bv^n&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;n = 1.0 # drag force power, where (again) F_drag = -bv^n&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;coeff_restitution = 0.70 # fractional decrease in speed at each collision&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;coeff_friction = 0.15 # coefficient of rolling friction between ball and ground&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;time = 0.00 # time elapsed since start&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;# set up velocity graph&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;graph1 = gdisplay(x=0, y=0, width=600, height=400,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;          title='Velocity vs. Time', xtitle='time (s)', ytitle='v (m/s)',&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;          xmax=7., xmin=0., ymax=20, ymin=-20,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;          foreground=color.black, background=color.white)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;ballv = gcurve(gdisplay = graph1, color = color.black)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;# set up acceleration graph&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;graph2 = gdisplay(x=0, y=0, width=600, height=400,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;          title='Acceleration vs. Time', xtitle='time (s)', ytitle='a (m/s^2)',&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;          xmax=7., xmin=0., ymax=20, ymin=-20,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;          foreground=color.black, background=color.white)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;balla = gcurve(gdisplay = graph2, color = color.black)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;# gather a few seconds of data&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;while (time &lt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    # move time forward&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    rate(100)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    time += dt&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;         &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    # forces acting on the object&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    F_grav = vector(0,-m*g,0) # gravitational force&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    F_drag = - norm(ball.velocity) * b * math.pow(ball.velocity.mag, n)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    F_net = F_grav + F_drag + F_fric&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    # note friction force is handled below because we need to know if we've reached the floor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    # kinematics&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    a = F_net / m&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    ball.pos = ball.pos + ball.velocity*dt&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    if ball.y - ball.radius &lt;= floor.pos.y + (floor.height/2.0): # if ball reaches floor&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;        F_fric = - norm(ball.velocity) * coeff_friction * m * g # only friction if rolling on ground&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;        ball.velocity.y = -ball.velocity.y * coeff_restitution # loses KE on collision; flip y-velocity&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;        ball.pos = ball.pos + ball.velocity*dt # avoids a problem I had with "sticking" -- kluge&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    else: # if ball is still in the air&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;        F_fric = vector(0,0,0) # no friction with ground&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;        ball.velocity = ball.velocity + a*dt # do ordinary kinematics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    # graph the most recent points&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    ballv.plot(pos = (time, ball.velocity.y))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;    balla.plot(pos = (time, a.y))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-3829352501715537162?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/3829352501715537162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/03/ap-physics-graphing-in-visual-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/3829352501715537162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/3829352501715537162'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/03/ap-physics-graphing-in-visual-python.html' title='AP Physics: Graphing in Visual Python'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8wrxSRKaTB4/S52sBrtUbkI/AAAAAAAAMhU/OUgqxT7rn2Q/s72-c/velocity_vs_time.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-6044850752856855800</id><published>2010-01-21T09:51:00.000-08:00</published><updated>2010-01-21T09:52:51.637-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='Stirling Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='AP Physics'/><title type='text'>AP Physics: Stirling Engine Blogging</title><content type='html'>My AP Physics students are photo-blogging their progress as they &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.siprep.org/faculty/bphilhour/SIPrep--StirlingEngineProject.cfm"&gt;build Stirling Engines&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li class="style7"&gt;&lt;a href="http://jstrizz.blogspot.com/"&gt;Strizich &amp;amp; Cartwright Stirling Engine Blog&lt;/a&gt; &lt;/li&gt;&lt;li class="style7"&gt;&lt;a href="http://digitalredline.posterous.com/"&gt;McDonald's Blog - Digital Redline (Stirling Engine &amp;amp; More)&lt;/a&gt;&lt;span class="style11"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://superstirlingengine.blogspot.com/"&gt;Danielson &amp;amp; Lind's Super Stirling Engine Blog&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://luke-stirlingengine.blogspot.com/"&gt;Talavan-Becker &amp;amp; Ash's Stirling Engine Blog &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stirlingenginelinandvicino.blogspot.com/"&gt;Lin &amp;amp; Vicino's Stirling Engine Blog&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://enginesuccess.blogspot.com/"&gt;Berquist &amp;amp; Reher's Stirling Engine Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://kaplan-landefeld-engine.blogspot.com/"&gt;Kaplan &amp;amp; Landefeld's Stirling Engine Blog &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://buckleymcinerney.blogspot.com/"&gt;Buckley &amp;amp; McInerney's Stirling Engine Blog&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://heatmakeswork.blogspot.com/"&gt;Martin &amp;amp; Morrison's "Heat Makes Work" Blog &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-6044850752856855800?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/6044850752856855800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/01/ap-physics-stirling-engine-blogging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6044850752856855800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6044850752856855800'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/01/ap-physics-stirling-engine-blogging.html' title='AP Physics: Stirling Engine Blogging'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-8819633767229270708</id><published>2010-01-09T18:13:00.000-08:00</published><updated>2010-01-09T18:25:54.677-08:00</updated><title type='text'>AP Physics: A Bouncing Ball in Visual Python</title><content type='html'>I used &lt;a href="http://camstudio.org/"&gt;CamStudio&lt;/a&gt; (on a PC) to record a video of a physics simulation (a bouncing ball) that I made using &lt;a href="http://vpython.org/"&gt;Visual Python&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=esvp5VOBiPA"&gt;Here's the video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;from __future__ import division # makes sure is decimal and not integer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;from visual import *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cast of characters&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;floor = box(length=30, height=0.5, width=30, color=color.blue) # the apparent ground&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ball = sphere(pos=(-15,20,0), radius = 0.5, material = materials.wood) # distances in meters&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ball.trail = curve(color=ball.color) # creates a trail following the ball&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# initial conditions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ball.velocity = vector(2,0,0) # m/s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;F_fric = vector(0,0,0) # N&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# constants of simulation - note upward and rightward are + (positive) in sign&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;g = 9.8 # magnitude of gravitational field in m/s^2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;m = 1 # mass kilograms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dt = 0.01 # time step in seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;b = 0.01 # drag force constant, where F_drag = -bv^n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;n = 1.0 # drag force power, where (again) F_drag = -bv^n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;coeff_restitution = 0.70 # fractional decrease in speed at each collision&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;coeff_friction = 0.15 # coefficient of rolling friction between ball and ground&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;while 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    rate(100)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    # forces acting on the object&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    F_grav = vector(0,-m*g,0) # gravitational force&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    F_drag = - norm(ball.velocity) * b * math.pow(ball.velocity.mag, n)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    F_net = F_grav + F_drag + F_fric&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    # note friction force is handled below because we need to know if we've reached the floor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    # kinematics&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    a = F_net / m&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ball.pos = ball.pos + ball.velocity*dt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ball.trail.append(pos=(ball.x,ball.y,ball.z), retain = 200) # update trail behind ball&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if ball.y - ball.radius &lt;= floor.pos.y + (floor.height/2.0): # if ball reaches floor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        F_fric = - norm(ball.velocity) * coeff_friction * m * g # only friction if rolling on ground&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ball.velocity.y = -ball.velocity.y * coeff_restitution # loses KE on collision; flip y-velocity&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ball.pos = ball.pos + ball.velocity*dt # avoids a problem I had with "sticking" -- kluge&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    else: # if ball is still in the air&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        F_fric = vector(0,0,0) # no friction with ground&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ball.velocity = ball.velocity + a*dt # do ordinary kinematics&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-8819633767229270708?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/8819633767229270708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2010/01/ap-phys-bouncing-ball-in-visual-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8819633767229270708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8819633767229270708'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2010/01/ap-phys-bouncing-ball-in-visual-python.html' title='AP Physics: A Bouncing Ball in Visual Python'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-968740040217413600</id><published>2009-12-31T15:33:00.000-08:00</published><updated>2010-01-06T13:59:18.670-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='AP Physics'/><title type='text'>AP Physics: Visual Python</title><content type='html'>Dear AP Physics students,&lt;br /&gt;&lt;br /&gt;This semester we will be using the 3-D programming module known as &lt;a href="http://vpython.org/"&gt;Visual Python&lt;/a&gt; to create modest simulations of basic physics concepts.&lt;br /&gt;&lt;br /&gt;The goal of this project is to give students a chance to review and practice the Mechanics material of the first semester in a new and exciting way -- to see the same stuff, but from a radically different perspective.&lt;br /&gt;&lt;br /&gt;The following links contain the instructions for downloading and installing (a) Python (&amp;amp; the programming environment IDLE) and (b) the Visual Python module in particular - along with a modified version of IDLE, called VIDLE, that we'll be using.&lt;br /&gt;&lt;br /&gt;Be sure to follow the instructions -- you are going to be downloading and installing &lt;span style="font-style: italic;"&gt;two &lt;/span&gt;packages, and you have to do it in the right order. We are going to use the most recent versions of everything.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vpython.org/contents/download_windows.html"&gt;Download instructions for Windows&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vpython.org/contents/download_mac.html"&gt;Download instructions for Macintosh&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Assuming everything downloaded and installed properly, you should be able to run VIDLE for Python. Go to File -&gt; Open and pick one of the provided samples (I like 'crystal.py'). Go to Run -&gt; Run Module (or just hit F5) and the program should appear and run. If not, get help on the Public Folder or in class.&lt;br /&gt;&lt;br /&gt;Now, I'd like you to work the &lt;a href="http://vpython.org/contents/docs/visual/VPython_Intro.pdf"&gt;introductory tutorial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;BJP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-968740040217413600?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/968740040217413600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/12/ap-physics-visual-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/968740040217413600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/968740040217413600'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/12/ap-physics-visual-python.html' title='AP Physics: Visual Python'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-8469921439854495639</id><published>2009-12-30T17:42:00.000-08:00</published><updated>2009-12-30T18:10:48.829-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='GridWorld'/><category scheme='http://www.blogger.com/atom/ns#' term='AP Comp Sci'/><title type='text'>AP Comp Sci: Installing and using the Gridworld .JAR file</title><content type='html'>AP Comp Sci  students,&lt;br /&gt;&lt;br /&gt;This term we'll be working the Gridworld Case Study. This post is to help you get through installing and using it with Eclipse.&lt;br /&gt;&lt;br /&gt;1. Visit the &lt;a href="http://www.collegeboard.com/student/testing/ap/compsci_a/case.html"&gt;AP Computer Science Gridworld Case Study website&lt;/a&gt;, and download the .zip file called 'Code' at that site. A direct link is &lt;a href="http://apcentral.collegeboard.com/apc/public/repository/GridWorldCode.zip"&gt;here&lt;/a&gt;, but it is worth visiting the website above at least once. Here's the &lt;a href="http://www.collegeboard.com/prod_downloads/student/testing/ap/compsci_a/ap07_gridworld_installation_guide.pdf"&gt;formal installation guide&lt;/a&gt; -- basically the same information as below.&lt;br /&gt;&lt;br /&gt;2. Unzip and set aside the .zip file. Do not alter the file structure within the GridWorldCode folder. It should look something like the following (taken on a PC):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8wrxSRKaTB4/SzwC8iSFyHI/AAAAAAAALgI/udw6tooW7_0/s1600-h/Capture.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 103px;" src="http://2.bp.blogspot.com/_8wrxSRKaTB4/SzwC8iSFyHI/AAAAAAAALgI/udw6tooW7_0/s320/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5421211290465323122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3. Open Eclipse. You will now want to make a new Java project. Call this project 'GridWorld Project 1 - Your Name' (in my case, it would be 'GridWorld Project 1 - Byron Philhour'). Before clicking forward, under 'Contents' click on 'Create Project from Existing Source' and navigate within the GridWorldCode folder to the /projects/firstProject folder.&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/Users/BPHILH%7E1/AppData/Local/Temp/moz-screenshot.png" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8wrxSRKaTB4/SzwF-MOr4MI/AAAAAAAALgo/6L8rLLC4zM8/s1600-h/Capture.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 165px;" src="http://2.bp.blogspot.com/_8wrxSRKaTB4/SzwF-MOr4MI/AAAAAAAALgo/6L8rLLC4zM8/s320/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5421214617440084162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Click next -- do not click 'Finish' yet.&lt;br /&gt;&lt;br /&gt;4. You should be in Java Settings now. Click on the 'Libraries' tab and then on the 'Add External JARs' button. Browse into GridWorldCode and select 'gridworld' (this should be a jar file).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8wrxSRKaTB4/SzwGUMcwMII/AAAAAAAALgw/-EhEsG7OdtE/s1600-h/Capture.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 142px;" src="http://3.bp.blogspot.com/_8wrxSRKaTB4/SzwGUMcwMII/AAAAAAAALgw/-EhEsG7OdtE/s320/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5421214995456209026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click 'Open' and 'Finish.'&lt;br /&gt;&lt;br /&gt;5. Within the Eclipse workbench, navigate to the new project (you are likely already in it). In the /src folder you will find BugRunner.java. Double-click on it to open it. It should look something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8wrxSRKaTB4/SzwG5ZE5W8I/AAAAAAAALg4/Qi36geTqFtA/s1600-h/Capture.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 184px;" src="http://1.bp.blogspot.com/_8wrxSRKaTB4/SzwG5ZE5W8I/AAAAAAAALg4/Qi36geTqFtA/s320/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5421215634500967362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;6. Compile and run this program. The 'GridWorld' with a single red bug and a single black rock should appear. You have now successfully begun programming with the GridWorld case study. Here's what it should look like now:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8wrxSRKaTB4/SzwHVvcWsLI/AAAAAAAALhA/Ngt6I9gzM_o/s1600-h/Capture.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 264px;" src="http://3.bp.blogspot.com/_8wrxSRKaTB4/SzwHVvcWsLI/AAAAAAAALhA/Ngt6I9gzM_o/s320/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5421216121541275826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Play around.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;BJP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-8469921439854495639?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/8469921439854495639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/12/ap-comp-sci-installing-and-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8469921439854495639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8469921439854495639'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/12/ap-comp-sci-installing-and-using.html' title='AP Comp Sci: Installing and using the Gridworld .JAR file'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8wrxSRKaTB4/SzwC8iSFyHI/AAAAAAAALgI/udw6tooW7_0/s72-c/Capture.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-1387823812189140353</id><published>2009-12-12T19:39:00.001-08:00</published><updated>2009-12-12T19:40:03.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teaching'/><title type='text'>Teaching: Basics</title><content type='html'>Most useful mantra for teaching I've yet heard: "This is important. You can do it. I won't give up on you." So many messages in so many classrooms (and everywhere) saying the opposite.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-1387823812189140353?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/1387823812189140353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/12/teaching-basics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/1387823812189140353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/1387823812189140353'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/12/teaching-basics.html' title='Teaching: Basics'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-7911914142322429440</id><published>2009-11-26T10:25:00.000-08:00</published><updated>2009-11-26T10:26:21.117-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teachers'/><category scheme='http://www.blogger.com/atom/ns#' term='occupations'/><category scheme='http://www.blogger.com/atom/ns#' term='Teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='scientists'/><title type='text'>Teaching: Prestigious Occupations</title><content type='html'>Who's &lt;a href="http://www.harrisinteractive.com/harris_poll/pubs/Harris_Poll_2009_08_04.pdf"&gt;#2 and #5&lt;/a&gt;? =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-7911914142322429440?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/7911914142322429440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/11/teaching-prestigious-occupations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/7911914142322429440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/7911914142322429440'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/11/teaching-prestigious-occupations.html' title='Teaching: Prestigious Occupations'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-6065314565668767011</id><published>2009-11-25T17:05:00.000-08:00</published><updated>2009-11-25T17:16:13.148-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='honors physics'/><category scheme='http://www.blogger.com/atom/ns#' term='Teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='masteringphysics'/><title type='text'>Physics Honors: MasteringPhysics</title><content type='html'>From an e-mail I sent my student &amp;amp; parents:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;As you know, this year in Physics Honors we are using an online physics homework solution called MasteringPhysics. Students work online tutorials and practice problems that are automatically graded. It is worth looking into whether such a tool is effective.&lt;br /&gt;&lt;br /&gt;The website for the program is www.masteringphysics.com -- parents, feel free to ask your son or daughter to show you around!&lt;br /&gt;&lt;br /&gt;Following is a quick analysis I did of student performance on quizzes &amp;amp; exams in Physics Honors &amp;amp; how that performance correlated with hours logged &amp;amp; total score on MasteringPhysics (MP).&lt;br /&gt;&lt;br /&gt;The five plots in the .pdf file attached (&lt;a href="http://www.siprep.org/faculty/bphilhour/documents/MasteringPhysicsData_000.pdf"&gt;also available on my website&lt;/a&gt;) are as follows:&lt;br /&gt;&lt;br /&gt;  UPPER LEFT: Average Quiz Score vs. Hours Logged on MP&lt;br /&gt;  UPPER RIGHT: Average Quiz Score vs. Fraction of Total Points Scored on MP&lt;br /&gt;&lt;br /&gt;  LOWER LEFT: Average Exam Score vs. Hours Logged on MP&lt;br /&gt;  LOWER RIGHT: Average Exam Score vs. Fraction of Total Points Scored on MP&lt;br /&gt;&lt;br /&gt;  BOTTOM: Fraction of Total Points Scored on MP vs. Hours Logged on MP&lt;br /&gt;&lt;br /&gt;(Remember that you can zoom in on this .pdf file to see it better.)&lt;br /&gt;&lt;br /&gt;A few things stand out immediately:&lt;br /&gt;&lt;br /&gt;  - Hours logged in MP seems to have no bearing on quiz and exam scores. This is not surprising: some folks multitask while logged into MP, some folks are working in a very focused way. Some people find the answers come quickly to them and do well, others spend very little time in MP but also do not understand the material well. In fact, you can see on the bottom-most chart that students who logged as few as 6 total hours over the semester scored about the same on MP as those who logged 17 hours. There does seem to be a cutoff -- students who did fewer than 6 hours of work in MP did poorly on quizzes &amp;amp; exams. This might be more reflective of overall engagement in the course.&lt;br /&gt;&lt;br /&gt;  - No student earned more than 90% of the total points on MP -- this is also not surprising, given that we awarded grade credit based on completion: typically if a student earned about 60% or more of the points, and put in non-trivial amounts of time on it, they earned credit for the assignment.&lt;br /&gt;&lt;br /&gt;  - Total points scored on MP seems to correlate STRONGLY with quiz and exam scores. Nearly every student who earned above about 75% of the points on MP earned average quiz grades of B- (2.5) or higher. Nearly every students who earned below about 50% of the points on MP earned average quiz grades below B-. A similar strong correlation is seen in the exam grades.&lt;br /&gt;&lt;br /&gt;As you know, just because two things are *correlated* (meaning when one increases, so does the other) doesn't mean that one *caused* the other. More on this idea &lt;a href="http://en.wikipedia.org/wiki/Correlation_does_not_imply_causation"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, since the same people (Mr. O'Keefe and myself) chose the MP software, chose the MP problems, and wrote all the quiz &amp;amp; exam problems -- and we did all of this to get at the same underlying basic ideas -- I think these data are strongly suggestive of MP's overall positive impact on quiz &amp;amp; exam scores.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-6065314565668767011?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/6065314565668767011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/11/physics-honors-masteringphysics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6065314565668767011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6065314565668767011'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/11/physics-honors-masteringphysics.html' title='Physics Honors: MasteringPhysics'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-8397852742091906639</id><published>2009-11-21T21:32:00.000-08:00</published><updated>2009-11-21T21:33:41.839-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teaching physics lab report rubric'/><title type='text'>Teaching: Lab Report Rubric</title><content type='html'>Continuing to tweak my &lt;a href="http://www.siprep.org/faculty/bphilhour/documents/ScientificMethodProject.pdf"&gt;lab rubric&lt;/a&gt;. The quality of reports I'm seeing from students is so much higher now that I've implemented it. There are four pages, but each one really just says the same thing as the others -- only in a different format. Some folks like the checklist, some like the matrix, some like the narrative, some like the 'don't do this.'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-8397852742091906639?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/8397852742091906639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/11/teaching-lab-report-rubric.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8397852742091906639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8397852742091906639'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/11/teaching-lab-report-rubric.html' title='Teaching: Lab Report Rubric'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-5326926021191808437</id><published>2009-11-16T08:07:00.000-08:00</published><updated>2009-11-16T11:51:33.909-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='honors physics'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Physics Honors: Tweeting/Text messaging</title><content type='html'>So check out problem 4 on &lt;a href="http://bit.ly/1k67HI"&gt;this quiz&lt;/a&gt; on Newton's Laws. Can you guess what the teacher learned from the student responses?&lt;br /&gt;&lt;br /&gt;That the vast majority of my students don't know about the 140 character limit for text messages or tweets -- they don't use twitter and they don't notice that text messages have a limit. (When I pointed out to a few students that sometimes their long messages are broken into two when they exceed 140 characters, they were like 'ohhhhhh.....')&lt;br /&gt;&lt;br /&gt;So basically all the responses from students ended up being 140 &lt;span style="font-style: italic;"&gt;words &lt;/span&gt;or less.&lt;br /&gt;&lt;br /&gt;Oh well, I at least enjoyed making the key =) I love the discipline the 140 character limit places on a person -- I just wish it would have worked on this quiz problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-5326926021191808437?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/5326926021191808437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/11/physics-honors-tweetingtext-messaging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/5326926021191808437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/5326926021191808437'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/11/physics-honors-tweetingtext-messaging.html' title='Physics Honors: Tweeting/Text messaging'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-5633260760672663605</id><published>2009-11-03T19:29:00.000-08:00</published><updated>2009-11-03T19:32:05.652-08:00</updated><title type='text'>Teaching: Scale</title><content type='html'>Just loved &lt;a href="http://learn.genetics.utah.edu/content/begin/cells/scale/"&gt;this little visualization tool&lt;/a&gt; from @eecastro&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-5633260760672663605?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/5633260760672663605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/11/teaching-scale.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/5633260760672663605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/5633260760672663605'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/11/teaching-scale.html' title='Teaching: Scale'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-6226678304791884770</id><published>2009-10-31T22:30:00.001-07:00</published><updated>2009-11-01T08:55:18.045-08:00</updated><title type='text'>AP Physics: Simulations</title><content type='html'>Hopefully my AP Physics students are beginning to wrap up their equatorial launches in the Lunar Lander project. This will put us on track for lunar orbit before the end of the semester.&lt;br /&gt;&lt;br /&gt;Tonight I happened to be looking through one of my old college astrophysics texts - this one on models of stellar structure.&lt;br /&gt;&lt;br /&gt;It occurred to me how useful it is to be able to make simulations (like in Excel) as an aid to understanding. This is something I'd like to share w/ the class next week: if you're in a science class in college and not following the material, maybe it's time to write a simulation!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-6226678304791884770?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/6226678304791884770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/10/ap-physics-simulations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6226678304791884770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6226678304791884770'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/10/ap-physics-simulations.html' title='AP Physics: Simulations'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-8568368268761319150</id><published>2009-10-31T13:47:00.000-07:00</published><updated>2009-10-31T16:29:35.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FCI'/><category scheme='http://www.blogger.com/atom/ns#' term='Teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>Teaching: Understanding Physics</title><content type='html'>Love this quote about the abilities of college students in introductory physics courses:&lt;br /&gt;&lt;br /&gt;“while nearly 80% of the students could state Newton’s Third Law at the beginning of the course … [Force Concept Inventory] data showed that less than 15% of them fully understood it at the end”&lt;br /&gt;&lt;br /&gt;(David Hestenes, 1998. Am. J. Phys. 66:465).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-8568368268761319150?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/8568368268761319150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/10/teaching-understanding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8568368268761319150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8568368268761319150'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/10/teaching-understanding.html' title='Teaching: Understanding Physics'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-6854122625546797570</id><published>2009-10-31T13:03:00.000-07:00</published><updated>2009-10-31T14:07:47.693-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grading'/><category scheme='http://www.blogger.com/atom/ns#' term='Teaching'/><title type='text'>Teaching: Grading systems</title><content type='html'>Was just chatting on Facebook, contrasting (in caricature):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Grading Scheme 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A: Did everything&lt;br /&gt;B: Missed a few things&lt;br /&gt;C: Missed a lot of things&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Grading Scheme 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A: Went above and beyond&lt;br /&gt;B: Performed well&lt;br /&gt;C: Showed some skill&lt;br /&gt;&lt;br /&gt;The thought was: Scheme #1 is going to lead students naturally to feel entitled to the A+ as long as they did 'everything that was asked of them' (teacher-centered), whereas Scheme #2 will lead students to reach out to determine what is meant by the difference between 'performed well' and 'went above and beyond' (student-centered).&lt;br /&gt;&lt;br /&gt;The first scheme feels like a cascade downward, while the second feels like steps upward.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-6854122625546797570?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/6854122625546797570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/10/teaching-grading-systems.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6854122625546797570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/6854122625546797570'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/10/teaching-grading-systems.html' title='Teaching: Grading systems'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7110509848145748830.post-8430322549906469785</id><published>2009-10-31T12:16:00.000-07:00</published><updated>2009-10-31T12:18:58.509-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='AP Comp Sci'/><title type='text'>AP Comp Sci: thoughts on JPanel</title><content type='html'>Asked a fairly open-ended question on a recent exam: "What's the difference between the ColorPanel classes we've been creating &amp;amp; using these past few weeks, and the JPanel class?"&lt;br /&gt;&lt;br /&gt;During grading, following came to me: one way of thinking about JPanel is that, for our purposes, it exists &lt;span style="font-style: italic;"&gt;primarily &lt;/span&gt;to be extended. It is like unmolded clay -- a framework -- that we want to build on. But we wouldn't really use it very much just on its own -- it is too boring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7110509848145748830-8430322549906469785?l=openproblems.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openproblems.blogspot.com/feeds/8430322549906469785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://openproblems.blogspot.com/2009/10/ap-comp-sci-thoughts-on-jpanel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8430322549906469785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7110509848145748830/posts/default/8430322549906469785'/><link rel='alternate' type='text/html' href='http://openproblems.blogspot.com/2009/10/ap-comp-sci-thoughts-on-jpanel.html' title='AP Comp Sci: thoughts on JPanel'/><author><name>BJP</name><uri>http://www.blogger.com/profile/13783102668836319266</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_8wrxSRKaTB4/SuzHyHknqVI/AAAAAAAAK4w/5tbxFxDcih0/S220/prof.jpg'/></author><thr:total>0</thr:total></entry></feed>
