Please note! Course description is confirmed for two academic years, 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.

LEARNING OUTCOMES

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: 14.09.2021 - 17.12.2021

Teacher in charge (valid for whole curriculum period):

Teacher in charge (applies in this implementation): Yusein Ali

Contact information for the course (applies in this implementation):

There will be no on-site or face-to-face activities on course, but communication happens mainly using Teams chat and video sessions.  For general questions about the course use General Channel, and for exercise-related questions use Exercise Channel.

The course personnel can also be reached by email at elec-a7151@aalto.fi. Do not use emails for questions on course practicalities, but prefer the course Teams.

We will also use MyCourses for general course Announcements.

The course language is English, but the course assistants also speak Finnish. Please use English in all your email correspondences, but you can use Finnish in Teams at the cost of delayed replies.


CEFR level (valid for whole curriculum period):

Language of instruction and studies (applies in this implementation):

Teaching language: English. Languages of study attainment: English

CONTENT, ASSESSMENT AND WORKLOAD

Content
  • valid for whole curriculum period:

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

  • applies in this implementation

    Course material is online in the A+ system and the course is mainly conducted as self-study. In addition to smaller programming exercises, there is a programming project that is done in a group. Assistance is available in exercise sessions on the Exercise Channel of the course Teams.

    • The course is divided into 5 modules consisting of material and exercises with weekly deadlines in addition to 2 modules that provide useful information about the required tools.
    1. Module 0 Development Tools: installation instructions and set up the local development environment. Not graded.
    2. Module 1 Basics: A broad overview of the main C++ features
    3. Module 2 Containers: Introduction to different kinds of containers for storing and handling data
    4. Module 3 Classes and Object-oriented Programming: A more detailed look into C++ classes and object-oriented programming mechanisms
    5. Module 4 Organization and Utility Constructs:  I/O, Templates, Smart pointers
    6. Module 5 Advanced Topics: Lambda expressions and Exceptions
    7. Module 6 Project Tools: an overview of possible tools you can use with the course projects. Not graded.

    • The course will also have a C++ programming project that will be done in a group.



Assessment Methods and Criteria
  • valid for whole curriculum period:

    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 weighted 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 a group. Group will share the project grading, but individual adjustments may be done based on individual contribution within the 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 an acceptable level. When computing the grade, a normalized subgrade between 0 and 5.5 will be calculated from each of the above three categories. The final grade will be a weighted average of the three subgrades, rounded to the nearest integer. The exact equation for calculating the grade is

    \( 0.45 \times (5 \times \frac{\text{ExercisePoints} - 250}{250} + 0.5) + 0.45 \times \text{ProjectGrade} + 0.1 \times \text{ReviewGrade} \)

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


Workload
  • valid for whole curriculum period:

    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

    1. There will be two joint information sessions of about an hour.
    2. Each exercise round is estimated to require about 10 hours of work.
    3. Programming project and peer evaluations are estimated to take about 60 hours of work from each project group member.


DETAILS

Study Material
  • valid for whole curriculum period:

    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
Prerequisites
SDG: Sustainable Development Goals

    8 Decent Work and Economic Growth

FURTHER INFORMATION

Further Information
  • valid for whole curriculum period:

    Teaching Period:

    2020-2021 Autumn I-II

    2021-2022 Autumn I-II

    Course Homepage: https://mycourses.aalto.fi/course/search.php?search=ELEC-A7151

    Registration for Courses: In the academic year 2021-2022, registration for courses will take place on Sisu (sisu.aalto.fi) instead of WebOodi.

    WebOodi

Details on the schedule
  • applies in this implementation

    Modules and deadlines:

    1. Module 1 Basics: deadline: Friday, 24.9.2021
    2. Module 2 Containers: deadline: Friday, 1.10.2021
    3. Module 3 Classes and Object-Oriented Programming: deadline: Friday, 8.10.2021
    4. Module 4 Organization and Utility Constructs: deadline: Friday, 15.10.2021
    5. Module 5 Advanced Topics: deadline: Friday, 22.10.2021

    Projects start in October and conclude mid-December.