CSE599Z1: Accurate Computing

Description: As Kronecker told us long ago, "God made the integers, all else is the work of man." However, we depend on computing with hellish abstractions like real numbers, physical measurements, and approximate controllers every day. These abstractions show up in everything from math libraries to manufacturing processes, and we rely on them working "well enough." The trouble is that programming effectively with these abstractions remains tremendously difficult, despite decades of research. Crafting accurate floating point code is a dark art reserved for high priests who haunt dusty stacks deep in the library, slowly drawing out the wisdom of past generations. Getting desktop 3D printers to consistently produce high quality prints requires brute force iteration and the patience of Job. The result is that only a few people can effectively work on the implementations of such systems, and even for these experts the process is tedious and error-prone. In this course we will explore some of the issues that have led to this state of affairs, read up on the great achievements of our forebears, and investigate how we can bring those insights to the working programmer so that more people can effectively build systems in this important space. We will discuss papers each meeting and do a couple of small assignments to ensure we can empathize with what folks are up against today. Students will complete a large project in this space (ideally related to their thesis work!) and present their results at the end of the quarter.

Prerequisities: (none listed)
Credits: 4.0

Portions of the CSE599Z1 web may be reprinted or adapted for academic nonprofit purposes, providing the source is accurately quoted and duly credited. The CSE599Z1 Web: © 1993-2024, Department of Computer Science and Engineering, University of Washington. Administrative information on CSE599Z1 (authentication required).