It is tremendously ironic that computers were invented with number crunching in mind, yet nowadays most CS graduates leave school with little or no knowledge of the intricacies of numeric computation. This paper surveys what every CS graduate should know about floatingpoint arithmetic, based on experience teaching a recently-created course on modern numerical software development. [Note: This paper was first delivered to the Consortium for Computing Sciences in Colleges (CCSC), Rocky Mountain Region, October 2005)] Missiles miss their targets. Spacecraft malfunction. Control systems lose control. Why? Because someone didn’t do their numerical homework. Today’s CS curricula have broadened their scope to the point that the raison d’être for automatic computation has practically been forgotten. While most jobs in computing do not require in-depth knowledge of floating-point number systems, every CS graduate should be sufficiently fluent with numerics to produce accurate results. Consider the following expression, expressed in C/Java syntax: 1.0f − 0.2f − 0.2f − 0.2f − 0.2f − 0.2
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.