Course Unit Code | 460-2072/01 |
---|
Number of ECTS Credits Allocated | 4 ECTS credits |
---|
Type of Course Unit * | Optional |
---|
Level of Course Unit * | First Cycle |
---|
Year of Study * | Third Year |
---|
Semester when the Course Unit is delivered | Winter Semester |
---|
Mode of Delivery | Face-to-face |
---|
Language of Instruction | Czech |
---|
Prerequisites and Co-Requisites | |
---|
| Prerequisities | Course Unit Code | Course Unit Title |
---|
| 460-2068 | C++ Programming I |
Name of Lecturer(s) | Personal ID | Name |
---|
| GAJ03 | doc. Ing. Petr Gajdoš, Ph.D. |
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. |
Learning Outcomes of the Course Unit |
---|
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++. |
Course Contents |
---|
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) |
Recommended or Required Reading |
---|
Required Reading: |
---|
[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.
|
[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 Reading: |
---|
[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. |
[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. |
Planned learning activities and teaching methods |
---|
Lectures, Tutorials |
Assesment methods and criteria |
---|
Task Title | Task Type | Maximum Number of Points (Act. for Subtasks) | Minimum Number of Points for Task Passing |
---|
Graded credit | Graded credit | 100 | 51 |