Skip to Main Content
As a major evolutionary step in computer technology, users have come to rely on ready-made application software, rather than writing their own programs. If computer users no longer program, does it follow that the art of programming should only be taught to computing professionals? We argue the case for programming as a component of general education - not because of any direct utilitarian benefit, but in order to gain a personal experience as to what it means, and what it takes, to specify processes that evolve over time. An analogy to mathematics education shows that schools teach the concept of "proof", although in daily life people use mathematical formulas without knowledge of their proof. Programming practiced as an educational exercise, free from utilitarian constraints, is best learned in a toy environment, designed to illustrate selected concepts in the simplest possible setting. As an example, we present the programming system Kara based on the concept of finite state machines.