About the course:
Lectures deal with the theoretical parts of the subject and are held in classrooms or by distance learning system. Pre-recorded lectures may also occur.
Exercises are teacher-supervised. During an exercise session, the supervisor distributes programming problems to the class, which the participants have 5-10 minutes to solve, after which the supervisor shows how the problem can be solved and connects to theory from the lectures. Exercises are held in classrooms.
Laboratory work is performed at a computer in a computer room. Students solve problems from the course literature.
Guest lectures can be held to demonstrate how software development takes place in the industry.
- Introduction to software development and software development environments.
- Variables and program states, route selection, iteration, recursion.
- Arithmetic and logical expressions, strings, word processing and memory management.
- Generalization, parameterization and function abstraction.
- Dynamic data structures, file concept, standard library and error handling.
- References and pointers versus values.
- Introduction to the concept of objects.
- Problem solving, program structure and documentation.
At the end of the course you will be able to:
- Demonstrate knowledge of proven experience in the design and construction of imperative programs as well as the ability to plan and implement qualified tasks in the form of implementation of imperative programs aimed at solving specific technical problems.
- Demonstrate the ability to, with a holistic view of relevant issues, model the problem and independently identify and formulate solutions in a modern imperative programming language.
- Demonstrate the ability to critically evaluate and analyze technical solutions in the form of existing programs in imperative languages and predict and evaluate events in these.