FI:PB161 C++ Programming - Course Information
PB161 C++ ProgrammingFaculty of Informatics
The information about the term Accreditation spring is not made public
- Extent and Intensity
- 2/2/0. 3 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: z (credit).
- RNDr. Nikola Beneš, Ph.D. (lecturer)
- RNDr. Nikola Beneš, Ph.D.
Department of Computer Systems and Communications - Faculty of Informatics
Supplier department: Department of Computer Systems and Communications - Faculty of Informatics
- PB071 Principles of low-level prog.
Students are also required to have user experience with Unix OS or similar, as homework is submitted and tested on a Unix server.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- Fields of study the course is directly associated with
- there are 27 fields of study the course is directly associated with, display
- Course objectives
- The goals of the course are to make the students familiar with the C++ programming language (as defined by ISO C++14) and the object-oriented programming principles (as implemented by C++). The course focuses mainly on using the standard library, efficient design of own data structures (classes), the principles of resource management, and the basic principles of object-oriented design.
- Learning outcomes
- After finishing this course, a student should be able to:
- write C++ programs utilizing the tools of modern C++ (as defined by ISO C++14);
- use a significant part of the standard C++ library;
- create user-defined data types (classes) in C++;
- understand the value semantics of C++ and explain the difference between this semantics and other popular languages' semantics;
- understand the principles of object-oriented programming;
- design simple object-oriented architectures and implement them;
- use exceptions in an efficient and reasonable way;
- use modern development tools (IDE, debugger, version control, build automation tools, testing frameworks...);
- follow best practices guidelines for C++ programming.
- Basic features of C++ (with respect to C). Standards, compilers.
- Value and reference semantics of C++.
- Basic principles of object oriented programming (OOP). Object programming methodologies.
- User defined data types. Classes in C++. Class components.
- OOP in C++. Encapsulation, Inheritance, Polymorphism.
- Dynamic memory allocation. Dynamic memory management. Automatic and class pointers.
- Input and output in C++.
- Exception handling. Defensive programming.
- Templates. Standard C++ library and standard template library. Libraries for numeric computing.
- Application of object oriented design and design patterns in C++.
- Other OOP languages. Java and C# as compared to C++.
- STROUSTRUP, Bjarne. The C++ programming language. 3rd ed. Reading: Addison-Wesley, 1997. x, 910 s. ISBN 0-201-88954-4. info
- VIRIUS, Miroslav. Programování v C++. 1. vyd. Praha: ČVUT, 1998. 364 s. ISBN 8001018741. info
- VIRIUS, Miroslav. Pasti a propasti jazyka C++ : podrobný průvodce pokročilého uživatele. 1. vyd. Praha: Grada, 1997. 251 s. ISBN 8071696072. info
- VIRIUS, Miroslav. Od C k C++. 1. vyd. České Budějovice: KOPP, 2000. 227 s. ISBN 80-7232-110-2. info
- LOUIS, Dirk, Petr MEJZLÍK and Miroslav VIRIUS. Jazyky C a C++ podle normy ANSI/ISO: kompletní kapesní průvodce. 1. vyd. Praha: Grada Publishing, 1999. 644 s. ISBN 80-7169-631-5. info
- MEYERS, Scott. Effective C++ :50 specific ways to improve your programs and designs. 2nd ed. Reading: Addison-Wesley, 1998. xx, 256 s. ISBN 0-201-92488-9. info
- Teaching methods
- Teaching consists from theoretical lectures combined with the practical exercises and programming homework selected to practice topics from lectures.
- Assessment methods
- Homework assignments during the semester, one mid-semester written test, final programming exercise. The recommended completion is the exam in the form of a written test.
- Language of instruction
- Follow-Up Courses
- Further comments (probably available only in Czech)
- The course is taught annually.
The course is taught: every week.
- Listed among pre-requisites of other courses
- IB111 Foundations of Programming
(!PB162 && !PB161 && !PB071 && !IB001 && !IB113 && !NOW(IB113) )
- IB113 Introduction to Programming and Algorithms
!NOW(IB111) && !IB111 && !PB162 && !PB161 && !PB071 && !IB001
- PV178 Introduction to Development in C#/.NET
PB161 || PB162
- PV239 Mobile Application Development
(PB161 || PB162) && SOUHLAS
- PV255 Digital Games I
PB009 && PV112 && (PB161 || PB162)
- PV264 Advanced Programming in C++
PB161 && ( (!PB173) || SOUHLAS )
- IB111 Foundations of Programming
- Teacher's information