Skip to main content

C++ Programming (5 ECTS)

Code: TI00AA50-3012

General information


Timing
25.10.2021 - 31.12.2021
Implementation has ended.
Number of ECTS credits allocated
5 ECTS
Mode of delivery
On-campus
Unit
(2019-2024) School of ICT
Campus
Karaportti 2
Teaching languages
English
Teachers
Jarkko Vuori
Teacher in charge
Jarkko Vuori
Course
TI00AA50
No reservations found for implementation TI00AA50-3012!

Objective

The course provides an introduction to the use of object oriented programming in practical software development using the C++ language. After completing the course the student understands the principles and the goals of object oriented programming (OOP) in different areas of information systems development. The student understands the properties and uses of different relations between objects and classes. The student also understands the importance of effective memory usage and can use the techniques to achieve that goal even in the connection of exceptions.
-----
After completing the course the student can apply the knowledge of the matters mentioned above in practice in the software design and implementation in C++. The student can choose suitable, effective reliable, clear and reusable solutions. In addition to that the student understands the syntax and semantics so well that he/she can express things in a clear way in C++ based on his/her own thoughts (not mainly on the basis of the error messages from the compiler). After completing the course the student is capable to learn to use different kind of class libraries and application frameworks (for example Symbian application framework).

Content

Differences between C and C++
Object oriented paradigm and C++
Classes and objects
Basic C++ standard classes
Constructors and destructors
Function overloading and operator overloading
Inheritance
Generic programming and Polymorphism
Virtual methods
Function templates and class templates
STL-containers, iterators and algorithms
Exceptions
-----
Interaction and co-operation of objects
Principles of application frameworks
Useful design patterns
Observer design pattern
Bridge design pattern

Assessment criteria, satisfactory (1)

-The student understands the difference between a class and an object. The student can use simple ready-made (build-in or package) classes in programming tasks.
-The student understands why classes are needed and used (the importance of separating implementation and interface).
-The student can himself/herself compose simple classes and use them.
-The student has an understanding about the fact that the goal in the design and implementation of the class is to make it reusable and generic.
-The student understands how a class template vector works and he/she can use it correctly instead of C-array.

Assessment criteria, good (3)

-The student understands the advantages and disadvantages of using dynamic memory with objects.
-The student understands and can take into account in the design of the class the challenges caused by the dynamic members in the class (need for destructor, need for copy constructor, need for assignment operator etc.).
-The student can choose the suitable class relation according to the situation (inheritance, association, composition) when using the existing class in the implementation of a new class.
-The student can also implement a new class with all different class relations.
-The student understands the differences in the implementations of STL container classes so that he/she is capable to choose a suitable container according to the requirements of the application.

Assessment criteria, excellent (5)

-The student has an in-depth understanding of function and class templates and how they work at the compiler level.
-The student observes possible memory leaks in the design and implementation applications and classes and can prevent them in all circumstances (also in exceptions).
-The student can use pointers in a confident way and not by trying different ways (declaration of the pointer, dereferencing, taking the address).
-The student can choose options and make decisions that improve and promote reusability and generic nature of the program code.

Qualifications

Programming
Algorithms

Go back to top of page