Here is a problem that I was unprepared for as I began my teaching career. Students don't always use their calculators correctly, and absent videotaping their keystrokes, they have no way of getting feedback. This means that the reproducibility of their result is in question. I'm moving toward using scripting languages as calculator replacements for students since they provide a record of the numerical calculation that I can provide feedback on.

The usual process for many quantitative classes is to take an assigned problem, understand the conceptual framework you need to make an estimate, and then make the algebraic manipulations necessary to place the given values and estimates into a form that can be computed. At this point, unless the computation is very simple, the student reaches for a calculator, most likely a TI-84, and maps the symbols on the page to the keys available on the keyboard. I remember, hazily, my own experience with this in graduate school where several of us were trying to get all the units of permittivity and permeability and whatnot correct, it took us several iterations. If the student makes an error in operating the calculator, they write down an answer. When I grade the work, there is no record to rely on, only a discrepancy between the symbolic answer and the calculated value.

Scientific notation is a frequent difficulty for students and I decided to watch students as they entered in numbers in scientific notation. To my surprise there were a variety of approaches. As an expert, I expected students to enter 2E6 to represent \(2 \cdot 10^6\). A few students did this while others used the 'y to the x' key to calculate \(10^6\) and then multiplied by 2 to get the number they wanted. All of these approaches are completely invisible to the grader who can only see the written record.

Since then I've been integrating tools like the Jupyter Notebook with Python or Julia and instructing students to use them perform their calculations for even introductory classes. Since services like sage math cloud, tmpnb, and juliabox make this free and ubiquitous, there is almost no downside. Another interesting tool is Calca which is essentially a plain text editor with a calculation engine attached. The barrier to entry with this tool is very low as well. With very little cognitive overhead, students can access sophisticated tools without being burdened by that sophistication. This achieves two goals that I think are important. The first is it leaves the graders a record of exactly how the microprocessor was instructed to behave. The second, is it exposes students to a whole new universe of tools and ways of calculating numbers where they can mix prose and calculation in a narrative. My hope is that this will get them thinking in terms of the reproducibility of their computations as early in their training as possible.