Lecture: Systemnahe Programmierung
Course:
- Responsible: Prof. Dr. Matthew Smith, Dr. Matthias Frank
- Start: 20.10.2015
- Dates: Tue. 14:30 to 16:00, weekly, AVZ III / Römerstr. 164 - HS 1
- Course number: 612100034
Exercises:
- Responsible: Prof. Dr. Matthew Smith, Dr. Matthias Frank, Sergej Dechand,
- Start: 27.10.2015
- Dates: n.n.
- Course number: 612200034
Other:
- Term: Bachelor Computer Science, Bachelor Lehramt
- Requirements:
- Faculty: BA-INF 034/129
- Effort: 2L + 2E / 6CP
Ankündigungen - wichtige Termine
(erledigte Ankündigungen und erledigte Termine siehe ganz unten)
Die Ergebnisse der Nachklausur vom 7.4.2016 wurden am 21.4. ins BASIS/POS-System eingetragen. Statistik/Graphiken zum Ausfall sind hier zu finden.
Eine Klausureinsicht findet am Mittwoch 27.04.2016 von 13.00h bis 13.30h im LBH in Raum II.08 statt.
Wegen STREIK im ÖPNV findet eine zusätzliche Klausureinsicht am Donnerstag 28.04.2016 von 13.00h bis 13.30h im LBH in Raum II.08 statt.
Klausurtermine:
- erste Prüfungsmöglichkeit: Dienstag 23.02.2016, vormittags, 9.00-10.30h (Dauer 90 min.), Uni-Hauptgebäude HS X
- Wiederholungsprüfung: FALSCH (war): Mittwoch KORREKT: Donnerstag 07.04.2016, vormittags, 9.00-10.30h (Dauer 90 min.), Uni-Hauptgebäude HS X
- bitte bis spätestens 22.12.2015 über BASIS/POS zur Teilnahme an der Prüfung anmelden
Krankmeldungen für Prüfungstermine werden nur als Original und mit dem Formblatt "Anlage zur Krankmeldung" akzeptiert und sind spätestens drei Tage nach dem Prüfungstermin im Prüfungsbüro Informatik einzureichen. 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.
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 014 "Algorithmisches Denken und imperative Programmierung" (aka ADiP) sind Konzepte einer imperativen Programmiersprache bekannt (im besten Falle wurde C behandelt).
Davon unabhängig wird es in der zweiten Vorlesungswoche einen sehr kurzen Überblick über die wichtigsten Konzepte von C geben - dies kann aber auf keinen Fall eine praktische (tiefere) Einarbeitung in C ersetzen!
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://www.comp.lancs.ac.uk/~ss/java2c/: Kurze Einführung in C für Java-Programmierer
- http://www.cs.princeton.edu/introcs/faq/c2java.html: Tabellarische Gegenüberstellung von Java und C
Mailingliste
Für die Vorlesung Systemnahe Programmierung wurde eine Mailingliste eingerichtet, über die aktuelle Informationen zur Vorlesung und den Übungen verbreitet werden sollen. 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.
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 in der ersten Vorlesung bekannt gegeben wird/wurde. Bitte erfragen Sie diese Zugangsdaten nicht per E-Mail! Nachzügler erfahren bei Bedarf die Zugangsdaten von Kommilitonen, den Dozenten oder den Tutoren.
Kapitel | PDF-File |
---|---|
0. Allgemeine Informationen | Folien 1-23 |
C- und Go-Crash-Kurs für Java-Programmierer | Folien 1 - 71 |
1. Maschinenprogrammierung in Assembler1.1. Motivation | Folien 1-76 |
1. Ergänzung: Speicherverwaltung malloc & free | Folien 1-18 |
2. Prozesse und Threads2.1 Prozesse 2.2 Threads 2.3 IPC | |
3. Netzwerkprogrammierung in C 3.1. Motivation | Teil 1: |
3.2. Netzwerkprogrammierung: Sockets & Co. 3.3. I/O-Multiplexing 3.4. Server-Strukturenu3.5. Zusammenfassung | Teil 2: Teil 3: Teil 4: |
Ergänzung zu Kapitel 1: Fallstudien aus studentischen Programmierprojekten | |
| |
Übungszettel
Hinweise zum Übungsbetrieb (erscheinen nach Beginn des Vorlesungsbetriebs)
Die PDF-Dateien können mit dem Acrobat Reader angesehen und ausgedruckt werden. Das Programm ist kostenlos erhältlich und ist auf fast allen Rechnern des Instituts installiert.
PDF-Datei | Ergänzende Folien | Weitere Informationen |
---|---|---|
Übungsblatt 01 | ||
Übungsblatt 02 | springerproblem.c | |
Übungsblatt 03 | sum.c | |
Übungsblatt 04 | palindrom_errors.c (Aufg. 11) helloworld-a.asm (Aufg. 12) | |
Übungsblatt 05 | matrix.c (Aufg. 15) shellcode.txt (Aufg. 17) | |
Übungsblatt 06 | rot13.h (Aufgabe 20) rot13.c (Aufgabe 20) | |
Übungsblatt 07 | fork.c (Aufgabe 23) Snippets.go (Aufgabe 24) | |
Bonuszettel | ||
Übungsblatt 08 | ||
Übungsblatt 09 | ||
Übungsblatt 10 | ||
Übungsblatt 11 | ||
Übungsblatt 12 | unp_readline.tar.gz | |
Übungsblatt 13 | keine Abgabe, keine Vorführung |
Übungstermine, -gruppen und Tutoren
Der Übungsbetrieb findet zu folgenden Terminen statt (letztes Update: ):
Gruppenzuteilung der Sys-Prog Übungen (Stand 28.10.2015) - bitte die begleitende Mail auf der Mailingliste beachten.
Erledigte Ankündigungen - erledigte Termine
Die erste Vorlesung war am Dienstag 20.10.2015 um 14.30h in HS 1 in der Römerstr. 164.
Dort wurden alle weiteren Informationen zur Organisation von Vorlesung und Übungen gegeben (Hinweise zum Übungsbetrieb HIER).
Der erste Übungszettel erscheint in der Woche vom 20.10.2015 (siehe unten), der eigentliche Übungsbetrieb beginnt dann in der (dritten) Woche ab Montag 02.11.2015.
Eintragung/Anmeldung zu den Übungen via TVS wurde nach der ersten Vorlesung am 21.10. geöffnet (ca. 20.10h) (TVS-Link hier). Die Registrierung bleibt offen bis Mo 26.10.2013 um 11.59h mittags. Die Gruppenzuordnung wird am Dienstag 27.10.2015 (spätestens Mittwoch) per Mail bekannt gegeben. Bitte beachtet im Weiteren die Hinweise der Mail(s) an die MAILINGLISTE (mehr dazu siehe etwas tiefer).
Zwischenstand der erreichten Punkte im Übungsbetrieb vom 23.12.2015 (hier als PDF) - vgl. Ankündigung/Erläuterung dazu auf der Mailingliste.
Zulassungsstand nach erreichten Übungspunkten bis einschl. Blatt 11 (hier als PDF) - vgl. Ankündigung/Erläuterung dazu auf der Mailingliste.
Der endgültige Zulassungsstand wurde am Di 09.02.2016 in BASIS/POS eingetragen. Bitte im eigenen Interesse überprüfen und bei Unstimmigkeiten umgehend melden.
Die Ergebnisse der Modulklausur vom 23.2.2016 wurden am 2.3. ins BASIS/POS-System eingetragen. Statistik/Graphiken zum Ausfall sind hier zu finden.
Eine Klausureinsicht fand am Mittwoch 09.03.2016 von 13.00h bis 13.30h im LBH in Raum II.27/27a statt.