Course detail
Practical Programming in C++
FEKT-BPC-PPCAcad. year: 2018/2019
Basic aim of this course is learning C++ basics like C extension (C basics are learned in previous courses).
The C++ extensions are: non object C++ features, Basic object features, standard libraries. There are also learned object programming concepts and tools for C++ programming.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Learning outcomes of the course unit
- design programs with non object language extensions
- design a program using objectoriented programming
- create program with objects (acces rights, member data, methods, operators)
- read simple object oriented programs
- write object oriented C++ programm with inheritance, polymorphism (virtual methods)
- to use streams for input and output,
- to make basic template design.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Tests, written exams - cca 60pts.
The points (up to 100) and requirements for completion of a course are specified by a regulation issued by the lecturer responsible for the course and updated for every year.
Course curriculum
2. Comparing C and C++. Object programming in C++ - features and design.
3. Work with references. Object definition, methods. Work with this pointer.
4. Function and methods overloading. Implicit parameters.
5. Constructors and destructors. Variable life cycle. Visibility and reachability of the variable content.
6. Operators. Friend functions.
7. Inline functions and methods.
8. Standard inputs and outputs, stream concept, basic libraries.
9. Inheritance in object programming.
10. Multiple inheritance.
11. Virtual methods.
12. Abstract classes and their using in object oriented concept.
13. Exceptions and their principles. Templates and generic programming.
Content of seminars: practical exercises based on lecture topics.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
- compulsory prerequisite
Algorithms and Data Structure
Basic literature
VIRIUS, M.: Jazyky C a C++. 2. , aktualizované vydání. Praha: Grada Publishing, 2011. 368 s. ISBN 9788024739175. (CS)
VIRIUS, M.: Programování v C++ od základů k profesionálnímu použití, Grada publishing, 2018, ISBN: 978-80-271-0502-1 (CS)
Recommended reading
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
2. Comparing C and C++. Object programming in C++ - features and design.
3. Work with references. Object definition, methods. Work with this pointer.
4. Function and methods overloading. Implicit parameters.
5. Constructors and destructors. Variable life cycle. Visibility and reachability of the variable content.
6. Operators. Friend functions.
7. Inline functions and methods.
8. Standard inputs and outputs, stream concept, basic libraries.
9. Inheritance in object programming.
10. Multiple inheritance.
11. Virtual methods.
12. Abstract classes and their using in object oriented concept.
13. Exceptions and their principles. Templates and generic programming.
Exercise in computer lab
Teacher / Lecturer
Syllabus
2. Working with structures.
3 Complex structures with pointers and memory alocation.
4 Memory manipulation with new and delete. Using exceptions.
5 References and their usage for variable manipulation. Functions and references.
6 Tools for automatic documetation generation. Source code management tools.
7 Object oriented source code examples. Class writing and variable manipulation.
8 Data members and methods. Constructor and destructor.
9 Operators.
10 Input and output using streams. Namespaces.
11 Inheritance.
12 Virtual methods.
Practicing subjects described on lessons on thematic examples. Working on individual projects.
Project
Teacher / Lecturer
Syllabus
2. Project analysis. Problem concretization. Written version of task.
3. Basic program parts (headers, classes and their relations, interfaces, data)
4. Source code developement.
5. Project documentation.
6. Project evaluation