OrganizationCopyright: © 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 PI2Betreuung@ids.rwth- aachen.de. 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
|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
|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
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.