Introduction to Programming
FEKT-BPC-UDPAcad. year: 2018/2019
The first part of course familiarizes students with basis of data storage in computer (integer number, floating point numbers, IEEE 754-2008 standard), binary arithmetic, characters coding (ASCII, ISO-8859-X, UNICODE), BASE64 coding, Von Neumann principles and concept of the computer, OS basis principles. The second part is focused on foundations of C language programming. The students should learn to use simple variables, operators, assignment commands, branch statements, programming of loops, employ functions, arrays, structures and pointers.
Learning outcomes of the course unit
Graduate should be able to:
- express the number in the various numeral systems,
- express decimal number by IEEE 754-2008 standard,
- express character in ASCII, ISO-8859-X, UNICODE (UTF-32, UTF-16, UTF-8) coding,
- code binary octet string by BASE64 standard, decode BASE64 text,
- utilise base Linux/UNIX command,
- describe basic and structured C language data types,
- apply C language statements and operators,
- create and call C functions,
- design simple algorithm and create C program for it.
Recommended optional programme components
Recommended or required reading
Planned learning activities and teaching methods
Techning methods include lectures and computer laboratory lectures. Students have to create assignments during the computer laboratory lectures.
Assesment methods and criteria linked to learning outcomes
Up to 50 points for the laboratory lectures (2 tests up to 25) points. Minimal needed points from tests is 20.
Up to 50 points for the final examination. Minimal needed points from final examination is 20.
Language of instruction
1. Introduction to the course. Numeral systems, translation between numeral systems. Binary arithmetic. Negative number representation.
2. Float point representation, IEEE 754-2008 standard. Von Neumann principles a computer conception. Machine instruction. Operating system (OS), role of OS, abstractions provided by OS.
3. Character encoding: ASCII, ISO-8859-X, Windows-1250, UNICODE (UTF-32, UTF-16, UTF-8). Binary-to-text encoding BASE64. Algorithms, algorithm description by flow charts.
4. Programming and markup languages. Programming language types. History and C language standards. Base C language program standards.
5. C language variables, variable identifiers. Simple and structured data types. Definition and initialization of variables. Global and local variables. Variables visibility. Constants. Constant variables.
6. Expressions and commands. Priority, associativity and arity of operators. Binary and unary operators. Assign statements. L-value, R-value. Increment and decrement operators. Compound statements. Blocks and variable definitions.
7. Branch statements if - else. Relational and logical operators. Logical expressions. Conditional expression. while loop statement.
8. do-while and for loop statements. break and continue statements. switch statement. Arrays. Strings.
9. Function – definition, calling, arguments passing, return value, stack frame. Preprocessor statements: #include, #define, #ifdef, #ifndef, #endif. Macros with parameters. Include files.
10. Pointers. sizeof operator. Pointers and fields. Dynamic allocation. Pointers as arguments of functions. Field as argument of function.
11. Structure. C Structure initialization. Structure as argument of function and as function return value.
12. Pointer to pointer. Array of pointers. Arguments of function main(). API. ABI. Library of functions. Library building process (dynamic and static). Standard C functions library.
13. Standard I/O functions: scanf(), printf().
The aim of the course is to familiar students with basis date representation in the computer, binary operations, basis Von Neumann computer function, and basis C language programming.
Specification of controlled education, way of implementation and compensation for absences
The computer exercises is mandatory, the properly excused missed computer exercises can be compensate.