The C++ Programming Language

IT-BC-3BIT2ndCompulsory-Elective - group T
Public info:http://www.fit.vutbr.cz/study/courses/ICP/public/
Type of
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Guarantee:Peringer Petr, Dr. Ing., DITS
Instructor:Martinek David, Ing., DIFS
Peringer Petr, Dr. Ing., DITS
Faculty:Faculty of Information Technology BUT
Department:Department of Intelligent Systems FIT BUT
The C Programming Language (IJC), DITS
Learning objectives:
  The goal is to introduce students to object-oriented programming in C++ language and to generic programming using templates.
  ISO C++ language overview. Objects, classes, inheritance, polymorphism. Operator and function overloading. Templates. Exceptions. Standard library, STL.
Learning outcomes and competences:
  Students are able to exploit C++ for creating middle-sized applications based on the object-oriented approach and generic programming concepts.
Syllabus of lectures:
  1. Introduction. Basic overview of ISO C++. Examples of C++ use.
  2. The differences of C and C++. Declarations, definitions, namespaces. Types.
  3. Statements and operators of C++. The terminology and principles of object-oriented programming in C++.
  4. Objects, classes, class members. Member access control. Member functions, this keyword, static members.
  5. Object creation and destruction: constructors, destructors, operators new and delete.
  6. Function and operator overloading. Type conversion operators.
  7. Input/output (iostream). Output formating, file streams and string streams.
  8. Inheritance, base and derived classes. Multiple inheritance, virtual base classes.
  9. Polymorphism, virtual methods, abstract classes. Runtime type information.
  10. Templates, (partial) specialization.
  11. Standard template library, algorithms, iterators, containers, function objects.
  12. Exceptions, exception specifications.
  13. Standard library overview. Pointers to class members. Effective C++ programming.
Syllabus - others, projects and individual work of students:
  • project
Fundamental literature:
  • Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997
  • Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000
  • Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000
  • Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994
  • ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988
  • British Standards Institute: The C++ Standard: Incorporating Technical Corrigendum No. 1, Willey, 2003, ISBN: 978-0-470-84674-2
  • ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996
Study literature:
  • Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000 [available online on WWW]
  • ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996 [available online on WWW]
  • Teaching materials available on WWW.
Exam prerequisites:
  At least 50% of the points you can get during the semester