Programs are generally defined as complexes of conditions of correctness. Programs provide criteria for the correct attribution of the →Code’s values, so that a system oriented towards them [→Differentiation of Society] can reach structured complexity and control its own processes.
In an autopoietic system [→Autopoiesis] differentiated through a binary code, the code guides the unity of operations reproducing the system: it regulates the production of differences, through which it also regulates the system’s information processing. Operations always run blind and, at the level of operations, the system has no control over its own processes. The code does not provide instructions for action; it provides only the orientation for operations, securing the connection to following operations. Self-regulation and self-control of the system happen at the level of programs, which guide the observation of the operations by the system itself (based on other distinctions than the ones orienting those operations). Programs determine the conditions necessary for the realizability of a certain operation. They determine, for instance, that attributing the positive value of the code is only correct under particular conditions. Hence the programs of the legal system (laws and procedures) determine which of the parties can be correctly claimed to be right and which to be wrong, and what must be taken into account in this decision. The programs of science (theories and methods) determine which conditions must be fulfilled in order to be able to claim that something is true. For instance, the programs of the education system determine the criteria for the selection of the pupils.
Programs compensate for the strict binarity of the code, which permits only two values to be considered, by introducing in the decision criteria that are foreign to the system. The programs of science can take into account political opportunity or research costs—even when the operations of the system are ultimately led only by the distinction true/untrue. One can therefore keep an eye on the available financial resources or on particular interests when programing research, but these influences cannot affect the truth of the results. This truth is not a political or economic fact, but is always dependent on the scientific code. As such, criteria external to the system, such as political opportunity or costs, in no way determine the production of knowledge: they can, however, limit research and influence the implementation of the programs.
Programs re-introduce the third value excluded by the binary code into the system that orients itself to the code. In this way, the rigidity of the code is mitigated. Even if the system orients itself only to its code (e.g., true/untrue, legal/illegal), at the level of programs it takes criteria into account that are valid in other systems. Even though, for instance, science never generates its truths in accordance with beauty or economic factors, it can attempt to make its truths compatible with these priorities. Based on the “foreign” criteria introduced by the programs, binary-coded systems can get enough distance from their operations to observe them and direct their own course. They are thus able to increase and structure their complexity.
As the self-observation of a system always requires the continuation of autopoiesis (of the operations) [→Operation/Observation], programming always requires orientation to a code. Through the code, the system differentiates itself as a unity from the environment, and none of the system operations can take place independently of the code. Only on the basis of the differentiation and functioning of the code can programming take criteria foreign to the system into account—and programs of course always refer to each system’s respective code. If one is no longer able to distinguish between truth and property or between truth and beauty, one cannot set criteria for attributing truth. While the code can never be changed, programs can change on the basis of the operations of the system: in science, for instance, theories and methods can change, albeit always on the basis of the code true/untrue. Opening the system at the level of programs requires closure at the level of coding, whilst reaching a certain level of complexity in the system requires programming.
If we look at the correctness of behavior instead of the attribution of code values, programs are specific points of reference that serve to identify connections between expectations [→Identity/Difference]. For instance, a surgical intervention is a program that coordinates the behavior of various people and means that a particular behavior, exhibited by each person in each moment and coordinated with the others, can be expected. The program determines which behavior must be deemed correct and is therefore to be expected. The distinction between conditional programming and programming by goals regards the reference of the correctness of behaviors to the realization of particular conditions (when a specific state occurs, then a particular behavior must be realized) or to the desired consequences. [E.E.] – (Unlocking Luhmann, p 181–183)
Social Systems (1995: 317-319); Codierung und Programmierung: Bildung und Selektion im Erziehungssystem (1986); Die Wissenschaft der Gesellschaft (1990: 197 ff., 401 ff.); Einführung in die Theorie der Gesellschaft (2005: Ch. 4.11).