Im Rahmen der Lehrveranstaltung werden folgende Themen behandelt:
- Grundkonzepte der Programmiersprachen C und C++
- Speicherverwaltung und Datenstrukturen
- Objektorientierung in C++
- (Mehrfach-)Vererbung, Polymorphie, parametrische Polymorphie
- (Hardwarenahe) Programmierung von eingebetteten Systemen mit C
Dieses Programmierpraktikum richtet sich in erster Linie an Studierende des Bachelor ETiT (Elektrotechnik und Informationstechnik) mit Ausrichtung Datentechnik sowie des Bachelor IST (Informationssystemtechnik). Studierende anderer Studiengänge und Vertiefungen können die Veranstaltung ebenfalls besuchen.
Das Praktikum ist insgesamt in zwei Abschnitte unterteilt:
- Im ersten Teil des Praktikums werden semesterbegleitend durch praktische Aufgaben und aufgezeichnete Vorträge die Grundkonzepte der Programmiersprachen C und C++ vermittelt. Sämtliche Aspekte werden durch ausgedehnte praktische Arbeiten im Selbststudium am Rechner vertieft. Hierfür werden alle notwendigen Materialien wie Vortragsfolien, Vortragsaufzeichnungen, Übungen, Musterlösungen der Übungen in rein digitaler Form im dazugehörigen Moodle-Kurs zum Selbststudium zur Verfügung gestellt. Über Moodle werden wir Sie auch während des Semesters begleiten, ihnen über das Forum Gelegenheit geben Fragen zu stellen, Feedback zu Übungsabgaben geben und Informationen zu Klausuren sowie Sprechstunden ankündigen.
- Im zweiten Teil des Praktikums geht es um die Programmierung eines Mikrocontrollers in der Programmiersprache C. Hierfür bekommen Sie für zwei Tage einen Mikrocontroller zur Verfügung gestellt, mit dem Sie unter Aufsicht praktische Programmieraufgaben bearbeiten können.
Voraussetzungen
Für das Praktikum sind Kenntnisse der Programmiersprache Java und Grundlagen der Objektorientierung erforderlich/sinnvoll. Inhalt des Praktikums sind keine programmiertechnischen Grundlagen.
Vorbereitungen
Anmeldung in TUCaN
Bitte schreiben Sie sich rechtzeitig in TUCaN für den Kurs 18-fi-1040-pr „C/C++ Programmierpraktikum“ ein.
Sie sollten nach Ihrer Einschreibung via TUCaN automatisch in den Moodle-Kurs eingetragen werden. Es kann eventuell einige Stunden dauern, bis Sie von TUCaN dem Moodle-Kurs hinzugefügt wurden. Bitte überprüfen Sie, ob die Anmeldung funktioniert hat.
Allgemeiner Hinweis: Alle aktuellen Informationen zum Kurs des aktuellen Semesters werden ausschließlich über den Moodle-Kurs der Veranstaltung verbreitet..
Vorbereitung für die Bonusübungen
Ab 22.04.2025, also mit der Freigabe der ersten Bonusübung, haben Sie bis zum 04.05.2025 (Abgabetermin der ersten Bonusaufgabe) Zeit, sich für eine Gruppe zur Bearbeitung und Abgabe der Bonusübung auf Moodle anzumelden.
Nachmeldungen sind möglich, hierzu können Sie sich direkt an die Betreuung der Veranstaltung wenden. Jedoch können Bonusübungen nach dem jeweiligen Abgabedatum nicht mehr zur Bewertung eingereicht werden.
Vorbereitung für die Präsenzübung
Ab dem 05.05.2025 bis zum 25.05.2025 können Sie sich über eine Terminwahl in Moodle einen Termin für den Präsenzteil der Veranstaltung aussuchen.
- Studierende aus Fachbereich 18:
Bitte richten Sie vor dem Praktikum ein gültiges Benutzerkonto für die Rechner im PC-Pool des Fachbereichs 18 ein: http://www.pool.e-technik.tu-darmstadt.de/ . Die benötigte Software wird auf den PCs des Pools zur Verfügung stehen. Informationen für das Arbeiten mit eigenen PCs werden rechtzeitig bekanntgegeben. - Studierende aus anderen Fachbereichen:
Für Sie werden vorsorglich Pool-Accounts erstellt und nach Bedarf vergeben, so dass Sie die bereitgestellte Software auf den Pool-PCs nutzen können.
Verpflichtende Teile der Veranstaltung
Die Veranstaltung besitzt außer der Klausur keine verpflichtenden Komponenten, die zum Bestehen erbracht werden müssen.
Sie können auch später mit dem Praktikum beginnen bzw. lediglich die Klausur schreiben.
Sie haben aber keine Möglichkeit, eine Bonusaufgabe nach dem jeweils unten bzw. auf Moodle genannten Termin zur Bewertung einzureichen!
Ablauf
Teil 1 – C++ im Selbststudium
Der erste Teil der Veranstaltung ist in fünf Themengebiete aufgeteilt (G, S, O, F und C). Dazu können im Verlauf des Semesters alle Materialien auf Moodle angesehen bzw. heruntergeladen werden. Falls ein Download mit einem Passwort versehen ist, werden wir dies in der Beschreibung darunter bekannt geben.
Der Startschuss fällt am 14. April mit der Veröffentlichung des Foliensatzes inkl. Organisationsfolien. Anschließend werden nach und nach (Bonus-)Übungen mit den dazugehörigen Aufzeichnungen freigegeben, beginnend mit dem erstem Themenblock: [G]rundlagen. Danach werden etwa alle drei Wochen abschnittsweise die Materialien zu den restlichen Themenblöcken auf unserem Moodle-Kurs veröffentlicht. Zu jedem Abschnitt haben wir auch ein kleines Quiz für Sie implementiert, mit dessen Hilfe Sie ihren Lernfortschritt überprüfen können. Außerdem haben wir ihnen auf Moodle Installationsanleitungen und allgemeine Tipps zur Verwendung der integrierten Entwicklungsumgebung (IDE) CLion bereitgestellt.
Timeline – Teil 1
- 14.04: Gesamter Foliensatz inkl. Organisationsfolien
- 22.04: Grundlagen [G]
- 05.05: Speicherverwaltung [S]
- 26.05: Objektorientierung [O]
- 16.06: Fortgeschrittene Themen [F]
- 07.07: Programmierung in C [C]
Teil 2 – Programmieren eines Mikrocontrollers
Der zweite Teil beschäftigt sich im Wesentlichen mit der Programmierung von eingebetteten Systemen mit Hilfe der Programmiersprache C. Hierfür haben Sie die Gelegenheit zwei Tage lang (Bonus-)Übungen auf einem Evaluationsboard der Firma Cypress zu bearbeiten. Hierfür fällt der Startschuss am 21.07.2025, mit der Freigabe der freiwilligen Übung und der Bonusübung zum Embedded-C-Teil der Veranstaltung. Der praktische Präsenzteil der Veranstaltung beginnt dann ab 28.07.2025 und ist in 6 Blöcke (je 2 Tage) mit jeweils max. 50 Teilnehmern aufgeteilt. Alle Präsenztage finden in Raum S3|21-1 (Electronic Classroom) statt, beginnen um 09:00 Uhr und enden um 16:00 Uhr. Hinweis: Denken Sie daran sich hierfür einen Termin auszusuchen!
Timeline – Teil 2
- 21.07: Freigabe (Bonus-)Übung Embedded C
- 28.07 – 29.07: Präsenzübung – Block 1
- 30.07 – 31.07: Präsenzübung – Block 2
- 01.08 – 04.08: Präsenzübung – Block 3
- 05.08 – 06.08: Präsenzübung – Block 4
- 07.08 – 08.08: Präsenzübung – Block 5
- 11.08 – 12.08: Präsenzübung – Block 6
Timeline Klausur
- 26.09.: Klausur (schriftlich, in Präsenz)
Allgemeine Informationen
Ein Bonus auf die Klausur ist vorgesehen und kann die Note um bis zu 1,0 verbessern. Bonusübungen haben eine Abgabefrist und werden, ca. 1,5 Wochen nach der Korrektur der letzten Bonusübung veröffentlicht. Mehr hierzu unter dem Abschnitt Bonus.
Außerdem bieten wir regelmäßige Präsenz- und Online-Sprechstunden an. Hierzu gibt es dann mehr Informationen im Moodle-Kurs, sobald die Veranstaltung im April beginnt.
Bei weiteren organisatorischen Fragen nutzen Sie bitte das Teilnehmerforum auf Moodle. Falls Sie Fragen zu Vorlesungs- oder Übungsinhalten haben, nutzen Sie bitte die Foren unter den entsprechenden Themen.
Abschließend empfehlen wir ihnen regelmäßig den Moodle-Kurs der Veranstaltung zu besuchen, um die neuesten Updates und Vorlesungsmaterialien zu erhalten.
Bonus
Wir bieten eine Notenverbesserungen von bis zu 1,0 durch Bonus für regelmäßig abgegebene, besonders gekennzeichnete Übungsaufgaben an. Dieser Bonus tritt allerdings nur in Kraft, falls die von Ihnen erzielte Punktzahl bereits zum Bestehen der Klausur ausreichen würde. Der Bonus hilft also nicht beim Bestehen der Klausur, sondern kann lediglich ihre Klausurnote aufwerten.
Der Veranstaltungsinhalt kann in fünf Themengebiete gegliedert werden. Für jedes der folgenden Themengebiete Grundlagen, Speicherverwaltung, Objektorientierung und Fortgeschrittene Konzepte wird es je ein Aufgabenblatt geben. Für das Themengebiet (Embedded) C wird es zwei Aufgabenblätter geben. Die Übungsblätter (insgesamt 6 Stück) sind von Ihnen, den Studierenden zu lösen und auf Moodle abzugeben. Es ist vorgesehen, dass Sie die letzte Bonusaufgabe in Präsenz auf dem Evaluationsboard bearbeiten. Suchen Sie sich hierfür bitte rechtzeitig einen Präsenztermin in Moodle aus und denken Sie daran sich zwecks Abgabe für eine Übungsgruppe einzutragen, falls nicht schon geschehen.
Für die Bearbeitung einer Bonusaufgabe haben Sie, mit Ausnahme der ersten Bonusübung, ab Veröffentlichung drei Wochen Zeit. Danach schließen wir die Abgabe auf Moodle und geben ihnen rechtzeitig vor Abgabefrist der nachfolgenden Bonusübung eine Bewertung für ihre Abgabe. Eine Aufgabe gilt entweder als „bestanden“ oder „nicht bestanden“. Der Bonus wird proportional zum Verhältnis bestandener Bonusaufgaben und der Gesamtzahl an Bonusaufgaben angerechnet.
Gesamtbonus = 1,0 x (Anzahl Bestanden / 6)
Der Bonus gilt für die Klausur des Sommersemesters, in dem der Bonus erreicht wurde, sowie dem folgenden Wintersemester.
Timeline – Bonusaufgaben
- 22.04: Freigabe der Bonusübung 1 [G]
- 04.05: Abgabefrist der Bonusübung 1 [G]
- 05.05: Freigabe der Bonusübung 2 [S]
- 25.05: Abgabefrist der Bonusübung 2 [S]
- 26.05: Freigabe der Bonusübung 3 [O]
- 15.06: Abgabefrist der Bonusübung 3 [O]
- 16.06: Freigabe der Bonusübung 4 [F]
- 06.07: Abgabefrist der Bonusübung 4 [F]
- 07.07: Freigabe der Bonusübung 5 [C]
- 21.07: Freigabe der Bonusübung 6 [C]
- 27.07: Abgabefrist der Bonusübung 5 [C]
- Die Abgabe der Bonusübung 6 [C] erfolgt während der Präsenszeit.
Materialien
Alle Vorlesungsmaterialien, die Sie zum Bestehen der Klausur benötigen, wie Vorlesungsaufzeichnungen, Vortragsfolien, Übungen und Lösungen, werden auf dem zur Veranstaltung dazugehörigen Moodle-Kurs bereitgestellt. Wenn Sie sich korrekt in TuCan zum Modul und zur Veranstaltung angemeldet haben, werden Sie automatisch in den Moodle-Kurs eingeschrieben, welcher dann für Sie sichtbar sein sollte.
Weitere empfehlenswerte Literatur ist:
- Schellong, Helmut: Moderne C Programmierung, 3. Auflage. Springer, 2014
- Schneeweiß, Ralf: Moderne C++ Programmierung, 2. Auflage. 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