Lecture: Systemnahe Programmierung
Course:
- Responsible: Dr. Matthias Frank, Dr. Matthias Wübbeling, Prof. Dr. Peter Martini
- Start: 11.10.2022
- Dates: Tue. 14:15 to 15:45, weekly, HSZ - HS2
- Course number: 612100034
Exercises:
- Responsible: Dr. Matthias Frank, Dr. Matthias Wübbeling, Prof. Dr. Peter Martini, (Organisatorische Anfragen bitte an <tut-sys-prog@lists.iai.uni-bonn.de>)
- Start: wird in der 1. Vorlesung bekanntgegeben
- Dates: will be announced in the first lecture
- Course number: 612200034
Other:
- Term: Bachelor Computer Science, Bachelor Cyber Security, Bachelor Lehramt
- Requirements:
- Faculty: BA-INF 034/129
- Effort: 2L + 2E / 6CP
Ankündigungen und wichtige Termine
Live-Stream der Vorlesung in BigBlueButton: (nur als Ausweich, Präsenz im Hörsaal wird nahegelegt)
https://bbb.informatik.uni-bonn.de/b/mat-jvg-ah1
Klausuren und Klausurvorbereitung
Alle Termine im Zusammenhang mit Klausuren sind nachfolgend aufgeführt:
- Erstes PRÄSENZ-Ferientutorium: Freitag, 10.02.2023 - Raum 0.016
ab 13:00 bis ca. 15:00, maximal 16:00 (solange Interesse besteht)- Erstes ONLINE-Ferientutorium: Donnerstag, 16.02.2023 - BBB-Raum https://bbb.informatik.uni-bonn.de/b/dyl-sc6-z3k-mm7
ab 14:00 bis ca. 16:00, maximal 17:00 (solange Interesse besteht)- Erstklausur: Freitag, 17.02.2023 - HSZ, Hörsäle 1 und 2
Zeitfenster der Raumreservierung 12 bis 15 Uhr
Einlass geplant ab 12:00. Klausurdauer 90 Minuten.
Aufteilung auf die Hörsääle nach Anfangsbuchstaben der Nachnamen:
- in HS-1: von A,B,C,... bis H, I, J, K,L, Ma..., Meurer
- in HS-2: von Mobau, Mo..., N,O,... bis X,Y,Z
Infos zum Ausfall: Statistik + Diagramme- Einsicht zur Erstklausur: Donnerstag 9.3.2023
Zeitfenster: von 13.00 bis 14.00h
Raum: 0.016 EG Informatik-Gebäude Campus Poppelsdorf- Zweites PRÄSENZ-Ferientutorium: Donnerstag, 16.03.2022 - ACHTUNG RAUMÄNDERUNG: Raum U1.039
ab 13:00 bis ca. 15:00, maximal 16:00 (solange Interesse besteht)- Zweites ONLINE-Ferientutorium: Dienstag, 21.03.2023 - BBB-Raum https://bbb.informatik.uni-bonn.de/b/dyl-sc6-z3k-mm7
ab 14:00 bis ca. 16:00, maximal 17:00 (solange Interesse besteht)- Nachklausur: Donnerstag, 23.03.2023 - HSZ, Hörsaal 1
Zeitfenster der Raumreservierung 12 bis 15 Uhr
Einlass geplant ab 12:00. Klausurdauer 90 Minuten.
Infos zum Ausfall: Statistik + Diagramme- Einsicht zur Nachklausur: Donnerstag, 11.05.2023
Zeitfenster: von 15.00 - 16.00h
Raum: 0.016 EG Informatik-Gebäude Campus Poppelsdorf
In der ersten Vorlesung am Dienstag 11.10.2022 ab 14.15h wurden alle organisatorischen Dinge zur Teilnahme an der Systemnahen Programmierung besprochen. Die ersten Materialien finden sich unten in der Übersicht.
Für Nachzügler/innen:
Bitte die Informationen aus Vorlesungsfolien 0.1 und 0.2 nachlesen und bis zum Dienstag 18.10.2022 23.59h in TVS zu den Übungsgruppen anmelden. Ein Link zur BBB-Aufzeichnung der ersten Vorlesung vom 11.10.2022 ist in eCampus hinterlegt.
Ein Einstieg ist ab Mittwoch 19.10.2022 nur noch in sehr gut begründeten Einzelfällen möglich. Bitte wenden Sie sich dazu an <tut-sys-prog@lists.iai.uni-bonn.de>.
Zugangsdaten
Die Zugangsdaten zum Material auf dieser Webseite (wie Vorlesungsfolien, Übungszettel, ...) sind im SysProg eCampus Kurs einsehbar: ecampus.uni-bonn.de/goto.php (Direktlink zum Beitritt)
Übungsanmeldung
Die Übungsanmeldung wird über das Tutorienvergabesystem (TVS) erfolgen. Die Übungsanmeldung ist seit 11.10.2022 nachmittags geöffnet und endet am Dienstag 18.10.2022 um 23.59h. Im Laufe des Mittwochs 19.10. (spätestens Donnerstag 20.10.2022) erhalten alle Teilnehmer/innen von ihrem Tutor weitere Informationen zu den Kleingruppen.
Die Übungsanmeldung über TVS sollte aus anderen Informatik-Modulen bekannt sein. Eine Registrierung in TVS ist mit Matrikelnummer möglich, siehe Anweisungen bei TVS. FFF-Teilnehmer/innen ohne Matrikelnummer wenden sich umgehend per E-Mail an tvs@ und bitten um manuelle Registrierung. cs.uni-bonn.de
Für die Abgabe der Übungen in Gruppen wird das Versionierungssystem git auf einem Server der Informatik genutzt. Für den Zugang ist ein gültiger Informatik-Account nötig. Wenn Sie noch keinen Informatik-Account haben sollten, kümmern Sie sich bitte selbständig und rechtzeitig/umgehend darum! (Weitere Informationen dazu auf den Webseiten der Systemgruppe).
Die Kleingruppen-Übungen finden im WS 2022/2023 wieder überwiegend in Präsenz statt. Zwei Übungsgruppen werden als Online-Treffen im BBB-System der Informatik gehalten. Auch für dieses System wird der Informatik-Account genutzt.
(erledigte Ankündigungen und erledigte Termine siehe ganz unten)
Krankmeldungen für Prüfungstermine: Beachten Sie bitte hierzu unbedingt die entsprechenden Hinweise des Prüfungsamts Informatik! (-> dort: Ablauf bei Krankmeldungen). Zusätzlich sind die Organisatoren der Systemnahen Programmierung per E-Mail über die eingereichte Krankmeldung zu informieren.
Bitte beachten Sie für Ihre strategische Planung der Teilnahme an den Prüfungen: Im Modul Systemnahe Programmierung wird es KEINEN dritten Prüfungstermin geben! Die zweite Prüfungsmöglichkeit deckt den Fall einer Krankheit beim ersten Termin ab.
Mailingliste
Für die Vorlesung Systemnahe Programmierung wurde eine Mailingliste eingerichtet, über die aktuelle Informationen zur Vorlesung und den Übungen verbreitet werden. Die Anmeldung ist unter dieser Adresse möglich. Es werden nur Anmeldungen von Studenten akzeptiert, die auch für die Übungen angemeldet sind. Die Mails der Mailingliste werden archiviert.
Fragen von allgemeinem Interesse und Diskussionen zwischen den Teilnehmer/innen sollen ebenfalls über die Mailingliste laufen.
Bei gezielten Fragen an das Team der Tutor/innen und Dozenten kann der Mail-Alias tut-sys-prog (at) lists.iai.uni-bonn.de genutzt werden.
Programmiersprache C
Im Bereich der systemnahen Programmierung wird als Programmiersprache häufig kein objektorientiertes Java oder C++ verwendet, sondern C. Um die Vorlesung erfolgreich absolvieren zu können, ist die Kenntnis von C sehr wichtig. Aus dem Modul BA-INF 016 "Algorithmen und Programmierung" (bzw. vor 2019 aus BA-INF 014 "Algorithmisches Denken und imperative Programmierung" (aka ADiP) sind Konzepte einer imperativen Programmiersprache bzw. programmiersprachliche Grundkonzepte bekannt (im besten Falle wurde C behandelt).
Der Klassiker über die Programmiersprache C ist nach wie vor das Buch von Brian W. Kernighan und Dennis Ritchie: The C Programming Language. Für Teilnehmer/innen mit Vorkenntnissen und Erfahrungen mit Java könnten die folgenden Links hilfreich sein:
- http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/: C von A bis Z - Das umfassende Handbuch, Jürgen Wolf, Rheinwerk Computing <openbook>
- http://www.cs.princeton.edu/introcs/faq/c2java.html: Tabellarische Gegenüberstellung von Java und C
Alte Klausuren
Da eine gewisse Diskrepanz zwischen den Übungsaufgaben und den Klausuraufgaben zu erkennen ist, haben wir uns dieses Jahr dafür entschieden, ein paar alte Klausuren zu veröffentlichen, um euch einen Eindruck zu geben was von euch in der Klausur verlangt wird.
Bitte behaltet dabei im Hinterkopf, dass die Vorlesung in den letzten Jahres teilweise anders aufgebaut war und das teilweise andere Schwerpunkte gesetzt waren. Diese hier gezeigten Altklausuren decken offensichtlich nicht alle Themenbereiche ab. Klammert euch nicht nur an diese Altklausuren!
Trotzdem hoffen wir natürlich, dass dieser Einblick für euch hilfreich ist.
Zur Klausurvorbereitung | Alte Klausuren | ||||||||
---|---|---|---|---|---|---|---|---|---|
WS2013/14 | |||||||||
WS2014/15 | |||||||||
Folien und Präsentationen
Von den Studentenrechnern des Instituts aus sind die Dateien frei zugänglich (ebenso per Verbindung über VPN); Zugriffe von anderen Rechnern erfordern ein Paßwort, welches über den eCampus Kurs verfügbar ist (siehe oben). Bitte erfragen Sie diese Zugangsdaten nicht per E-Mail! Nachzügler erfahren bei Bedarf die Zugangsdaten ebenfalls über eCampus.
Kapitel | PDF-File |
---|---|
0. Allgemeine Informationen | |
Informationen zur Einführung in C (wird im WS 2022/23 nicht live in der Vorlesung behandelt) | |
1. Maschinenprogrammierung in Assembler1.1. Motivation | Teil 1 (Folien 1-49) Teil 2 (Folien 50-80) Sourcen Assembler-Beispiel stars (ZIP) |
1. Ergänzung: Speicherverwaltung malloc & free | Folien 1-19 |
2. Prozesse und Threads2.1 Prozesse 2.2 Threads 2.3 IPC | |
3. Netzwerkprogrammierung in C 3.1. Motivation 3.2. Netzwerkprogrammierung: Sockets & Co. 3.3. I/O-Multiplexing 3.4. Server-Strukturen | Teil 1 Folien 1-69 Zu Folien 7 ff. (Wie funktioniert das Internet? (auf 21 Folien)) vgl. Ankündigung in der Mailingliste. Teil 2 Folien 70-143 |
| |
| |
Übungszettel
Hinweise zum Übungsbetrieb auch hier (0.2 Übungen)
Die PDF-Dateien der Übungsblätter enthalten teilweise eingebettete Hilfsdateien (Source-Code, ...). Teilweise werden diese eingebetteten Dateien im PDF im Webbrowser nicht angezeigt. Laden Sie die PDF Datei am besten auf Ihren Computer und öffnen diese dort lokal.
PDF-Datei | Ergänzendes Material | Weitere Informationen |
---|---|---|
Übungsblatt 01 | Abgabe bis 23. Oktober 2022 | |
Übungsblatt 02 | Abgabe bis 28. Oktober 2022 | |
Übungsblatt 03 | Abgabe bis 4. November 2022 | |
Übungsblatt 04 | Abgabe bis 11. November 2022 | |
Übungsblatt 05 | Abgabe bis 18. November 2022 | |
Übungsblatt 06 | Abgabe bis 25. November 2022 | |
Übungsblatt 07 | Abgabe bis 2. Dezember 2022 | |
Übungsblatt 08 | Abgabe bis 9. Dezember 2022 | |
Übungsblatt 09 | Abgabe bis 16. Dezember 2022 | |
Übungsblatt 10 | Abgabe bis 6. Januar 2023 | |
Übungsblatt 11 | Abgabe bis 13. Januar 2023 | |
Übungsblatt 12 | Abgabe bis 20. Januar 2023 | |
Übungsblatt 13 | Abgabe bis 27. Januar 2023 | |
Übungsblatt 14 | Abgabe bis 3. Februar 2023 | |
Bonusprojekt Shell | Abgabe bis 27. Januar 2023 |
Zusätzliche Hilfsmittel
Hilfsmittel | ||
---|---|---|
SPAsT Images(SysProgASemblerTool) | ||
Assembler Code Table |
|