The notions of computers and algorithms
Problems and solutions. The notions of algorithms and programs. The computer as universal executor of algorithms. Properties of an algorithm, the computation and the computed function. Solving problems by the computer. Using flow charts to describe algorithms. Structured flow charts.
The computer and the information encoding
Elements of the von Neumann’s machine. Encoding of natural and rational numbers, characters, and images. Arithmetic and logical operations. The organization and components of a processing system. The main memory. The central processing unit. Device management. Input-output devices. Storage devices. The machine language. The assembler language. Relocatable addressing. The execution of the instructions.
Programming Concepts
The high-level languages. Abstractions over data, control structure and procedures. Programming paradigms. Compilers and interpreters.
The C programming language
The structure of a C program. Rules for writing programs. The data types in C. The functions of printing and getting data. The assignment operator and arithmetic operators in C. Implicit and explicit casting. Relational and logical operators. Conditional statements IF, ELSE and SWITCH. The loops WHILE, FOR and DO. The jump instructions BREAK and CONTINUE. Declaring, indexing and initialization of arrays. Declaration, indexing and initialization of two dimensional arrays. The pointer variables and the pointer arithmetics. Constants and string variables. Definition and call of functions. Passing arguments by value and reference. Local, static and global variables. Scope and duration of a variable. Operations on sequences of integers: print, search, insertion, deletion and fusion. Insertion sort, selection sort, bubble sort. Recursive function. Stack of program execution. Quicksort and mergesort. Structure variables. Declaration of structures and operators over structures. Structures used as function arguments. Recursive structures and arrays of structures. Operations on sequences of structures. Union and enumeration variables.