Computing in Physics 101: What We're Doing Wrong
This post originally appeared on the Software Carpentry website.
Mark Guzdial and his colleagues do top-notch research on computing education—that's "teaching people computing", not "using computers to teach people", though for obvious reasons, the two frequently overlap. He recently wrote three blog posts that I think everyon pushing for more computing in the classroom should read. In them, he describes the results of Daniel Caballero's PhD research, in which he compared first-year physics students doing a traditional course with ones doing an equivalent course which included a large programming component. His findings were:
- The students in the traditional course came out with a better grasp of basic physics. This isn't surprising&dmash;their homework assignments were all on physics, rather than on a mix of physics and programming—but it does show that any extra insight that comes from playing with computational models doesn't compensate for the time required to learn how to compute (at least not on the timescale of one year).
- Students who took the computationally-oriented course had less favorable attitudes toward computational modeling after the course than they had at the start; their attitudes were also less favorable than those of students who took the conventional course.
Guzdial summarizes this work by saying:
We need to produce STEM graduates who can model us[ing] computers and who positive attitudes about computational modeling. The challenge for computing education researchers is that...we don't nkow how to do that yet. Our tools are wrong (e.g., the VPython errors get...in the way), and our instructional practices are wrong (e.g.,...students are more negative about computational modeling after instruction than before).
These are sobering conclusions, particularly for someone who has spent a year or more building material to teach computing to scientists. Caballero's research may not tell us what we should do (though Mark's comments about the value of live coding have got me thinking once again), but knowing that we're doing it wrong right now is a necessary first step.