Lecturer(s)
|
-
Předota Milan, doc. RNDr. Ph.D.
-
Futera Zdeněk, RNDr. Ph.D.
|
Course content
|
Content of lectures: The lectures are divided into the following topics: 1. C vs C++, basis IO operations, references and dynamical memory management 2. Advanced text processing, formatting, class string 3. Overloading of functions, reference and implicit parameters 4. Encapsulation, class declaration, constructors and destructor 5. Polymorphism, operator overloading, friend functions 6. Inheritance, access control to class items, virtual methods 7. Namespaces, modularity and libraries 8. Dealing with unexpected events, exceptions 9. Streams and files 10. Function and class templates 11. Containers and iterators 12. Associative arrays, sets, maps and algorithms 13. Beyond C++, higher programming languages, GUI Content of tutorials/seminar: Tutorials take place in computer rooms, they are focused on practical implementation of the introduced concepts and they tightly follow the lectures thematically. On the contrary to theoretically focused lectures, emphasis on learning syntax of the C++ programing language is given on the tutorials as well as ability to implement OOP into effective and meaningful way into functional programs. Active participation of students is expected during the tutorials in addition to individual work on home works and seminar work.
|
Learning activities and teaching methods
|
Monologic (reading, lecture, briefing), Demonstration
- Class attendance
- 52 hours per semester
- Preparation for exam
- 16 hours per semester
- Semestral paper
- 32 hours per semester
- Preparation for classes
- 20 hours per semester
|
Learning outcomes
|
The course is focused on object-oriented principles in programming as they were introduced in C++ language as an extension of the C programming language. First, significant extensions of C are explained dealing with text processing or overloading of functions. Then, principles of object-oriented programming (OOP) such as encapsulation, inheritance and polymorphism, are introduced and demonstrated on particular syntax of C++. Later in the course, standard template library (STL) and other so-called higher languages are introduced. At last, utilizing of external libraries including those dealing with graphical user interface (GUI) is explained.
Basic principles of object-oriented programming (OOP) are introduced to students in the course. Absolvents should understand what is encapsulation, inheritance, and polymorphism. These approaches are in the course demonstrated and trained within the frame of programming language C++, which should be mastered, at least in its basic form, by all absolvents of the course.
|
Prerequisites
|
Knowledge of Programming I (UFY PRG1).
|
Assessment methods and criteria
|
Combined exam, Seminar work
Submission of given home works during the semester, creation of a semestral work and obtaining at least 35 points out of 50 possible for the evaluation of these works. At the exam, the student must create a functional program that fulfils the assigned task and correctly answer at least 70% of questions related to theory.
|
Recommended literature
|
-
Studentům jsou k dispozici prezentace z přednášek a ukázkové zdrojové kódy ze cvičeních. Dále je ke studiu doporučena následující literatura:.
-
[1] B. Stroustrup: The C++ Programming Language, 4th Edition, 2009.
-
[2] S. Prata: Mistrovství v C++, 4. vydání, 2016.
-
[3] M. Virius: Od C k C++ Kopp, 2000.
-
[4] Jiří Prokop, Algoritmy v jazyku C a C++, 2016.
-
[5] B. Eckel: Thinking in C++ (2nd Edition), 2000.
-
[6] B. Stroustrup: Programming : Principles and Practice Using C++ (1st edition) 2009.
|