Introduction to programming

Objectives and outcomes

Students acquire general knowledge and practical skills in programming. They understand all important concepts of procedural programming and are able to apply them. They are further capable of devising and implementing simple algorithms and using basic data structures in command line programs.


Basic terms of programming: programming languages, algorithm, command, source code, compiling, integrated development environment. Data representation in a computer, numeral systems, character encoding (ASCII table), real numbers representation. Reading data from a system input and writing on a system output. Primitive data types and variables. Operations on data – arithmetic, bitwise, relational, logical. Program flow control – branching and loops. Functions and variable scopes. Recursion and its usage in assignments. More complex data structures – arrays, strings and structures. Pointers and memory management. Dynamic data structures – lists and binary trees. Working with files.

Practical classes

Getting familiar with the program development environment. Implementation of simple programs with sequence control structure and reading data from a system input and writing on a system output. Practising the use of different data types and operations on them. Utilisation of various built-in functions, writing new functions. Implementing programs with different branching mechanisms – of, switch, ternary conditional operator. Programs with loops. Practising usage of different loops – for, while, do-while on given programming assignments. Nested loops. Working with strings as arrays as well as with use of built-in string functions. Practising examples with pointers. Implementing operations on arrays and strings using pointers. Working on problems that use singly linked lists, implementing operations on lists in two ways – iterative and recursive. Problems on ordered binary trees. Implementing operations on ordered binary trees in an iterative and recursive way. Reading from file and writing to file. Loading data from a file into a dynamic data structure and processing it with operations on the data structure.