Programming Paradigms

We consider how programming has been influenced by the speed of computation and the space in available memory. Educational technology follows.

The modern computer age began with the stored-program digital computer. We distinguish paradigms by the degree that the program is designed before it is stored.

# State Machine

We consider a program to be a sequence of steps to be followed mechanically under the influence of user inputs and the results of calculations.

TUTOR instructional programs were essentially interactive documents where the state of the reader/student was confined to 150 variables.

# Simulation

We consider a program to be a model of something real or imagined. The program can 'behave' on its own but also responds to adjustments made by an operator/student. Writing the program (building the model) may be an important part of the learning experience.

Smalltalk programs describe classes of objects that interact by signaling each other along paths under control of the programmer/student.

# Neural Network

We consider a program to be a mesh of artificial neurons connecting inputs to outputs with possibly many layers of intermediate connections between. The program hopefully does what we have trained it to do based on large volumes of stimuluses and desired responses.

Watson has been taught to 'understand' the many ways that humans ask and answer questions and through sheer size is expected to store and make accessible to the uninformed the benefit of knowledge.

# Conduit

In each paradigm the computer and its programs are thought to be a conduit of knowledge between the educated and the learner. It remains an open question whether conduit is a useful metaphor for a teaching machine.