Course: Programming II

« Back
Course title Programming II
Course code UFY/PRG2
Organizational form of instruction Lecture + Lesson
Level of course Bachelor
Year of study not specified
Frequency of the course In each academic year, in the summer semester.
Semester Summer
Number of ECTS credits 6
Language of instruction Czech
Status of course Compulsory, Compulsory-optional
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
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.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester