Error analysis

This morning, I uploaded the grades for the third project that I assigned for my scientific computing class this semester. The project involved understanding the behavior of a thermal ignition model, and involved several steps. In each step, there was an approximation. At the end of the assignment, I asked the students how many digits of their answers they believed, and why. I did say that it was okay to not be rigorous, and that experimental evidence and convergence plots were fine.

They didn’t do so well at this. This difficulty made the project tremendously difficult to grade. It also set me to thinking about the nature of teaching error analysis in an introductory scientific computing class.

Few of my students should ever have to re-implement the basic algorithms they learn in this class. There are standard libraries that include good implementations of many of these methods, and the authors of those standard libraries spend time to make sure the implementations they provide are as robust and flexible as possible. The same is true of an introductory algorithms course, though: for the most part, the world does not need another implementation of quicksort, and it certainly does not need another implementation of bubblesort. What it needs is people who understand sorting algorithms well enough so that they can make intelligent choices between competing methods. In the case of sorting, that means understanding the effects of different key distributions, how nearly-sorted data differs from completely-unsorted data, and the care and maintenance of asymptotic complexity results. In the case of numerical methods, that means understanding how different methods rely on different problem characteristics, and the differences in efficiency and error that ensue. The important question is not “how can I compute X,” but “how can I compute X with enough speed and accuracy to attain my higher-level goal Y.”

At the end of the day, I just want to make sure that any bridges my students might build don’t fall down because they believed their simulations too much. My conclusion from this project is that I hope many of my students are not allowed to build bridges without supervision in the immediate future.

Comments

blog comments powered by Disqus
Fork me on GitHub