I did another Piper Physics Patrol show today, but the best part of the day was the drive home. I brought a student with me, as all physics majors are required to do at least one show with me before they graduate. She was in my fall SBG-based class and is registered to take my spring Physical Optics course (syllabus from 2 years ago here). She also took two of the courses I’m teaching this spring, last spring. It was a 45-minute drive that really got my brain going on some ideas for my spring classes and I wanted to get some of the ideas and questions down here, in the hopes that you can give me some feedback on them.
LabVIEW out, Arduino in
In the spring of their sophomore year, physics majors take Modern Physics. I regularly teach the lab portion of that course. The work is about one third famous labs, one third learning computer control of equipment, and one third a “fake data” project. Here I want to talk about the computer control third.
For the past 11 years, I’ve first taught the students the basics of LabVIEW, and then had them use LabVIEW to control motors, read thermometers, and play with things like accelerometers. Then they have to build up the LabVIEW for the fake data project. Here are a few pros and cons of this approach:
- LabVIEW is powerful and looks good on a resume
- We have a site license for 20 machines
- LabVIEW works well with Vernier probes, of which we have a lot
- There’s very little LabVIEW can’t do when it comes to computerizing an experiment
- There are lots of good examples bundled with LabVIEW
- We ONLY have a site license for 20 machines
- LabVIEW is a little overkill for measuring a single voltage
- Our students don’t seem to embrace LabVIEW in their junior-year projects
- Here I think I mean that they don’t feel comfortable enough with it but it might be the 20 license thing
- LabVIEW is constantly upgrading and backwards-compatibility isn’t a strong suit of National Instruments
Last summer I had a student working with Arduino boards to see just how much of our Modern Lab curriculum it could handle. It turns out, it’s quite a bit! Here are some pros and cons:
- Cheap ($30 for board, another ~$50 for the motor shield, free software)
- Easy install on macs and pcs
- controllable by Mathematica
- My student figured most of this out last summer
- We have a campus-wide site license for Mathematica, including any computers that belong to students
- Decent set of examples online
- set it and forget it
- you can install your script and hit go and it’ll just keep doing it without further computer interaction
- It can’t easily produce a true adjustable analog output
- It simply changes the duty cycle of a repetitive 5V pulse to achieve a different average voltage value
- It can’t easily communicate with gpib and serial devices
- The data rate back to the computer is slow and there’s little onboard storage
- My student worked with an SD-card shield that works well but the triple stack of Arduino, motor shield, and SD-card shield was problematic
- The suggestion of using Processing to collect and plot data is kind-of a pain because the processing code looks daunting to students
- It can’t easily produce a true adjustable analog output
So, after talking with my student today, I’m very much leaning toward changing the curriculum entirely to Arduino, including the fake data project. One of the things she pointed out to me was that, last summer, she had to use LabVIEW to control an instrument in the lab she was working in. While it was true that she’d been exposed to it in my class, she really didn’t feel she learned how to use it until she had a true project to do. I asked her how much she would have been slowed down if she hadn’t learned LabVIEW last spring. She thought it would only have been as much as a week.
I also talked to her about a point I mention above. I asked whether her current cohort of juniors in the advanced lab were willing to embrace LabVIEW for their year-long projects. She reported that few of them were, because they don’t feel comfortable with it and because they’re slaved to the computers we’ve installed LabVIEW on.
So what would have to change? I break my LabVIEW training down into voltage in, voltage out, motors, and combinations. Those are pretty broad and they’re usually exposed to enough to see how to do complicated things. Arduino can handle most of that. Certainly the voltage in works fine. The voltage out is problematic as noted above, but the duty-cycle solution is fine for things like dc motors. It’s not-so-fine for things like the photoelectric effect lab. The motor shield we’ve purchased for our Arduino’s seem to make the motor stuff much easier on the Arduino than LabVIEW. As for the fake-data lab, I think there may be a few projects I’ll have to steer them clear of, but not many.
I’d love to hear what you think about this change.
My student asked me how I was planning to do Standards-Based Grading (SBG) for a course with a lab, something I haven’t done yet. I told her I was still kicking some things around. Here are some of the possibilities she and I debated and I have been thinking about. I’d love some feedback from you about them.
The lab is the standard
“I can can do the index of refraction of a piece of glass lab.” That could be the standard and maybe they have to all do it on the same day in lab. It would include error analysis, plotting, data collection, formal write-ups etc.
The idea is the standard
“I can measure the index of refraction of a piece of glass.” There will be a lab day devoted to it, but maybe they don’t have to do it/finish it that day. It’ll still include things like error analysis etc as listed above.
Lab skills are separate
“I can propagate errors through a calculation.” Every lab will have this so every lab will get a score for this. By my normal procedures, that would mean their last lab would be the only one that counts. Problematic, I suppose.
Labs are individual
“I can be a group leader” and “I can be a Laboratory Assistant.” Everyone has to do every lab by themselves, unless more hands are needed. The lab standards would likely be like “I can measure the index of refraction of a piece of glass” along with “I can propagate errors.” If they need more hands, they’re assessed on how they function in a group with very particular roles assigned. Sometimes they’re the leader (when they’re gunning for the lab standard). Sometimes they’re the lab assistant (when they’re simply gunning for the lab assistant standard).
A big problem with this latter one is that they might have to do a few labs several times, once as a group leader, and a few times as an assistant.
I like the individual approach to labs because then they can reassess them with easier logistics. Of course, then I have to make the labs quite modular from an equipment perspective.
I’d love some feedback on these ideas. I don’t have to pull the trigger for 3 weeks. Thanks in advance!