Content of the laboratory
The following topics are covered in the course:
- Basic concepts of the programming languages C and C++
- Memory management and data structures
- Object orientation in C++
- (Multiple) inheritance, polymorphism, parametric polymorphism
- (Hardware-related) programming of embedded systems with C
This practical programming course is primarily aimed at students of the Bachelor's degree program ETiT (Electrical Engineering and Information Technology) with a focus on data technology and the Bachelor's degree program IST (Information Systems Technology). Students of other degree programs and specializations can also attend the course.
The practical course is divided into two sections:
- In the first part of the practical course, the basic concepts of the programming languages C and C++ are taught through practical tasks and recorded lectures during the semester. All aspects are deepened through extensive practical work in self-study on the computer. For this purpose, all necessary materials such as lecture slides, lecture recordings, exercises and sample solutions to the exercises will be made available in purely digital form in the associated Moodle course for self-study. We will also support you during the semester via Moodle, give you the opportunity to ask questions via the forum, provide feedback on exercises and announce information on exams and consultation hours.
- The second part of the practical course is about programming a microcontroller in the C programming language. For this purpose, you will be provided with a microcontroller for two days, with which you can work on practical programming tasks under supervision.
Requirements
Knowledge of the Java programming language and the basics of object orientation are required/useful for the practical course. The practical course does not include any programming basics.
Preparations
Registration in TUCaN
Please register for the course 18-fi-1040-pr “Laboratory C/C++ Programming” in TUCaN in time, otherwise you will neither be able to take part in the face-to-face event nor the exam.
You should be automatically registered in the Moodle course after your enrollment via TUCaN. It may take a few hours for TUCaN to add you to the Moodle course. Please check whether the registration has worked.
General note: All current information about the course of the current semester will be distributed exclusively via the Moodle course of the event.
Preparation for the bonus exercises
From 22.04.2025, i.e. when the first bonus exercise is released, you have until 04.05.2025 (deadline for submitting the first bonus exercise) to register for a group to work on and submit the bonus exercise on Moodle.
Late registrations are possible, you can contact the course supervisor directly. However, bonus exercises can no longer be submitted for assessment after the respective submission date.
Preparation for the attendance exercise
From 05.05.2025 to 25.05.2025 you can choose a date for the attendance part of the course via a date selection in Moodle.
Currently a system change for the PC pool is discussed. We will inform you about the necessary steps to get an account for the PC pool when it is decided.
Compulsory parts of the course
Apart from the written exam, the course has no compulsory components that must be completed in order to pass.
You can also start the practical course later or just take the written exam.
However, you do not have the option of submitting a bonus assignment for assessment after the deadline specified below or on Moodle!
Procedure
Part 1 – C++ in self-study
The first part of the course is divided into five subject areas (G, S, O, F and C). All materials can be viewed or downloaded on Moodle during the semester. If a download is provided with a password, we will announce this in the description below.
The starting signal will be given on April 14th with the publication of the slide set including organizational slides. Subsequently, (bonus) exercises with the corresponding recordings will be released gradually, starting with the first topic block: [G]rundlagen. After that, the materials for the remaining topic blocks will be published on our Moodle course in sections approximately every three weeks. We have also implemented a small quiz for each section, which you can use to check your learning progress. We have also provided you with installation instructions and general tips for using the integrated development environment (IDE) CLion on Moodle.
Timeline – Part 1
- 14.04: Complete set of slides incl. organizational slides
- 22.04: Basics [G]
- 05.05: Memory management [S]
- 26.05: Object orientation [O]
- 16.06: Advanced topics [F]
- 07.07: Programming in C [C]
Part 2 – Programming a microcontroller
The second part is mainly concerned with the programming of embedded systems using the C programming language. You will have the opportunity to work on (bonus) exercises on an evaluation board from Cypress for two days. The starting signal for this will be given on 21.07.2025, with the release of the voluntary exercise and the bonus exercise for the embedded C part of the course. The practical attendance part of the course will then begin on 28.07.2025 and is divided into 6 blocks (2 days each) with a maximum of 50 participants each. All attendance days take place in room S3|21-1 (Electronic Classroom), start at 09:00 and end at 16:00. Note: Please remember to choose a date for this!
Timeline – Part 2
- 21.07: Release (bonus) exercise Embedded C
- 28.07 – 29.07: Presence exercise – Block 1
- 30.07 – 31.07: Presence exercise – Block 2
- 01.08 – 04.08: Presence exercise – Block 3
- 05.08 – 06.08: Presence exercise – Block 4
- 07.08 – 08.08: Presence exercise – Block 5
- 11.08 – 12.08: Presence xercise – Block 6
Timeline Klausur
- 26.09.: Written exam (in presence)
General information
A bonus on the exam is provided and can improve the grade by up to 1.0. Bonus exercises have a deadline and are published approximately 1 1/2 weeks after the correction of the last bonus exercise. More on this in the Bonus section.
We also offer regular online consultation hours. There will be more information on this in the Moodle course as soon as the practical course starts in April.
For further organizational questions, please use the participant forum on Moodle. If you have any questions about lecture or exercise content, please use the forums under the relevant topics.
Finally, we recommend that you regularly visit the Moodle course of the event to receive the latest updates and lecture materials.
Bonus
We offer a grade improvement of up to 1.0 through a bonus for regularly submitted, specially marked exercises. However, this bonus only comes into effect if the score you have achieved is already sufficient to pass the exam. The bonus therefore does not help you to pass the exam, but can only increase your exam grade.
The course content can be divided into five subject areas. There will be one task sheet for each of the following topics: Fundamentals, Memory Management, Object Orientation and Advanced Concepts. There will be two exercise sheets for the subject area (Embedded) C. The exercise sheets (6 in total) are to be solved by you, the students, and submitted on Moodle. It is planned that you will work on the last bonus task in presence on the evaluation board. Please choose an attendance date in Moodle in good time and remember to register for an exercise group for the purpose of submission, if you have not already done so.
With the exception of the first bonus exercise, you have three weeks from the date of publication to complete a bonus exercise. After that, we will close the submission on Moodle and give you a grade for your submission in good time before the deadline for the following bonus exercise. An assignment is considered either “passed” or “failed”. The bonus is credited in proportion to the ratio of passed bonus exercises and the total number of bonus exercises.
Total bonus = 1.0 x (number of passes / 6)
The bonus applies to the exam of the summer semester in which the bonus was achieved and the following winter semester.
Timeline – bonus tasks
- 22.04: Release of the bonus exercise 1 [G]
- 04.05: Deadline for submission of bonus exercise 1 [G]
- 05.05: Release of bonus exercise 2 [S]
- 25.05: Deadline for submission of bonus exercise 2 [S]
- 26.05: Release of bonus exercise 3 [O]
- 15.06: Deadline for submission of bonus exercise 3 [O]
- 16.06: Release of bonus exercise 4 [F]
- 06.07: Deadline for submission of bonus exercise 4 [F]
- 07.07: Release of bonus exercise 5 [C]
- 21.07: Release of bonus exercise 6 [C]
- 27.07: Deadline for submission of bonus exercise 5 [C]
- The submission of bonus exercise 6 [C] takes place during the attendance period.
Materials
All lecture materials that you need to pass the exam, such as lecture recordings, lecture slides, exercises and solutions, will be made available on the Moodle course associated with the course. If you have registered correctly in TuCan for the module and the course, you will be automatically enrolled in the Moodle course, which should then be visible to you.
Further recommended literature is:
- Schellong, Helmut: Moderne C Programmierung, 3rd edition. Springer, 2014
- Schneeweiß, Ralf: Modern C++ Programming, 2nd edition. Springer, 2012
- Stroustrup, Bjarne: Programming – Principles and Practice Using C++, 2nd edition. Addison-Wesley, 2014
- Stroustrup, Bjarne: A Tour of C++, 2nd edition. Pearson Education, 2018