In the fundamentals of computer science, an algorithm is typically defined as a finite effective procedure [Horowitz et al., 1997]. A `procedure'--a description or plan of action to accomplish something--that is `effective'--so it can actually be performed, step-by-step--and is `finite'--so it will definitely stop eventually. What are we to make of, say, an operating system, whose number one mission in life is to never ever stop?
[Horowitz et al., 1997] acknowledge the importance of such non-algorithmic `computational procedures', but only in the process of excluding them from further consideration. Here, in contrast, they are our central focus--so much so that calling a system `living' may in some sense mean the system is running an infinite effective procedure. Such an approach, though certainly unconventional, is compatible with the `Computation as interaction' approach to redefining introductory Computer Science [Stein, 1998], and more generally with the ongoing shift from algorithmic and procedural computation to object-based open-ended computation. Living systems potentially offer an epistemological framework surrounding and motivating these newer characterizations of computation.