460-2072/02 – C++ Programming II (C++ II)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | doc. Ing. Petr Gajdoš, Ph.D. | Subject version guarantor | doc. Ing. Petr Gajdoš, Ph.D. |
Study level | undergraduate or graduate | Requirement | Optional |
Year | 3 | Semester | winter |
| | Study language | English |
Year of introduction | 2019/2020 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Bachelor |
Subject aims expressed by acquired skills and competences
The aim of the subject is to familiarize students with C++ language in their latest form. It follows the subject of Programming in C++ I, trying to expand it with new knowledge and focus on the practical part, i.e. the solution of specific problems using C++.
Knowledge and skills:
- C++ from the standard C++11 above
- use of language constructs to solve specific tasks
- knowledge of the construction of complex data types
- creating an application with respect to the target platform
- code optimization
- effectiveness of memory usage
- linking with third-party tools or APIs
After passing the course, the student should be able to design and implement a solution of given problems with the knowledge of object-oriented programming using the latest features of C++.
Teaching methods
Lectures
Tutorials
Summary
Students will deepen their knowledge of object-oriented programming to use C++, which belongs to the most used languages. The course follows the course "Programming in C++ I" and requires that the students have already successfully passed this course. Unlike the previous subject, this focuses more on programming of specific tasks and/or case studies.
Compulsory literature:
[1] Stroustrup, Bjarne. The C++ programming language. Upper Saddle River, NJ: Addison-Wesley, 2013. Print.
[2] Bancila, Marius. Modern C++ programming cookbook : over 100 recipes to help you overcome your difficulties with C++ programming and gain deeper understanding of the working of modern C. Birmingham, UK: Packt Publishing, 2017. Print.
Recommended literature:
[1] Galowicz, Jacek. C++17 STL Cookbook. Birmingham: Packt Publishing, 2017. Print.
[2] Savitch, Walter J., and Kenrick Mock. Problem solving with C++. 9th Edition, Boston: Pearson, 2015. Print.
Way of continuous check of knowledge in the course of semester
Continuous monitoring of study activities and assigned tasks during regular lessons.
The subject 460-2068/02 Programming in C++ I is required as a prerequisite for subject 460-2072/02 Programmin in C++ II.
E-learning
Other requirements
It is expected that students will actively solve the assigned tasks in programming lessons. Some tasks may require careful home preparation.
Prerequisities
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Lectures will serve as an entry point for exercises. They set themselves the objective of introducing students into the problematics and outlining the subsequent work on the exercises.
Lectures will include at least the following topics:
- template functions and data types
- tricks to optimize your program
- working with threads
- lambda expressions
- binary masks, enumerators
- metaprogramming, type predicates, traits
- case study: constructing a custom class for working with dynamic memory, move constructs and related operators, defining own iterators, range iterator
- case study: varyadic functions
- case study: linking C++ with other tools (MATLAB, R, nodeJS)
- case study: selected programming examples (ACM-ICPC)
Practical exercises on computer labs will correspond to lecture notes:
1. Creating template methods and classes
2. Possible optimizations of program run
3. Threads and their usage
4. Lambda expressions
5. Binary masks, enumerators
6. Metaprogramming, type predicates, traits
7-8. Case Study: dynamic memory allocation, move structure and related operators, definition of its own iterators, range iterator
9.-10. Case Study: Varyadic functions
11-12. Case Study: Linking C++ with other tools (MATLAB, R, nodeJS)
13-14. Case Study: Selected programming examples (ACM-ICPC)
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction
Předmět neobsahuje žádné hodnocení.