COURSE AIMS AND OBJECTIVES: Train students for advanced use of the C++ programming language in software developing tasks.
COURSE DESCRIPTION AND SYLLABUS:
1. Introduction to modern C++. Standard template library, lambda expressions and functional programming.
2. Object oriented programming. Design patterns, multiple and virtual inheritance, strong and weak sides of object oriented programming.
3. Generic programming. Class and function templates, programming techniques, interactions with object oriented programming, metaprogramming.
4. Multithreading. Threads, sinchronization, atomic variables, C++ memory model, parallel programming with and without locking.
5. Network programming. Programming with Boost.Asio library.
6. Graphical user interface (GUI) programming. Programming with Qt6 library.
|
-
C++ Templates: The Complete Guide, 2nd Edition,, David Vandevoorde, Nicolai Josuttis, Douglas Gregor, Addison Wesley, 2018.
-
C++ Concurrency in Action. Practical multithreading, 2nd edition, Anthony Williams, Manning Publications Co, 2019.
-
C++ Move Semantics - The Complete Guide, Nicolai Josuttis, Leanpub, 2020.
-
C++20 - The Complete Guide, Nicolai Josuttis, leanpub.com, 2022.
-
Hands-On Design Patterns with C++, F. G. Pikus, Packt, 2019.
-
The C++ Programming Language, Fourth Edition, Bjarne Stroustrup, Addison-Wesley, 2013.
-
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14, Scott Meyers, O'Reilly Media Inc, 2015.
|