Objectives and competences
The objective of this course is to understand the fundamentals of object-oriented programming and to teach them how to design, implement, debug, test, and document programs.
Content (Syllabus outline)
• Introduction to object-oriented programming: shortcomings of structured programming, advantages of object-oriented programming.
• Classes and objects: class and class members, object creation, special member functions, resource management, constant objects, static class members, information hiding.
• Pointers: pointer to objects, this pointer, dynamic data structures.
• Overloading: method overloading, operator overloading, operators as friend functions.
• Inheritance: super classes, derived classes, protected members, virtual functions, abstract classes, dynamic binding, multiple inheritance.
• Introduction to object-oriented analysis and design: analysis, design, UML fundamentals.
• Templates: function templates, class templates, Standard Template Library (STL).
• Exceptions: throwing exceptions, exception handling.
• Data streams: input streams, output streams, files, I/O streams for user defined types.
• New language features of C++11 and C++14
Learning and teaching methods
• lectures,
• tutorials,
• lab work.
Intended learning outcomes - knowledge and understanding
• understand objectoriented programming techniques,
• design, implement, debug, and document simple programs,
• use Standard Template Library,
• define templates and exceptions,
• understand how objects are implemented in C++ language,
• define classes and subclasses, create objects and define polymorphic methods,
• understand differences between structured and objectoriented programming
Intended learning outcomes - transferable/key skills and other attributes
Communication skills: oral lab work defence, manner of expression at written examination.
Use of information technology: use of different tools for program design, implementation, debugging and testing.
Problem solving: design and implementation of programs.
Readings
• B. Stroustrup: A Tour of C++, Second Edition, Pearson Addison-Wesley, Boston, 2018.
Additional information on implementation and assessment The exam may be replaced by written midterm examinations in the weight of 50%.