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.

Learning outcomes of the course unit

The student is able:
- 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

Attend BPC-UDP course and pass BPC-ALD course or similar.

Co-requisites

Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

Horstmann C. S.: Vyšší škola objektového návrhu v C++, John Wiley & Sons, NY, 1995 (CS)
HEROUT, Pavel,. ABC programátora v C a C++. Praha: KOPP, 1998. 283 s. ISBN 80-901051-2-2. (CS)
VIRIUS, Miroslav. Jazyky C a C++. 2. , aktualizované vydání. Praha: Grada Publishing, 2011. 368 s. ISBN 9788024739175. (CS)
Virius, M.: Jazyky C a C++, Grada Publishing 2006, ISBN 80-247-1494-9 (CS)
VIRIUS, Miroslav. Programování v C++ od základů k profesionálnímu použití, Grada publishing, 2018, ISBN: 978-80-271-0502-1 (CS)
STROUSTRUP, Bjarne.The C++ Programming Language. Addison-Wesley,2013. 1368 s. ISBN-13: 978-0321563842. (EN)
Alexandrescu, A.: Moderni programovani v C++, Computer press 2004, ISBN 80-251-0370-6 (CS)
Prata, S.: C++ Primer Plus, Indianapolis, SAMS, 2005, ISBN 0-672-32697-3 (EN)
Eckel, B.: Thinking in C++, 2000, ISBN 978-0139798092 (EN)

Planned learning activities and teaching methods

Teaching methods include lectures and computer laboratories. Course is taking advantage of www pages coupled with e-learning (Moodle) system. Students have to write a single project during the course.

Assesment methods and criteria linked to learning outcomes

Project - program with classes - cca 40pts.
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.

Language of instruction

Czech

Work placements

Not applicable.

Course curriculum

1. Introduction. C overview - data types, programming techniques, algorithms.
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.

Aims

To learn C++ like non object and object C extension. To acquire object programming knowledges.

Specification of controlled education, way of implementation and compensation for absences

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year

Classification of course in study plans

  • Programme BPC-AMT Bachelor's, 3. year of study, winter semester, 6 credits, compulsory
  • Programme BPC-EKT Bachelor's, 3. year of study, winter semester, 6 credits, compulsory-optional

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer

Project

13 hours, optionally

Teacher / Lecturer

eLearning