C und C++ Praktikum

Inhalt

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 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 und Aufzeichnungen der Übungsbesprechungen 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. Mehr dazu weiter unten unter dem Absatz "Ablauf -> Allgemeine Informationen".
  • 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.

*Hinweis: Stand jetzt, wird der zweite Teil des Praktikums, bei dem es um das Hands-on-Programmieren eines Mikrocontrollers geht, stattfinden. Falls sich die pandemische Lage wieder verschlechtert, entfällt dieser Teil möglicherweise, da sich dieser leider nicht unter Berücksichtigung aller Hygiene-Maßnahmen durchführen lässt. Für diesen Fall haben wir eine Mikrocontroller-Emulation auf Basis des QEMU-Frameworks vorbereitet, womit ein Teil der Mikrocontrollerübungsaufgaben von ihnen zu Hause durchgeführt werden kann.

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-su-1030-pr C/C++ Programmierpraktikum ein, sonst könnten Sie weder an der Präsenzveranstaltung noch an der Klausur teilnehmen.

Bitte beachten sie: Eine Kursanmeldung nach dem 30.04.2022 ist zwar möglich, allerdings sind danach in der Regel alle Praktikumsplätze vergeben und die Terminumfrage in Moodle geschlossen. Außerdem ist es nach dem 30.04.2022 nicht mehr möglich sich zur Klausur anzumelden.

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.

Anmeldung zur Klausur

Für diese Veranstaltung beginnt die Anmeldung zur Klausur bereits am 01. April 2022 und endet schon am 30. April 2022. Denken Sie deshalb rechzeitig daran sich zur Klausur anzumelden, falls Sie an dieser teilnehmen möchten!

Vorbereitung für die Bonusübungen

Ab 01.03.2022, also vor Beginn der Veranstaltung, haben sie bis zum 11.04.2022 Zeit sich in eine Gruppe zur Bearbeitung und Abgabe der Bonusübung auf Moodle anzumelden.

Vorbereitung für die Präsenzübung

  • Ab dem 01.03.2022 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.

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 01.April mit der Veröffentlichung des Foliensatzes inkl. Organisationsfolien. Danach 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) CodeLite bereitgestellt.

Timeline - Teil 1

  • 01. April - 30. April - Klausuranmeldung (!)
  • 01. April - Gesamter Foliensatz inkl. Organisationsfolien
  • 11. April - Grundlagen [G]
  • 25. April - Speicherverwaltung [S]
  • 16. Mai - Objektorientierung [O]
  • 06. Juni - Fortgeschrittene Themen [F]
  • 27. Juni - Programmierung in C [C]
  • 23. September - Klausur (schriftlich, in Präsenz)

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 18.07.2022, 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 25.07.2022 und ist in 6 Blöcke (je 2 Tage) mit jeweils max. 50 Teilnehmern aufgeteilt. Alle Präsenztage finden in Raum S321/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

  • 18.07 - Freigabe (Bonus-)Übung Embedded C
  • 25.07 - 26.07: Präsenzübung - Block 1 (jeweils )
  • 27.07 - 28.07: Präsenzübung - Block 2
  • 29.07 - 01.08: Präsenzübung - Block 3
  • 02.08 - 03.08: Präsenzübung - Block 4
  • 04.08 - 05.08: Präsenzübung - Block 5
  • 08.08 - 09.08: Präsenzübung - Block 6
  • 23. September - Klausur (schriftlich, in Präsenz)

Allgemeine Informationen

Wir bieten ihnen auch die Gelegenheit ihre Nicht-Bonusübungen auf Moodle freiwillig abzugeben. Wir werden ihre Abgabe dann korrigieren und ihnen Feedback geben.

Ein Bonus auf die Klausur ist vorgesehen und kann die Note um bis zu 1.0 verbessern. Bonusübungen haben eine Abgabefrist und werden, mit Ausnahme der ersten Bonusübung, erst nach der Korrektur der letzten Bonusübung veröffentlicht. Mehr hierzu unter dem Abschnitt Bonus.

Außerdem bieten wir regelmäßige 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 5 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 ab Veröffentlichung 2 Wochen Zeit. Danach schließen wir die Abgabe auf Moodle und geben ihnen zeitnah 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)

Timeline - Bonusaufgaben

  • 11.04.2022 - Freigabe: Bonusübung 1 [G]
  • 24.04.2022 - Abgabefrist: Bonusübung 1 [G]
  • 02.05.2022 - Freigabe: Bonusübung 2 [S]
  • 15.05.2022 - Abgabefrist: Bonusübung 2 [S]
  • 23.05.2022 - Freigabe: Bonusübung 3 [O]
  • 05.06.2022 - Abgabefrist: Bonusübung 3 [O]
  • 13.06.2022 - Freigabe: Bonusübung 4 [F]
  • 26.06.2022 - Abgabefrist: Bonusübung 4 [F]
  • 04.07.2022 - Freigabe: Bonusübung 5 [C]
  • 17.07.2022 - Abgabefrist: Bonusübung 5 [C]
  • 18.07.2022 - Freigabe: Bonusübung 6 [C]
  • 14.08.2022* - Abgabefrist: Bonusübung 6 [C]

(*) Die Abgabe ist eigentlich für den jeweils letzten Praktikumstag eines Blocks vorgesehen. Aus Fairness-Gründen geben wir allen Teilnehmer:innen jedoch die Möglichkeit im Notfall ihre Lösung nachträglich bis zum 14.08.2022 abzugeben.

 

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.

Darüber hinaus empfehlen wir ihnen noch folgende vertiefende Literatur

 
  • 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