Algorithms and Programming III.

Teachers

Included in study programs

Teaching results

After completing the course, students should be able to:
A understand syntactic basics of the C++ language and semantic basics of object-oriented approach to creating source codes of C++ programs in integrated development environment
B be familiar with the principles and functioning of selected searching, sorting, encryption, numerical algorithms, and they should be able to implement these algorithms in C++ programs
C be familiar with the principles and functioning of more complex data structures, such as e.g., two-dimensional regular and irregular dynamic arrays and one-way linked list, and they should be able to implement these data structures in C++ programs
D analyse the assignment of the programming task, design an algorithm for its solution and implement the proposed algorithm using the syntactic rules of the C++ language and the object-oriented paradigm into the source code solving the assigned programming task
E select a suitable data structure for storing data of this algorithm for the proposed algorithm for solving the assigned task
F analyse the behaviour of the final program with an implemented algorithm using the specified data structure using the integrated development environment debugger, for test input data
G build the final program for the target operating system and the target hardware platform from the tested source code of the program solving the assigned programming task
H present and defend the proposed solutions to the assigned programming tasks at a professional level
I prepare a technical documentation (a report) describing their proposed solution to the assigned programming task

Indicative content

1 Basic concepts of object-oriented programming
2 Other programming techniques and features of oriented programming
3 Working with data streams using library classes objects in a program created in C++, inherited hierarchy of library classes for working with data streams
4 Inheritance, polymorphism, and composition of objects in an object-oriented C++ program
5 Dynamic allocation and deallocation of memory, arrays and pointers, address arithmetic and references in C++ program
6 Algorithms, groups (types) of algorithms
7 Complexity (computational complexity) of algorithms
8 Selected searching algorithms, their principles and operation in the C++ program
9 Selected sorting algorithms, their principles and operation in the C++ program
10 One-way linked list, its principle and operation in the C++ program
11 Selected methods of information encryption, their principles and operation in the C++ program
12 Selected algorithms of a numerical differentiation of mathematical functions, their principles and operation in the C++ program
13 Selected algorithms of a numerical integration of mathematical functions, their principles and operation in the C++ program

Support literature

STROUSTRUP, B. Programovací jazyk C++. Praha: BEN - technická literatura, 1997. ISBN 80-86056-20-1
ECKEL, B. Myslíme v jazyku C++. Praha: Grada, 2000. ISBN 8024790092
ECKEL, B. Myslíme v jazyku C++, 2. díl. Praha: Grada, 2006. ISBN 8024710153
SCHILDT, H. Nauč se sám C++. Praha: SoftPress, 2001. ISBN 8086497135
GLASSBOROW, F. Naučte se programovat! podrobný průvodce programováním v C++. Praha: Grada, 2005. ISBN 80-247-1243-1
VIRIUS, M. Programování v C++. Praha: Grada, 2017. ISBN 978-80-271-0502-1
VIRIUS, M. Programovací jazyk C++ 2. díl. Praha: ČVUT Praha, 2016. ISBN 978-80-01-06050-6
VIRIUS, M. Programovací jazyk C++ 3. díl. Praha: ČVUT Praha, 2017. ISBN 978-80-01-06089-6
VIRIUS, M. Od C k C++. České Budějovice: Kopp, 2004. ISBN 80-7232-110-2
VIRIUS, M. Jazyky C a C++. Praha: Grada, 2011. ISBN 9788024739175

Requirements to complete the course

Exercises (40% of course evaluation)
The content of the exercise is the solution of assigned programming tasks. In addition to these tasks, students solve independent home programming assignments thematically related to lectures and solved programming tasks from exercises. Students comment on their solutions to independent home assignments with their technical descriptions, and they defend them in a possible discussion in front of other students of their study group. The solutions of independent programming assignments of students are evaluated (10% of the course evaluation). By solving and evaluating independent home assignments, the achieved level of the B, C, D, E, F, G, H, I educational results is verified. During the exercises, students complete an independent written work, solving a programming task in an integrated development environment, which is evaluated (30% of the course evaluation). By solving and evaluating the problem task from the independent written work, the achieved level of the B, C, D, E, F, G educational results is verified.
Exam (60% of the course evaluation)
The exam consists of two parts:
- from an independent exam written work, solution of a programming task in an integrated development environment, and defense of this solution (50% of the course evaluation). By solving and evaluating the problem task from the independent exam written work and defending this solution, the achieved level of the B, C, D, E, F, G, H educational results is verified.
- from the oral part, where students answer theoretical questions from a syntax of the C++ language, the principles and functioning of selected searching, sorting, encryption, numerical algorithms, and from the principles and functioning of more complex data structures, such as e.g., two-dimensional regular and irregular dynamic arrays and one-way linked list (10% of the course evaluation). The oral part of the exam and its evaluation verifies the achieved level of the A, B and C educational results.

Student workload

Total study load (in hours): 6 credits x 26 hours = 156 hours
Distribution of study load
Participation in seminars: 52 hours
Preparation for seminars: 26 hours
Written assignments: 12 hours
Preparation for written work: 18 hours
Exam preparation: 48 hours

Language whose command is required to complete the course

slovak

Date of approval: 10.02.2023

Date of the latest change: 18.05.2022