Course title | Advanced Programming in C++ |
---|---|
Course code | UAI/323 |
Organizational form of instruction | Lecture + Practice |
Level of course | Bachelor |
Year of study | not specified |
Frequency of the course | In each academic year, in the summer semester. |
Semester | Summer |
Number of ECTS credits | 5 |
Language of instruction | Czech |
Status of course | Compulsory-optional |
Form of instruction | Face-to-face |
Work placements | This is not an internship |
Recommended optional programme components | None |
Lecturer(s) |
---|
|
Course content |
1) References, pointers and references to functions, smart pointers, move semantics, RAII. 2) Classes, inheritance and friendship, polymorphism in C ++, overloading of class operators, PIMPL idiom. 3) Streams in C ++, access to files using streams, serialization of objects. 4) Templates of functions and classes, iterators, functors, meta programming, traits. 5) Advanced constructions in C ++, lambda functions, variation templates and functions, specialization of templates, deduction of autotypes. 6) STL - containers, iterators, pairs, use of semantic emplace. 7) STL - algorithms, types and uses, including the possibility of parallelization. 8) Modularity of the program in C ++, header files, namespaces, dynamic type checking, custom data types, policies, assertions. 9) Parallel programming in C ++, threads, synchronization of running parallel programs. 10) Use of external libraries in C ++ programs, initialization, calling, import of functions. 11) Communication via network - BSD sockets, TCP channel, messaging. 12) GUI - introduction, properties and events in C ++, QT library.
|
Learning activities and teaching methods |
Monologic (reading, lecture, briefing)
|
Learning outcomes |
The course is intended for students familiar with object-oriented programming to acquaint them with the specifics of the C ++ programming language. Emphasis is also placed on modern efficient construction of the latest C ++ 17/20/23 standards.
The student is able to create source code on the basis of the class model created after having analyzed the task. An emphasis is put to the creation of the optimal structure of the program, suitable for application and long-term maintenance. Final lectures and tasks are designed for proper tests of application administration both local and remote. |
Prerequisites |
Knowledge of C ++ at the basic level, resp. in Java at an advanced level is expected.
|
Assessment methods and criteria |
Written examination
Create and defend the semestral project, get at least 50% of possible points from the semestral test. |
Recommended literature |
|
Study plans that include the course |
Faculty | Study plan (Version) | Category of Branch/Specialization | Recommended semester |
---|