Students in a lecture room Copyright: © EECS

In this practical course, the students are to learn and apply the principles of object-oriented programming using the programming language C++ (incl. STL and Smart Pointer). The focus is not on teaching the language elements of C++, but on the application of the conceptual world and program design in the sense of object-oriented programming. Basic knowledge of the C++ language is assumed or may have to be acquired before / during the internship using the Jupyter notebooks and videos under "C++ Introduction", the literature or an online tutorial. The lab course script contains all required syntax elements as a quick reference for reference.

The practical course will be held in the CIP pool of the Faculty of Electrical Engineering and Information Technology (seminar building, Wüllnerstr. 5-7, 2nd floor). Eclipse will be used as programming environment.

The practical task consists of 12 sub-tasks that build on each other and cover the complete language range of C++. These are combined into 3 task blocks. For the solution of the individual task blocks 4 weeks are available in each case. The tasks should be worked on at home.

If someone finishes the respective subtask early, he can continue working on the next subtask. The assignments can be prepared and, if necessary, completed at home or during the normal opening hours of the CIP pool. Data transfer to the CIP pool is possible via e-mail or USB media.

Several staff members and Hiwis are always available at the internship appointments to advise on any questions or problems that may arise. In addition, the supervising persons can be reached via the e-mail address . In addition, the discussion forum can be used to discuss generally interesting questions.

The individual task blocks are tested after completion of the block (see evaluation). The complete solution includes a program executable in the internship environment, a sufficiently documented source code and the answering of questions concerning the learning objectives of the task block. In this semester, the learning objectives are checked by means of E-tests in Moodle and by test certificates from a supervising person.

Schedule of the course

Aufgabe Termin Beschreibung
Registration from 16.09 RWTHOnline-Anmeldung
Introductory event 41. week Explanation of the organizational process
1. simple classes

42. week, from 17.10

Introduction to the class concept of C++
Implementation of a vehicle
2. Inheritance 43. week Creation of classes by derivation from a base class
Extension of the derived classes car and bike
3. overloading operators 44. week Definition and application of operators for own classes
4. Completion Block 1:
Fundamentals of the transport system

45. week, from 7.11

Completion of the first block
latest date for 1st test via Moodle ETest
5. STL

46. week

Using the standard template library of C++
Introduction of the Way class
6. Exception Handling 47. week Handling of exceptions (errors) in C++
Graphical representation of the simulation
7. Templates 48. week Implementation of a template class to realize a list
8. Completion Block 2:
Extension of the transport system

49. week, from 5.01

Completion of the second block
latest date for Moodle-ETest and testat for 2.AB
9. method programming 2. week, from 9.1 Introduction of a ban on overtaking
10. extending class hirachy 3. week Introduction of the class crossing
11. File Streams 4. week Reading the traffic system from a file
12. Completion Block 3:
Simulation of the transport system

5. week, from

Completion of the third block
latest date for zoom testat for 3.AB
Total testate

In the period from 12/12/2022 - 6/1/2023 there will be no consultations due to the Mindstorm project and the Christmas vacations. During this time, questions can be asked in the discussion forum.