C und C++ Praktikum

Neuigkeiten

Aufgrund der unverändert anhaltenden Pandemiesituation haben wir beschlossen den Modus der Veranstaltung für die nächste absehbare Zeit umzustellen.

  • Es wird in diesem Sommersemester (SoSe2021) keine Präsenzveranstaltung mit Anwesenheitspflicht geben und damit leider auch keine Hands-on-Versuche mit den Microcontroller-Boards.
  • Auch die verpflichtende Teilnahme an den Präsenzübungen entfällt damit.
  • Die Klausur wird voraussichtlich am Freitag den 24.09.2021 stattfinden, an der Sie nach ihrer Anmeldung ohne zusätzliche Voraussetzungen teilnehmen können.
    • Wichtig(!): Die Anmeldung zu dieser Klausur beginnt bereits am 01.04.2021 und endet am 30.04.2021 um 23:59 Uhr!
  • Damit Sie trotzdem optimal für die Klausur vorbereitet sind, sind die Vorlesungseinheiten aufgezeichnet worden und werden bis Anfang Mai zur Verfügung gestellt. Außerdem empfehlen wir ihnen die zur Verfügung stehenden Übungen zu bearbeiten.
  • Besprechungen der Übungsaufgaben (inklusive Musterlösungen) werden aufgezeichnet und ebenfalls bis Anfang Mai hochgeladen.
  • Zusätzlich bieten wir ihnen ab diesem Semester die Gelegenheit Ihre Lösungen zur Korrektur abzugeben, um sich dann Feedback von uns geben zu lassen, wobei der leistbare Korrekturaufwand stark von der Anzahl der Teilnehmer abhängt.
  • Im Moodle-Forum können Sie außerdem jederzeit zu den Inhalten der Folien oder den Übungen Fragen stellen.
  • Darüber hinaus werden wir ihnen auf Nachfrage gerne Termine für Online-Sprechstunden anbieten.
  • Zuletzt gibt es ab diesem Semester die Möglichkeit einen Bonus von bis zu 1,0 zu erzielen, der ihnen auf die bestandene Klausur angerechnet wird.

Da wir auch dieses Semester nicht an die üblichen Räumlichkeiten gebunden sind, gibt es weiterhin keine Beschränkung der Teilnehmerzahlen. Das heißt, es wird keine Teilnehmerauswahl und damit keine Zuteilung in Blöcke geben. Falls Sie also bereits zum Kurs in TuCaN angemeldet sind, sind Sie automatisch dazu berechtigt am Kurs und an der Klausur teilzunehmen.

Wir werden die Webseite weiterhin aktualisieren. Trotzdem empfehlen wir ihnen regelmäßig den Moodle-Kurs der Veranstaltung zu besuchen, um die neuesten Updates und Vorlesungsmaterialien zu erhalten.

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

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.
  • 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.

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.

*Hinweis: Der zweite Teil des Praktikums, bei dem es um das Hands-on-Programmieren eines Mikrocontrollers geht, lässt sich leider nicht unter Berücksichtigung aller Hygiene-Maßnahmen durchführen. Deshalb entfällt dieser Teil. Wir arbeiten allerdings im Moment unter Hochdruck an einer Mikrocontroller-Emulation auf Basis des QEMU-Frameworks, womit ein großer Teil der Mikrocontrollerübungsaufgaben von ihnen zu Hause durchgeführt werden kann. Wir hoffen dieses Werkzeug im laufenden Semester fertigzustellen, sodass Sie noch davon profitieren können. In jedem Fall halten wir Sie über Moodle auf dem Laufenden.

 

Voraussetzungen

Für das Praktikum sind Kenntnisse der Programmiersprache Java und Grundlagen der Objektorientierung erforderlich/sinnvoll. Inhalt des Praktikums sind keine programmiertechnischen Grundlagen.

Ablauf

Der erste Teil* der Veranstaltung ist in fünf Themengebiete aufgeteilt (G, S, O, F und C). Dazu können im Verlauf des Semester 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 03.Mai mit der Veröffentlichung der Folien, Übungen und den dazugehörigen Aufzeichnungen zum erstem Themenblock: Grundlagen. Danach werden alle drei Wochen 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

  • 01. April - 30. April - Klausuranmeldung (!)
  • 03. Mai - Grundlagen [G]
  • 25. Mai - Speicherverwaltung [S]
  • 14. Juni - Objektorientierung [O]
  • 05. Juli - Fortgeschrittene Themen [F]
  • 26. Juli - Programmierung in C [C]
  • 24. September - Klausur (wird aller Voraussicht nach schriftlich in Präsenzform durchgeführt werden)

Wir bieten ihnen auch die Gelegenheit ihre Ü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.

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. Online-Sprechstunden bieten wir on-demand an. Dafür schreiben Sie am besten dem Organisator (sebastian.ehmes@es.tu-darmstadt.de) oder den Tutoren eine E-Mail, mit einem entsprechenden Terminvorschlag.

Abschließend empfehlen wir ihnen regelmäßig den Moodle-Kurs der Veranstaltung zu besuchen, um die neuesten Updates und Vorlesungsmaterialien zu erhalten.

*Hinweis: Der zweite Teil der Veranstaltung entfällt leider Corona-bedingt.

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. Pro Themengebiet (Grundlagen, Speicherverwaltung, Objektorientierung, Fortgeschrittene Konzepte und C) gibt es ein Aufgabenblatt mit je einer Bonusaufgabe, die von ihnen, den Studierenden zu lösen und abzugeben ist. 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 / Anzahl Bonusaufgaben)

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