3 ECTS credits
90 h study time

Offer 1 with catalog number 1021658BNR for all students in the 2nd semester at a (B) Bachelor - advanced level.

Semester
2nd semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
English
Faculty
Faculty of Engineering
Department
Electronics and Informatics
Educational team
Adrian Munteanu (course titular)
Activities and contact hours
10 contact hours Lecture
10 contact hours Seminar, Exercises or Practicals
45 contact hours Independent or External Form of Study
Course Content

This course is designed as a fast-paced introduction to C++ programming language being intended for students with a good degree of hardware awareness and moderate previous programming experience (e.g. Java and Matlab). C++ is a general purpose programming language that supports generic computer programming models. By practical training on Microsoft Visual Studio, which is the common integrated development environment (IDE) popular on Windows operating systems, students are exposed to practical programming problems and their solutions. The students will be given examples written in ANSI/ISO standard C++, and gain transferable knowledge for other programming domains (e.g. programming with third-party libraries).

Content

This course introduces C++ programming and teaches a number of concepts in computer science, of variables, pointers & streams, control structures, vectors, functions, classes, objects and some good coding practices including debugging techniques and avoiding common programming errors.

Essentially, this is a short “hands-on” course, during which the students will attend ten hours of intensive lectures (HOC: 10h), ten hours of practical sessions (WPO: 10h) and will prepare an elaborated individual C++ project (ZELF: 70h).

The outline of this course is given next:

  1. C++ Language Fundamentals
    1. What is C++?
    2. C++ and object oriented programming
    3. Hello world!
    4. Working with variables, constants, enumerated constants
    5. Creating expressions and statements
    6. Conditional commands
    7. Organizing into functions
    8. Loops
  2. Working with advanced functions
  3. Understanding pointers
  4. Function templates
  5. Standard template library (STL)
    1. Containers and error handling
    2. Algorithms
    3. Lambda functions
  6. Classes
    1. Constructors
    2. Copy assignment
    3. Destructor
    4. Static variables and members
  7. Inheritance
    1. Overriding
    2. Polymorphism
    3. Virtual functions
    4. Virtual destructor
    5. Inheritance specifiers
    6. Const functions
  8. Interface and abstract classes
  9. Smart pointers
  10. Creating and connect a dynamic link library to a Qt project
  11. Efficient C++ programming
    1. Header guards
    2. Invoking third-party libraries (e.g. Boost)
    3. Reading and writing files
    4. Parsing strings
    5. Converting data types
    6. Working with paths
    7. Serialization and deserialization
    8. Regular expression
  12. Qt GUI
    1. Meta-object compiler
    2. Signal and slots
  13. Thread programming
    1. Data race
    2. Mutex, atomic, condition variables
Additional info

Under construction..

Learning Outcomes

General Competences

Under construction

Grading

The final grade is composed based on the following categories:
Other Exam determines 100% of the final mark.

Within the Other Exam category, the following assignments need to be completed:

  • Exam with a relative weight of 1 which comprises 100% of the final mark.

    Note: The student will have to present the project goals, employed tools, detail implementation aspects, highlight original contributions and be able to answer detailed questions about the code.

Additional info regarding evaluation

Evaluation:

The 3 ECTS are obtained on the C++ project. The project contains a number of tasks with progressive difficulty. The student will have to present the project goals, employed tools, detail implementation aspects, highlight original contributions and be able to answer detailed questions about the code.

Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This offer is part of the following study plans:
Bachelor of Engineering: Electronics and Information Technology (only offered in Dutch)
Bachelor of Engineering: Biomedical Engineering (only offered in Dutch)
Preparatory Programme Master of Science in Biomedical Engineering: International Students