460-2072/02 – C++ Programming II (C++ II)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantordoc. Ing. Petr Gajdoš, Ph.D.Subject version guarantordoc. Ing. Petr Gajdoš, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year3Semesterwinter
Study languageEnglish
Year of introduction2019/2020Year of cancellation
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
GAJ03 doc. Ing. Petr Gajdoš, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Graded credit 1+3

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

Subject codeAbbreviationTitleRequirement
460-2068 C++ I C++ Programming I Compulsory

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

Full-time form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Graded credit Graded credit 100  51
Mandatory attendence parzicipation: Every student has to obtain at least the minimum number of points for each task.

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2020/2021 (B0613A140010) Computer Science P English Ostrava 3 Optional study plan
2020/2021 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan
2019/2020 (B0613A140010) Computer Science P English Ostrava 3 Optional study plan
2019/2020 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner