C and C++ Programming Languages
FSI-VCPAcad. year: 2017/2018
The C language is one of the most frequently used programming languages. It is a structured, modular, compiled, general-purpose language.
In the second part the course introduces the methods of object oriented programming (OOP) using the C++ programming language. C++ offers one of the best implementations of OOP from all existing programming languages. C++ is a commonly used programming language applicable to developing large programs solving various types of problems. It is one of the most favourite languages preferred by professional programmers.
Learning outcomes of the course unit
Students will obtain the basic skills and experiences of program writing and debugging of average stage of difficulty. Students gain insight into principles and methods of object-oriented programming using C++ language.
The basic knowledge of algorithmisation principles and experience with a procedural programming language (e.g. Pascal) are expected.
Recommended optional programme components
Recommended or required reading
Capper, D.M.: Introducing C++ for Scientists, Engineers and Mathematicians, 2001
Kernighan, B. W. - Ritchie, D. M.: The C Programming Language
Stroustrup, B.: The C++ Programming Language
Dumek, V. - Roupec, J.: Programování v jazyku C
Racek, S.: Objektově orientované programování v C++
Planned learning activities and teaching methods
The course is taught through lectures explaining the basic principles and theory of the discipline. Exercises are focused on practical topics presented in lectures.
Assesment methods and criteria linked to learning outcomes
The course-unit credit award requirements are both active participation in seminars and individual elaboration of two software projects (the first project in the C language and the second one in the C++ language). Students select their projects assignments, which are approved by the teacher. The examination is oral and consists of discussion on the created projects with possible complementary questions. The evaluation is fully in competence of a tutor according to the valid directives of BUT.
Language of instruction
Students will be able to prepare a programms of an average level of difficulty in the C and C++ languages. Students gain insight into principles and methods of object-oriented programming using C++ language.
Specification of controlled education, way of implementation and compensation for absences
The attendance at lectures is recommended; the attendance at seminars is obligatory. Education runs according to week schedules. The form of compensation for missed seminars is fully in the competence of the tutor.
Type of course unit
26 hours, optionally
Teacher / Lecturer
1. Introduction, C-Language History, Basic Data Types. Expressions and Commands.
2. Declaration and Definition. Control Structures, Functions, Programm Structure.
3. Arrays and Pointers, Pointer Aritmetic, Structures, Unions, Type Definition.
4. Preprocessor. Files and Streams.
5. C++ Language History. Differences between C and C++ languages.
6. OOP, object data types, member functions.
7. Class member access control. Constructors and destructors.
8. Static members. Inheritance, base and derived classes.
9. Polymorphism, virtual functions, abstract classes. Operator overloading.
10. C++ data streams. Containers.
10. Exceptions handling. Templates.
12. Persistent classes. Serialization.
13. Design and development of large projects using C++.
seminars in computer labs
26 hours, compulsory
Teacher / Lecturer
1. Introduction to Borland and Microsoft developments tools.
2. Console applications developed in MS Visual C++ environment.
3.-5. Development of C-programs using arrays, pointers and dynamic data structures.
6. Development of simple C++ applications.
7. Using constructors and destructors.
8. Object implementation of genetic algorithm.
9. Events driven programming.
10. Basic principles of Windows applications.
11. Introduction to MFC. Database application using MFC.
12. Writing of dynamic-linked libraries.
13. Discussion on individual projects.