C and C++ Programming Languages (FSI-VCP-A)

Academic year 2020/2021
Supervisor: prof. RNDr. Ing. Jiří Šťastný, CSc.  
Supervising institute: ÚAI all courses guaranted by this institute
Teaching language: English
Aims of the course unit:
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.
Learning outcomes and competences:
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.

Prerequisites:
The basic knowledge of algorithmisation principles and experience with a procedural programming language (e.g. Pascal) are expected.
Course contents:
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.
Teaching methods and criteria:
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.
Controlled participation in lessons:
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:
    Lecture  13 × 2 hrs. optionally                  
    Computer-assisted exercise  13 × 2 hrs. compulsory                  
Course curriculum:
    Lecture 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++.
    Computer-assisted exercise 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.
Literature - fundamental:
1. Kernighan, B. W. - Ritchie, D. M.: The C Programming Language
2. Stroustrup, B.: The C++ Programming Language
Literature - recommended:
1. Dumek, V. - Roupec, J.: Programování v jazyku C
2. Racek, S.: Objektově orientované programování v C++
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester