460-2068/02 – C++ Programming I (C++ I)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantordoc. Ing. Petr Gajdoš, Ph.D.Subject version guarantordoc. Ing. Petr Gajdoš, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year2Semestersummer
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 such that they can understand the basic constructions of the language and the runtime environment. The students will be able to create complex desktop applications in this language. Knowledge and skills: - C++ from the standard c++11 above - OOP principles projected into the C++ language - Basic knowledge of "Standard Library (STL)" and useful classes - Understanding complex constructs - Knowledge of the selected development environment - Console application creation - Designing custom classes with required functionality After completing the course, the student should be able to design and implement a problem-solving application with the knowledge of object-oriented programming using the latest features of C++ language.

Teaching methods

Lectures
Tutorials

Summary

Students will deepen the knowledge of object-oriented programming with respect to the use of C++ language, which belongs to the most used languages. The course builds on the "Introduction to Programming" and "Object-Oriented Programming" courses and requires that the students have already successfully passed these courses.

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-2052 UPR Introduction to Programming Compulsory
460-2055 OOP Object Oriented Programming 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: - type system, from basic data types to object type, conversion type - working with pointers and references, the basic principle of "smart pointers" - operators and their overloading - program flow controling - principles of Object Oriented Programming projected into the C++ language - standard library -- exception system -- iterators and their types -- working with files -- console application creation -- more selected STL classes Practical exercises on computer labs will correspond to lecture notes: 1. Basic data types, struct, union 2. Memory allocations, pointers, references, smart pointers 3. Program flow controlling 4. Operators, their overloading, bit operators and their usage 5. Principles of OOP projected into C ++ 6. Familiarize with the standard library and the concept of their classes 7. Exceptions and their usage 8. Construction of different types of iterators and their usage 9. Working with text and binary files 10.-12. Case Study: Creation of a more complex console application - data processing 13. Other selected classes from STL 14. Verification of knowledge

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 2 Optional study plan
2020/2021 (B0541A170009) Computational and Applied Mathematics P English Ostrava 2 Optional study plan
2019/2020 (B0613A140010) Computer Science P English Ostrava 2 Optional study plan
2019/2020 (B0541A170009) Computational and Applied Mathematics P English Ostrava 2 Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner