Course detail

The C++ Programming Language

FEKT-BPA-SCPAcad. year: 2022/2023

Based on the use of a simple algorithm, the students will acquire a comprehensive idea of the properties of C++ specified by the relevant ISO standard. The set of these aspects includes mainly the properties of the objects, classes, and operators, inheritance, polymorphism, overloading, templates of the functions and classes, exception handling and implementation. The students will learn to use standard STL libraries.

Language of instruction

English

Number of ECTS credits

4

Mode of study

Not applicable.

Offered to foreign students

Of all faculties

Learning outcomes of the course unit

After completing the course, the students will be able to perform the following tasks:
- analyze a problem and formulate the algorithm for the mathematical model
- design an algorithm and implement it effectively in such a manner that the resulting code for the applied operating system is very efficient and stable
- set up and apply the algorithm in a simple text environment under minumum hardware requirements
- recognize and apply attributes of the object-oriented approach
- use this approach to set up an application
- assess, design, and apply C++ tools (objects, classes, operators, inheritance, polymorphism, overloading)
- utilize the templates of the functions and classes, manage the exceptions, and use standard STL libraries

Prerequisites

Students wishing to enroll in the course should have an undestanding of the basic principles of algorithmization, and they should be able to explain the properties of and work in an event-driven operating system. The students are required to possess good knowledge and skills in the following domains: the C, PASCAL, BASIC, and FORTRAN programs, object-oriented API systems, the compilation process, compilers and development environments such as Microsoft Visual C++ or Borland C++ Builder.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

The teaching methods depend on the type of instruction and are defined within article 7 of the BUT Study and Examination Regulations. To ensure that the students gain a good command of both object-oriented programming and the methods of using the individual tools, the instruction process comprises the theoretical explanation and practical application of the discussed problem. The practical part consists in exercises based on simple algorithms.
For the above-described reason, the lecture and the tutorial are organized as consecutive units in the students‘ timetable. In the computer-based exercises conducted during the course, each student is individually guided to assess whether an element of object programming can be suitably applied in the algorithm, and he/she is encouraged to propose a method for the inclusion of the element in the source text. At the next stage, the student will independently analyze the text, searching for and correcting any mistakes; also, he/she will test the algorithm, modify it during the exercise, and acquire skills related to the variability of the applied tools available within the object-oriented, event-driven programming. At the end of each session, the students are able to not only explain each item within the source text but also discuss the pros and cons of the algorithm and complement or modify it in a creative manner.

Assesment methods and criteria linked to learning outcomes

DDuring each teaching block, the students are assessed for the following activities or aspects:
- setting up, tuning, and functionality of an algorithm including elements of the object-oriented approach related to the topic discussed in a concrete lesson (10x 0 - 4 points)
- active participation in the computer tutorials (workshops)
Ones in the teaching period (one semester), each student will submit an independently compiled example of an algorithm with applied elements and tools of the object-oriented approach to programming (0 - 60 points). The tutor/lecturer will evaluate the student’s grasp of tool usage, correct insertion of a tool in the algorithm and API elements, application potential of the proposed algorithm, and quality of the algorithm embedding in the event-driven system as the superior unit. 

In order to receive graded credit, a minimum of 50 pts. including a defended final project is required during the semester. 

Course curriculum

1. Properties of the C/C++ languages; ANSI standards; object-oriented programming; algorithms.
2. C++ keywords, classes, and data files.
3. Member functions – methods; pointer this; aggregates; areas of validity and feasibility of the identifiers.
4. Name spaces; memory classes; objects.
5. Object assignment; passing and returning objects to functions.
6. Overview, description, and use of operators.
7. Overloading of operators.
8. Inheritance; inheritance approaches; polymorphism.
9. Overloading of constructors; overloading anachronism; overloading and ambiguity
10. Templates of functions and classes; template parameters; templates of object types; exception handling.
11. STL libraries and their applications.

Work placements

Not applicable.

Aims

Using algorithmization examples, the students gain the fundamentals of generic programming with templates and are taught how to employ the basic tools of the object-oriented approach in C++.

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

Both components of instruction, namely the lecture and tutorials, are compulsory. If the absences have been duly communicated to the teacher, any missed lessons can be substituted, usually during the credit week.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994
Eckel, B.: Myslíme v jazyku C++, GRADA, 2000
ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996
ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988
Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000
Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997

Recommended reading

Not applicable.

Elearning

Classification of course in study plans

  • Programme BPA-ELE Bachelor's

    specialization BPA-ECT , 0 year of study, summer semester, elective
    specialization BPA-PSA , 0 year of study, summer semester, elective

Type of course unit

 

Exercise in computer lab

39 hod., compulsory

Teacher / Lecturer

Elearning