Code: NIE-EPC |
Effective C++ programming |
Lecturer: doc. Ing. Daniel Langr Ph.D. |
Weekly load: 2P+1C |
Completion: A, EX |
Department: 18104 |
Credits: 5 |
Semester: W |
- Description:
-
Students learn how to use the modern features of contemporary versions of the C++ programming language for software development. The course focuses on programming effectivity and efficiency in the form of writing maintainable and portable source code and creating correct programs with low memory and processor time requirements.
- Contents:
-
1. Introduction, C++ standards and implementations, observable behavior, translation units, undefined behavior
2. C++ object model - basics
3. C++ object model - continued
4. C++ object model - examples
5. Expressions, references, content of objects
6. Content copying and moving
7. Exceptions and safety, RAII
8. Templates - basics
9. Templates - variadic templates, perfect forwarding, emplace semantics
10. Template - pros/cons, SFINAE, concepts and constraints
11. Type erasure, CRTP, empty base optimization, ADL
12. Performance and efficiency
13. Short string optimization
- Seminar contents:
-
Students solve problems related to lectures; the instructor provides consultations and advice.
- Recommended literature:
-
Josuttis, The C++ Standard Library-A Tutorial and Reference
Meyers, Effective Modern C++
Reddy, API Design for C++
Stroustrup, Programming - Principles and Practice Using C++
Stroustrup, The C++ Programming Language
Vandervoorde and Josuttis, C++ Templates - The Complete Guide
cppreference.com (C++ reference)
stackoverflow.com (developer forum)
isocpp.org (news, status, blogs, FAQs, discussion)
ISO/IEC 14882:2014 Information technology - Programming languages-C++
- Keywords:
- advanced
C++
effective
efficient
programming
Abbreviations used:
Semester:
- W ... winter semester (usually October - February)
- S ... spring semester (usually March - June)
- W,S ... both semesters
Mode of completion of the course:
- A ... Assessment (no grade is given to this course but credits are awarded. You will receive only P (Passed) of F (Failed) and number of credits)
- GA ... Graded Assessment (a grade is awarded for this course)
- EX ... Examination (a grade is awarded for this course)
- A, EX ... Examination (the award of Assessment is a precondition for taking the Examination in the given subject, a grade is awarded for this course)
Weekly load (hours per week):
- P ... lecture
- C ... seminar
- L ... laboratory
- R ... proseminar
- S ... seminar