The paper describes two general problems encountered in computational assignments at the introductory level. First, novice students often treat computer code as almost magic incantations, and like novices in many fields, have trouble creating new algorithms or procedures to solve novel problems. Second, the nature of computational studies often means that the results generated are interpreted via theoretically devised quantities, which may not meet a student's internal standards for proof when compared to an experimental measurement. The paper then offers a lab/programming assignment, used in a calculus-based physics course, which was devised to address these problems. In the assignment, students created a computational model of the heat flow involved in heating an iron rod in a blacksmith's forge. After creating the simulation, students attended a blacksmithing seminar and had a chance to work with iron and take data on its heating in a coke-fueled forge. On their return to campus, students revised their computational models in light of their experimental data.
Deep Dive into Computational Physics and Reality: Looking for Some Overlap at the Blacksmith Shop.
The paper describes two general problems encountered in computational assignments at the introductory level. First, novice students often treat computer code as almost magic incantations, and like novices in many fields, have trouble creating new algorithms or procedures to solve novel problems. Second, the nature of computational studies often means that the results generated are interpreted via theoretically devised quantities, which may not meet a student’s internal standards for proof when compared to an experimental measurement. The paper then offers a lab/programming assignment, used in a calculus-based physics course, which was devised to address these problems. In the assignment, students created a computational model of the heat flow involved in heating an iron rod in a blacksmith’s forge. After creating the simulation, students attended a blacksmithing seminar and had a chance to work with iron and take data on its heating in a coke-fueled forge. On their return to campus,
Computational Physics is quickly becoming a standard component of many departments' degree program and the utility of the field cannot be denied. It's hard to imagine a modern physics lab without a computer to perform data analysis, and more than just making the task more bearable, most present experimental programs would be impossible without computational automation. [1,2] In addition, the ability to create a working model of a "real" system by distilling out the essential physical/mathematical relationships, and then implementing these relationships in a way that captures part of nature is an existential thrill for many students [3,4,5]. When we allow our students to tackle novel problems and discover real truths on their own, via a simulation they create, we recruit new physics majors [6,7].
When learning how to program, students often seem to grab hold of a certain example program and then treat the syntax therein as a magic incantation. So long as they don’t deviate too far from the example code, their program should compile, run, and produce something close to the desired result. In so doing, students miss the actual structure of the computer language and the ability to have a computer do “whatever you want” rather than “only the things I have examples for” [8]. This is not a trait specific to computational physics, or even computer programming in general. Most novices in any field start the learning process by copying the actions of an expert. In physics, this often occurs in homework problems where students are sometimes asked to parrot the professor’s class examples in different contexts. In the same vein, an infant of about six month’s age, when seated at the dinner table, will start opening and closing their mouth, just like their parents do when they lift a utensil to their mouth.
A more sophisticated student will make a plan for how the program should look and function before actually writing the code. Instead of looking through their library of example programs for one that does something close to the job at hand, an expert will imagine the algorithmic steps necessary to solve the problem, and then figure out what computational machinery (variables, operations, and syntax) best suit the algorithm. [9] This is not a new division of skill. The novice in introductory physics looks at a test problem about the flight of a baseball and tries to figure out what worked class example best matches the problem, perhaps picking the worked trebuchet example from class. An expert, working the same problem, will likely exhibit clustering or “chunking” of knowledge [11]. Rather than thinking about specific worked solutions, experts tend to think of all the pieces of physics related to the question. In this case, the expert might call to mind kinematics, energy conservation, air resistance, and Newton’s second law. Although the expert’s solution might take longer to produce (and contain extraneous details), the fact that the problem is novel is not a insurmountable difficulty for an expert, [10]. By contrast, a novice can generally only solve problems that are in their library of solutions.
The “best ways” to move students to the expert state are legion [12,13,14], and there’s no utility in repeating the list here. In the context of programming though, a good start towards creating expert behavior is to require arXiv:0904.3960v3 [physics.ed-ph] 1 Aug 2009 it [15,16,17]. If we assume that the instruction and materials are clear and sufficient, then the first law of teaching, “If you want students to do something, grade it!” [18] would seem to apply.
Most calculus textbooks contain a section in the first chapter that might as well be called “Lies my calculator told me” [19]. As most instructors well know, novice students often trust calculators more than their own heads, and this trust is dangerous, particularly because the calculator is only as reliable as the person who designed and programmed it. Of course, very few physicists see value in requiring students to be able to compute something like log(1.9723) by hand, rather, the idea is that students should have the habit of thinking critically about the answer a calculator produces. As a more concrete example, consider the student who is using a calculator to evaluate the angle θ produced by the opposite and hypotenuse sides of a triangle. If the hypotenuse is h = 1.0, and the opposite side is b = 0.2, 0.4, 0.6, 0.8, … the student will have little trouble with the arcsin button on their calculator (using the relation θ = arcsin b h ). If however, the student notices a trend in the value of θ, and out of curiosity plugs in the value b = 1.2, their calculator will fail them. Of course, a very good calculator might map arcsin to the complex plane and produce the answer θ = 1.57-0.62i, but most calculators would just produce “ERROR”. A novice student will generally try the computation again, get the same result, and then proclaim that their calculator is “b
…(Full text truncated)…
This content is AI-processed based on ArXiv data.