Computer programs are collections of instructions that tell a computer how to interact with the user, interact with the computer hardware and process data. The first programmable computers required the programmers to write explicit instructions to directly manipulate the hardware of the computer. This "machine language" was very tedious to write by hand since even simple tasks such as printing some output on the screen require 10 or 20 machine language commands.
Machine language is often referred to as a "low level language" since the code directly manipulates the hardware of the computer.
In contrast to low-level languages, higher level languages such as "C", C++, Pascal, Cobol,
Fortran, ADA and Java are called "compiled languages". In a compiled language, the programmer writes more general instructions and a compiler (a special piece of software) automatically translates these high level instructions into machine language. The machine language is then executed by the computer. This is the trend for a large portion of software in use today. We can make another comparison between two different models of programming - structured and object oriented programming. In structured programming, blocks of programming statements (code) are executed one after another. Control statements change which blocks of code are executed next. In object oriented programming, data are contained in objects and are accessed using special methods (blocks of code) specific to the type of object. There is no single
"flow" of the program as objects can freely interact with one another by passing messages.
This course is devoted to the study of structured programming and it examines the following issues in relation to the subject matter. The course start with a brief survey of programming paradigms – procedural, object-oriented, non-algorithmic, functional and declarative programming, It further address the issues of structured programming elements, structured design principlesabstraction modularity, step refinement, structured design techniques. The principles of good programming,- problem-solving phases, the programming process, design, testing, debugging and documentation were presented.
To consolidate the theoretical knowledge with practical world the C programming language was used for demonstration. This involves the analysis of C data types, input and output, control structures, functions, object and classes, including structured programming concepts, string processing, internal sorting and searching, recursion.
Programming paradigm can be described as programming “technique”, way of thinking about programming or view of a program. A programming language consists of words, symbols, and rules for writing a program. The most dominant programming paradigms include the imperative
(also known as the procedural), structured, functional, logic, and object-oriented paradigms.
Others include Concurrent Programming, Event-Based Programming and Multi-Paradigms.
Imperative (Procedural) Programming Paradigm
In this programming paradigm, program as a collection of statements and procedures affecting data (variables). This paradigm creates procedures, functions, subroutines, or methods by splitting tasks into small pieces. Focus is on writing good functions and procedures using the most appropriate implementation and employ correct efficient algorithms thus allowing a section of code to be reused in the program to some extent and making it easier for programmers to understand and maintain the program structure. However, it is still difficult to solve problems, especially when they are large and complicated, since procedural programming languages are not