Please note! Course description is confirmed for two academic years (1.8.2018-31.7.2020), which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.


The student knows the principles and concepts of the object oriented programming in C++ programming language. The student can produce programs in C++ language.

Credits: 5

Schedule: 08.09.2020 - 11.12.2020

Teacher in charge (valid 01.08.2020-31.07.2022): Pasi Sarolahti, Patric Östergård

Teacher in charge (applies in this implementation): Pasi Sarolahti, Patric Östergård

Contact information for the course (valid 26.08.2020-21.12.2112):

There will be no on-site or face-to-face activities on course, but communication happens mainly using Teams chat and video sessions. The course personnel can also be reached by email at

We will also use MyCourses for general course announcements.

Course language is English, but course personnel can also speak Finnish.

CEFR level (applies in this implementation):

Language of instruction and studies (valid 01.08.2020-31.07.2022):

Teaching language: English

Languages of study attainment: English


  • Valid 01.08.2020-31.07.2022:

    Basic concepts of C++. Object oriented programming and generic programming in C++. C++ standard library. Tools for robust programming.

  • Applies in this implementation:

    Course is divided into 5 modules consisting of material and exercises with weekly deadlines. The course will also have a C++ programming project that will be done in a group.

Assessment Methods and Criteria
  • Valid 01.08.2020-31.07.2022:

    Course material is online and course is mainly conducted as self study. In addition to smaller programming exercises, there is a programming project that is done in group. Assistance is available in exercise sessions in computer class.

    Assessment is based on the programming exercises and programming project.

  • Applies in this implementation:

    The course grade will be a weighed average from the following:

    • Exercises (45%): max. 500 points out of the five modules (max. 100 points each), min. 250 points, at least three modules must have 50 points or more
    • Software project (45%): Project is done as group. Group will share the project grading, but individual adjustments may be done based on individual contribution within group.
    • Peer evaluations (10%): Group members will conduct peer evaluations of each others' work, and peer evaluation of own group's individual effort.

    All three of the above components need to be passed at acceptable level. When computing the grade, a normalised sub grade between 0 and 5.5 will be calculated from each of the above three categories. The final grade will be weighed average of the three sub grades, rounded to nearest integer. The exact equation for calculating the grade is

    \( (\frac{PointsE - 250}{250} \ast 5 + 0,5) \ast 0,45 + ProjectGrade * 0,45 + ReviewGrade * 0,1 \)

    where PointsE is exercise score, and ProjectGrade and ReviewGrade are determined as described in project instructions. The final grade is the above result rounded to nearest integer.

  • Valid 01.08.2020-31.07.2022:

    Lectures 4h

    Voluntary assisted exercises, about 8 h a week, available for participation as needed.

    Exercises (self-study): 40-60 h

    Programming project done in a group: 50 - 70 h

  • Applies in this implementation:

    There will be two joint information sessions of about an hour.

    Each exercise round is estimated to require about 10 hours of work.

    Programming project and peer evaluations is estimated to take about 60 hours of work from each project group member.


Study Material
  • Valid 01.08.2020-31.07.2022:

    Summary of relevant content will be at course home page. Additional reading is highly recommended, for example:
    Lippman, Lajoie, Moo: C++ primer, 5th edition, Addison-Wesley, 2012.
    Stroustrup: The C++ programming language, 4th edition, Addison-Wesley, 2013

Substitutes for Courses
  • Valid 01.08.2020-31.07.2022:

    ELEC-A7150, AS-0.3302

  • Valid 01.08.2020-31.07.2022:


SDG: Sustainable Development Goals

    8 Decent Work and Economic Growth


Details on the schedule
  • Applies in this implementation:

    Modules and deadlines:

    1. Basics, deadline: Friday, 18.9.2020
    2. Containers, deadline: Friday, 25.9.2020
    3. Classes and objects, deadline: Friday, 2.10.2020
    4. Templates and pointers, deadline: Friday, 9.10.2020
    5. Advanced topics, deadline: Friday, 16.10.2020

    Projects start in October, and conclude mid-December.


Registration and further information