L. Gorodniaia, T. Andreyeva

A.P. Ershov Institute of Informatics Systems, Siberian Branch of the Russian Academy of Sciences (RUSSIAN FEDERATION)
This paper concerns a new approach to the teaching of programming languages within higher education: it shifts the focus of studying and teaching from languages to a more general level, namely, to programming paradigms. Importance of this approach comes from the steep increase in the number of new-generation programming languages oriented at application and development of modern information technologies.

Different approaches to information processing that were formed and accumulated while creating and applying the programming languages and systems are called programming paradigms. Today experts discern in essence more than a score of these. Many programming languages can be referred to more than one paradigm. Study and clear classification of already existing and new programming paradigms must help to choose and design computer languages reasonably while forming programming projects and developing IT.

The article describes the main fundamental programming paradigms (the low-level, the imperative-procedural, the object-oriented, the functional, the logical, the parallel, etc. ones), their characteristic programming styles and languages, and approaches to their support in programming languages and systems. It also relates study and development of methods of analysis, comparison and formal definition of programming paradigms. As for programming languages, the article focuses at historically important and conceptual ones where the key ideas of the referring paradigms and the practical effects of their realization are perceptible.

To choose a programming paradigm means to choose a conceptual scheme for problem stating and solving, an instrument for “literate” description of facts, events, phenomena, processes, and particular and common concepts. Analysis and efficient classification of the already existing and new computer paradigms make choice of programming languages for building up new programming projects and inventing new information technologies well founded.

The Vienna method for the definition of programming languages helps to classify programming languages. The comparative description of the exploitational and the implementational pragmatics of the main paradigms results in a method of defining the paradigmal characteristic of a programming language in the form of specification of interactions of the main semantic systems (these are data processing, data storing, data structuring, and data procession controlling).

The article ends with the note on an educational programming language intended for the teaching of complex computation models and parallel programming. Design of such language must aim at selection of mechanisms that support experiments in designing new programs, languages and paradigms oriented at educational research projects in the field of distributed information systems. The educational experiments must cultivate a habit to use the program verification methods, inasmuch as the program reliability and capability are questionable without these.