SPiC - Übungen im WS 2020/21
Allgemeines
Da SPiC auch dieses Semester nicht als Präsenzveranstaltung stattfinden kann, werden Tafel- und Rechnerübungen wieder online abgehalten. Für erstere werden die Videos aus dem Sommersemester 2020 ergänzt und es wird eine zusätzliche wöchentliche Fragestunde stattfinden.
In den Aufgaben wird die Systemprogrammierung auf zwei verschiedenen Ebenen geübt: Zum einen in Form eines Steuerprogrammes direkt auf Hardware eines AVR Mikrocontrollers, zum anderen im (stark vereinfachten) Nachbau einiger gängiger Systemwerkzeuge auf einer Linux Systemschnittstelle.
Dokumentationsbereich
Die Datenblätter für den Mikrocontroller finden Sie auf der SPiCboard Webseite, die Dokumentation für die libspicboard
und die avrlibc
auf der libspicboard-Doku Seite.
Eine Übersicht über gängige libc
Funktionen und Systemaufrufe sind in der Linux libc-Doku hinterlegt, vollständige Informationen finden Sie in den jeweiligen Manpages.
Zoom Tafel- und Rechnerübungen
Die Termine starten c.t. (also 15 Minuten später) und dauern 90 Minuten. Gibt es 30 Minuten nach Beginn der Übung keine Teilnehmer, kann der Übungsleiter sie frühzeitig beenden.
Zu jedem Übungstermin gibt es ein Zoom Meeting. Die Links sind in diesem StudOn Ordner zu finden. Zum Beitritt in das Zoom Meeting ist eine Anmeldung über die FAU Zoom Anmeldeseite nötig. Ein Beitritt ist erst möglich, wenn der Tutor das Meeting gestartet hat. Achten Sie für Wortbeiträge bitte darauf, geeignete Mikrofone und Kopfhörer zu verwenden. Nicht geeignet sind Laptop Mikrofone und die Nutzung von Lautsprechern.
Je nach Auslastung der Übung kann es sein, dass Sie stummgeschaltet werden. Um eine Frage zu stellen, nutzen Sie bitte die Hand heben (Zoom Hilfeseite [en]) Funktionalität in Zoom. Der Übungsleiter wird diese Anfragen der Reihe nach abarbeiten und Sie entsprechend bitten, Ihre Stummschaltung aufzuheben.
Tafelübungen
Um die Inhalte der Screencasts zu vertiefen, findet in diesem Semester eine wöchentliche Tafelübung in Zoom statt. Entgegen den Rechnerübungen soll es in diesem Termin nicht um die Übungsaufgaben, sondern um die Vertiefung der Vorlesungs- und Übungsvideos gehen. Es können also Verständnis- oder weitergehende Fragen gestellt werden.
Rechnerübungen
Die Rechnerübungen starten in der zweiten Vorlesungswoche (ab 09.11.2020) und enden mit den Übungsaufgaben (05.02.2021). Es dürfen beliebige (auch mehrere) Rechnerübungen besucht werden.
Bitte halten Sie Ihre IDM-Kennung bereit (zum Beispiel jy52coty
), wenn der Tutor auf Ihren Code schauen soll. Um mit ihm darüber hinaus den Inhalt der SPiC-IDE zu teilen, halten Sie bitte Ihren Zugriffscode bereit (zum Beispiel SPiCxxxxxxx
).
Zur Vermeidung unbeabsichtigter Plagiate können Tutoren sogenannte Breakout Räume (Zoom Hilfeseite [en]) verwenden. In diesem Raum befinden sich nur der Tutor und der Studierende mit Frage und so können auch Details im Code besprochen werden.
Bei Problemen mit Zoom, bietet das RRZE Hilfeseiten an:
Uhrzeit | Mo | Di | Mi | Do | Fr |
---|---|---|---|---|---|
08:00- 10:00 |
|||||
10:00- 12:00 |
|||||
12:00- 14:00 |
|||||
14:00- 16:00 |
RÜ2 (von der Haar) |
||||
16:00- 18:00 |
RÜ1 (Faghih-Naini) |
TÜ (Rheinfels) |
Übungsaufgaben
Nr. | Titel | Kurzbeschreibung | Ausgabe | Bearbeitungszeit (in Tagen) |
Abzugebende Dateien |
Punkte |
---|---|---|---|---|---|---|
1 | zaehler | Kennenlernen der Umgebung, Implementierung eines Zähler-Programms |
02.11.2020 | 14 | zaehler.c | 6 |
2 | izaehler | Interrupts, Nebenläufigkeit, IO | 16.11.2020 | 7 | izaehler.c | 12 |
3 | button | IO, Module, Tests | 23.11.2020 | 7 | button.c, test-button.c | 14 |
4 | ampel | Zustandsmaschinen, Interrupts, Synchronisation | 30.11.2020 | 14 | ampel.c | 15 |
5 | concat | C unter Linux, Speicherallokation, Strings | 14.12.2020 | 7 | concat.c | 10 |
6 | trac | Ein-/Ausgabe | 21.12.2020 | 7 | trac.c | 9 |
7 | printdir | POSIX, Strukturen | 11.01.2021 | 7 | printdir.c | 12 |
8 | mish | POSIX-Prozesse, Signale | 18.01.2021 | 21 | mish.c | 22 |
Folien & Aufzeichnungen der Übungen
Wir behalten uns Änderungen der Folien und Aufzeichnungen während des Semesters vor.
Die Folien und Aufzeichnungen stammen aus dem vorherigen Sommersemester. Die Gliederung ist jedoch an die Aufteilung des Stoffs im Wintersemester angepasst und soll eine grobe Hilfe bieten in welcher Reihenfolge es sinnvoll ist die Videos zu bearbeiten. Videos die im Wintersemester neu hinzukommen sind mit dem Kürzel (WS) im Namen gekennzeichnet und werden im Laufe des Wintersemesters hochgeladen.
Abgabe und Bewertung der Übungsaufgaben
Die Abgabe erfolgt durch die SPiC-IDE und muss vor dem Abgabetermin erfolgen. Eine Abgabe nach dem Abgabetermin per eMail ist nicht möglich. Zur Bearbeitung der Aufgaben wird Ihnen automatisch ein Projektverzeichnis angelegt nachdem Sie sich zu einer Übung angemeldet haben. Der Pfad zu diesem Verzeichnis lautet/proj/i4spic/<login>
, wobei <login>
für Ihren Benutzernamen im CIP-Pool steht. Bitte bearbeiten Sie Ihre
Aufgaben in diesem Verzeichnis und verwalten Sie das Verzeichnis wie in
der ersten Aufgabenstellung beschrieben, da ansonsten das Abgabeprogramm
Ihre Lösung nicht finden kann.
Die abgegebenen Aufgaben werden von uns korrigiert. Die korrigierten Abgaben finden Sie in ihrem Projektordner im Unterordner korrektur. Die Ergebnisse der Korrektur sind ausserdem nach Login im Waffel einsehbar.
Literaturempfehlungen
Zur Einführung in die Programmiersprache C haben wir in der Vorlesung die folgenden Bücher kurz vorgestellt:
- C-Einführungsbuch "C als erste Programmiersprache": verfügbar bei Springerlink online und in
/proj/i4spic/pub/
(beides nur aus dem Uni-Netz) - Karlheinz Zeiner: Programmieren lernen mit C. Carl Hanser, 4. Auflage, 2000.
- Steve Oualline: Practical C Programming. O'Reilly, 1991.
- Peter Darnell, Philip Margolis: C: A Software Engineering Approach. Springer, 1991.
- Brian Kernighan, Dennis Ritchie: The C Programming Language. Prentice Hall, 1988 (in der deutschen Übersetzung 1990 bei Hanser erschienen)
Zum Thema UNIX-Systemprogrammierung sind die folgenden Bücher empfehlenswert:
- Helmut Herold: Linux/Unix Systemprogrammierung, Addison-Wesley, München, September 2004.
- A. S. Tanenbaum, A. S. Woodhull: Operating Systems: Design And Implementation, Prentice Hall, 1997.
- R. W. Stevens: Advanced Programming in the UNIX Environment. Addison-Wesley, 1992.