Course: Advanced Programming in C++

» List of faculties » FBI » UAI
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)
  • Fesl Jan, Ing. Ph.D.
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)
  • Preparation for classes - 30 hours per semester
  • Class attendance - 30 hours per semester
  • Semestral paper - 40 hours per semester
  • Preparation for exam - 25 hours per semester
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
  • Halterman, Richard L. Fundamentals of Programming C++, 1. vydání. Southern Adventist Uni-versity. 2019..
  • Miroslav Virius. Programování v C++ od základů k profesionálnímu použití. 2018. ISBN 978-80-271-0502.
  • Quinn, Rian. Hands-On System Programming with C++: Build Performant and Con-current Unix and Linux Systems with C++17. 1. vydání., 2018, Packt Pu-blishing. 522. ISBN 978-1789137880.
  • Stephen Prata. Mistrovství v C++. 2014. ISBN 978-80-271-0502.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester