• 1.1: Programming Paradigms

    Early in computer science history, functional programming was the practice of choice. This is normal given the reason for the first practical computer to be built, to perform time-consuming calculations faster. Functional programming grew into modular programming so that it would be possible to group associated and oft-used calculations into callable modules. Modular programming gradually evolved into object-oriented programming, the main approach used today. We begin with functional programming and then move into object-oriented. Whichever programming approach is used, the general computing paradigm has several aspects: the task to be performed; a strategy for how the task will be performed; transformation of the strategy into a detailed strategy that corresponds to activities that a computer can perform; implementation of the strategy as a set of instructions that can be executed by a computer; and validation that the results of the execution perform the task in a satisfactory manner. In software engineering, these aspects are called requirements analysis, architecture and design, program code, and validation. As approaches evolved from functional to modular to object-oriented, these still support the general paradigm. A programming language, while supporting a particular paradigm, typically may support other paradigms as well.