INSTITUTE OF INFORMATION TECHNOLOGIES - BAS
Short resume of the course "Programming in C "
Generally, the programming language is a tool for describing of the algorithmic ideas and for communication with the computer. The characteristics of the chosen language define in some extent the quality of that process - what possibilities exist for program developing, what the algorithmic and programming style is stimulated by the language, etc. The C programming language has proven in the time (starting with its 1st official presentation - "The C Programming Language", Brian Kernighan, Dennis Ritchie - Prentice-Hall, 1978 and until now), excellent features for structured programming, rich communication capabilities between basic program units - functions, recursion, data structuring, separate modules compiling mechanism, preprocessor and many others. In addition, C gives the programmer an extensive and creative freedom to develop flexible, compact and effective programs.
In many aspects there exists analogy between C and other high level programming languages. It is however one of the first amongst them, to implement pointers to objects (object addresses variables) and to process them (address arithmetic). Those features significantly increase the effectiveness of the generated program object code and also reduces significantly the need of using low level programming languages (as Assembler for example). Some other of its "assembler" features could be mentioned also - as bit fields, bitwise operators, unions, preprocessor commands. Using them the "high level" of C can be used effectively for hardware control of the computer or computer system. That means using high level language to get results specific for assembler language with lower time and work costs.
The experience of using C can describe it as universal programming language. In the beginning it was more known with applications in system programming, for coding the basic parts of operating systems for example. Nowadays there exist many other programming applications of C as compilers, word-processing systems and many other user oriented programs. The C compilers are distributed bundled with rich libraries of mathematical, graphical, multimedia and other functions. The "universality" of C is proven also by the fact that many modern programming languages as C++ and Java use the ideas and syntactical base of C.
Without neglecting the other programming languages qualities, the time and experience define C as a basic language for initial programming learning and as a foundation for future computer programming skills building. Some professional programmers say - "New programming languages come and go, but C will stay forever"
The course structure.
The first part is for beginners and the material is gradually increasing its complexity. First 6 chapters introduce the language basic elements following the rule of using only known elements in examples. Each new element is introduced by formal description, explanation, examples and at the end, additional explanations, generalization and exceptions. The syntactical description for language elements in the beginning can be used as reference by any C-programmer.
The second part of the course (chapters 7 to 10) is oriented towards users with some programming experience in C and for those who successfully pass through the first part.
The course is illustrated by examples, most of them complete working programs.
The base material of the course is developed by the authors of the first Bulgarian book "Език за програмиране С", Техника, София, 1989 г. ("C Programming Language", Tehnika, Sofia, 1989.). The book has many reprinted editions until now which could be taken as a proof of the necessity of the such course based on it, with relevant actualization accordingly acting ANSI C standard.