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.

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, sonst könnten Sie weder an der Präsenzveranstaltung noch an der Klausur teilnehmen.

Bitte beachten sie: Eine Kursanmeldung nach dem 30.04.2024 ist zwar prinzipiell 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.2024 nicht mehr möglich sich zur Klausur anzumelden. Eine Abmeldung von der Klausur ist bis 8 Werktage vor dem Klausurtermin möglich.

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: Wir werden diese Webseite weiterhin aktualisieren. Trotzdem empfehlen wir ihnen regelmäßig den Moodle-Kurs (https://moodle.tu-darmstadt.de/course/view.php?id=38846) der Veranstaltung zu besuchen, um die neuesten Updates und Vorlesungsmaterialien zu erhalten.

Anmeldung zur Klausur

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

Vorbereitung für die Bonusübungen

Ab 01.04.2024, also vor Beginn der Veranstaltung, haben sie bis zum 30.04.2024 (Abgabetermin der ersten Bonusaufgabe) Zeit sich für eine Gruppe zur Bearbeitung und Abgabe der Bonusübung auf Moodle anzumelden.

Vorbereitung für die Präsenzübung

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

  • 01.04 - 30.04: Klausuranmeldung (!)
  • 01.04: Gesamter Foliensatz inkl. Organisationsfolien
  • 15.04: Grundlagen [G]
  • 29.04: Speicherverwaltung [S]
  • 20.05: Objektorientierung [O]
  • 10.06: Fortgeschrittene Themen [F]
  • 01.07: Programmierung in C [C]
  • 27.09: 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 22.07.2024, 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 29.07.2024 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

  • 22.07: Freigabe (Bonus-)Übung Embedded C
  • 29.07 - 30.07: Präsenzübung - Block 1
  • 31.07 - 01.08: Präsenzübung - Block 2
  • 02.08 - 05.08: Präsenzübung - Block 3
  • 06.08 - 07.08: Präsenzübung - Block 4
  • 08.08 - 09.08: Präsenzübung - Block 5
  • 12.08 - 13.08: Präsenzübung - Block 6
  • 27.09: 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, ca. 1 1/2 Wochen 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, mit Ausnahme der ersten Bonusübung, ab Veröffentlichung 3 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)

Timeline - Bonusaufgaben

  • 15.04: Freigabe der Bonusübung 1 [G]
  • 28.04: Abgabefrist der Bonusübung 1 [G]
  • 29.04: Freigabe der Bonusübung 2 [S]
  • 19.05: Abgabefrist der Bonusübung 2 [S]
  • 20.05: Freigabe der Bonusübung 3 [O]
  • 09.06: Abgabefrist der Bonusübung 3 [O]
  • 10.06: Freigabe der Bonusübung 4 [F]
  • 30.06: Abgabefrist der Bonusübung 4 [F]
  • 01.07: Freigabe der Bonusübung 5 [C]
  • 21.07: Abgabefrist der Bonusübung 5 [C]
  • 22.07: Freigabe der Bonusübung 6 [C]
  • 18.08.2024*: Abgabefrist der Bonusübung 6 [C]

(*) Die Abgabe ist eigentlich für den jeweils letzten Praktikumstag eines Blocks vorgesehen. Wir geben allen Teilnehmer:innen jedoch die Möglichkeit im Notfall ihre Lösung nachträglich noch bis zum 18.08.2024 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