Universität Ulm > Fakultät für Mathematik und Wirtschaftswissenschaften > Institut für Angewandte Informationsverarbeitung > Lehre WS2010/11

Systemnahe Software I/ Allgemeine Informatik III

mit integriertem WiMa-Praktikum
im Wintersemester 2010/2011

Aktuelles

  • Die Nachklausur-Ergebnisse stehen jetzt im SLC.
  • Klausureinsicht ist am Mittwoch, 06. April von 15.00 - 16.00 Uhr in HeHo18, E24.
  • Ergebnis der Nachklausur vom 28. März 2011;
  • Notenverteilung
  • Ergebnis der regulären Klausur vom 21. Februar 2011:
  • Notenverteilung

Organisatorisches

Veranstalter

Prof. Dr. Franz Schweiggert, Michaela Weiss, Wolfgang Kaifler

Umfang

2V + 2Ü (6LP)

Zuordnung

Praktische Informatik, Technische Informatik

Termin

Vorlesung: Montag 16-18 Uhr, H3
Übungen: Dienstag 16-18 Uhr, H3

Vorlesungsinhalte und -ziele

Inhalt:

  • Einführung in die Programmiersprache C
  • Dynamische Speicherverwaltung
  • Entwicklungswerkzeuge (make, gdb) im Umfeld von C
  • MISRA-Codieregeln
  • Dateisysteme
  • Systemnahe Programmierung

Ziele:

  • Erwerb von fundierten Kenntnissen der Programmiersprache C, wobei ein besonderer Wert gelegt wird auf den Umgang mit der dynamischen Speicherverwaltung und mit den Zeigern in C. Ziel ist es auch, den versehentlichen Einbau von Sicherheitslücken zu vermeiden.
  • Erlernen des Umgangs mit den klassischen Entwicklungswerkzeugen unter UNIX wie beispielsweise make und gdb.
  • Verständnis der Abstraktion eines Dateisystems, einiger Implementierungen und praktische Erfahrungen mit der zugehörigen System-Schnittstelle.

Vorlesungsmaterialien

Skript

  • Es wird ein komplett ausgedrucktes Skript zur Verfügung gestellt.
  • Elektronisch ist das Skript innerhalb des Universitätsnetzes hier abruftbar: Teil1 Teil2

Beispiele aus der Vorlesung


Rechnerzugang

  • Unsere Server sind über SSH erreichbar.
  • Zugangskennung ist der SLC-Benutzername sowie das zugehörige Passwort.
  • Server sind:
    • thales.mathematik.uni-ulm.de
    • theseus.mathematik.uni-ulm.de und
    • turing.mathematik.uni-ulm.de
  • Beispiel: SLC-Loginname sei testnutzer, der login erfolgt also mit
    • > ssh testnutzer@thales.mathematik.uni-ulm.de

Übungen

Übungsblatt

Lösung

Materialien

Blatt1
Lösung1
Blatt2 Aufgabe1 | lied1.c | lied2.c | makros.h Grün sind alle meine Kleider | Welche Farbe hat die Welt
Blatt3 Aufgabe1 | millionaer.c | sekunde.c | pi.c
Blatt4 Lösung4 | rechte.c | enttarnen.c kalkulation.xls | tarnen.c
Blatt5 Lösung5 | Vier gewinnt
Blatt6 Lösung6 | Vokabeltrainer | RandomVokabeltrainer
Blatt7 Lösung7 | sort.c
Blatt8 Lösung8 | einlesen.c | training.c
Blatt9 Lösung9 | arraylist.tar
Blatt10 Lösung10 | main.c | baum.c | baum.h | Makefile
Blatt11 Lösung11 | calculator.c | makefile readline.txt
Blatt12 Loesung12 | analysis.c
Blatt13 Loesung13 | decrypt.c encrypted_sparc.txt | encrypted_intel.txt
Blatt14 Loesung14

Tutorien

Es finden wöchentliche, ca. 30 minütige Tutorien in Kleingruppen statt. Da hier die Übungspunkte vergeben werden, sind diese Tutorien für alle Nicht-Diplomer wegen der Zulassungsbedingungen zur Klausur absolut notwendig! Natürlich können auch Diplomer an den Tutorien teilnehmen.
Die Einteilung der Tutorien erfolgte in der 1. Übung. Falls Sie noch keinen Tutoriumsplatz haben und noch einen benötigen, wenden Sie sich bitte an die Übungsleiter.

Die SoftI-Tutoren & noch freie Tutorienplätze

  • Robert Rosenbach (robert.rosenbach@uni-ulm.de)
    • Montag, 11.30: 1 Platz frei
    • Dienstag, 13.30: 2 Plätze frei
  • Matthias Hocker (matthias.hocker@uni-ulm.de)
    • Dienstag, 9.00: 4 Plätze frei
    • Dienstag, 9.30: 1 Platz frei
    • Dienstag, 10.30 1 Platz frei
    • Dienstag, 12.00: 3 Plätze frei
  • Syster Böhrs (syster.boehrs@uni-ulm.de)
    • Montag, 14.30: 1 Platz frei
    • Montag, 15.00: 1 Platz frei
    • Dienstag, 14.30: 4 Plätze
  • Johannes Mayer (johannes.n.mayer@googlemail.com)
    • Dienstag, 9.30: 1 Platz frei
    • Dienstag, 10:30: 4 Plätze frei
  • Peter Stinner (peter.stinner@uni-ulm.de)
    • Montag, 11.00: 4 Plätze frei
    • Dienstag, 8.00: 1 Platz frei
    • Dienstag, 8.30: 4 Plätze frei
  • Thomas Leichtle (thomas.leichtle@uni-ulm.de)
    • alle Plätze belegt
  • Mandana Riedel (mandana.riedel@uni-ulm.de)
    • alle Plätze belegt

Ort

  • Die Tutorien finden in den Poolräumen o27 211 und 213 statt

Klausur

Studiengänge auf Diplom

  • Die Prüfung wird mündlich abgehalten. Sie vereinbaren individuell einen Termin mit dem Dozenten
  • Hierfür werden keine Übungspunkte vorgeschrieben. Der Übungsbetrieb ist dennoch sehr anzuraten

Bachlor Physik (2 LP)

  • 50% der Übungspunkte auf jedem Blatt mit Abgabetermin bis zum 21.12.2010 (inklusive) erforderlich.

Alle anderen Studiengänge

  • Für die Teilnahme an der Klausur werden 50% der Übungspunkte benötigt
  • Die Klausur findet am 21.02.2011 von 14 bis 16 Uhr in H20 und H22 statt.
  • Die Nachklausur findet am 28.03.2011 statt.

Wima-Praktikum

  • 50% der Übungspunkte sind erforderlich

Forum

Was Sie schon immer anonym los werden wollten:

Wann sind die Ergebnisse der Klausur vom 28.3 online?^^
Hallo,
ich denke die Klausurergebnisse werden bis ende dieser Woche in SLC und Hochschulportal einzusehen sein.
(WK)

Um wieviel Uhr ist die Klausur am 28.3.11?
Wie bei aktuelles steht, findet die Nachklausur am Montag, den 28.03.2011, von 14.00 - 16.00 Uhr (Klinikhörsal; Uni Ost; O23) statt.

Hallo,
wird es die Lösung der Klausur noch online geben?
Viele Grüße
Hallo,
nein, wir werden die Klausur nicht online stellen.
MW

Was meint ihr denn im SLC mit: 200 von 500 Punkten?
Im SLC kann man die Noten leider nicht in der gewohnten Schreibweise abspeichern. Daher steht 100 für die 1,0; 130 für eine 1,3; 170 für eine 1,7 und 200 für 2,0...
MW

Danke, dass das Korrigieren so schnell ging!! Ihr seid super!
War auch eine echt schöne, informative Vorlesung mit sehr guter Übung!
Über solches Feedback freuen wir us natürlich ungemein! Ihr wart aber auch wirklich eine tolle und motivierte Gruppe! Viel Erfolg im weiteren Studium!
MW

Wo werden die Ergebnisse eingetragen? SLC oder LSF oder beides?
Die Ergebnisse werden im SCL und im LSF eingetragen. Im LSF stehen die Noten bereits. Das SLC folgt im Laufe des Tages.
MW

Danke, dass das korrigieren so schnell ging!! Ihr seid super!
War auch eine echt schöne, informative Vorlesung mit sehr guter Übung!
Danke, auch über solches Feed-back freuen wir uns!!....
..wir hoffen Ihr bleibt uns treu :)
(WK)

Ja wann ist die Klausur denn jetzt fertig korrigiert? ;-)
Die Klausur ist fast fertig....in kürze wird das Ergebins im SLC bereit stehen
(WK)

Wann kann man denn mit Ergebnissen der Klausur rechnen?
Wird just in time korrigiert....
...dauert nicht mehr lange ;)
(WK)

Hallo,
muss man für die Klausur wissen, wie man auf Funktionen aus dynamisch-linkbare Bibliotheken zugreift? (also nicht nur das Grundprinzip, sondern die konkreten Funktionsaufrufe?)
Wenn dementsprechend was gefragt wird, werden diese speziellen Funktionssignaturen in der Klausur angegeben.
(WK)

Hi,
wann wird eigentlich endgültig physikalisch auf die Platte geschrieben? Erst nachdem der jeweilige Referenzzähler durch close()-Aufrufe im KIT auf 0 gesunken ist oder auch mal "zwischendurch"?
grüße
Also geschrieben wird ständig auf die Platte.
Allerdings kann ich erst nach einem fsync() sicher sein, dass die Daten auf der Platte sind.
Für fsync() sind aber kontextwechsel notwendig, was mit Aufwand verbunden und dementsprechend teuer ist. Sollte also nicht nach jedem Byte passieren ;)
(WK)

Hallo,

ich habe mir mal die Implementierung von strcat in der glibc angeschaut. Dabei sieht die Schnittstellenvereinbarung wie folgt aus:

char *
strcat (dest, src)
char *dest;
const char *src;
{
[ hier kommt die Implementierung ]

Was ist der Sinn davon, die Datentypen der Argumente vor der geschweiften Klammer anzugeben?
das entspricht K&R-C und wird auch heute noch akzeptiert. Die sogenannten Prototypen, bei denen die Datentypen in der Parameterliste gleich genannt werden, kamen erst mit der ersten Fassung von ISO-C heraus.

Der Code ist wohl etwas älter :)
(WK)

Hallo,
ich kann mich noch nicht für die Klausur anmelden, ist es nur möglich, nachdem die Vorleistung vorhanden ist? Wann wird die Vorleistung eingetragen?
Hallo,
ja die Anmeldung zur Klausur kann erst erfolgen, wenn wir dem Studiensekretariat die erfolgreiche Erfüllung der Vorleistung bekanntgegeben haben. Der genaue Ablauf der Anmeldeformalitäten steht jetzt unter "Aktuelles".
MW

Hallo,
Wieviele Übungsblätter wird es geben?
Hallo,
es wird insgesamt 13 bewertete Übungsblätter geben, die in die Vorleistung einfließen. Außerdem werden wir ein 14. Übungsblatt stellen, das zwar nicht zur Vorleistung zählt, jedoch klausurrelevant ist.
MW

Hallo,
wie viele Punkte benötigt man für die Vorleistung?
Danke!
Hmmm...gute Frage...
genau steht das mit dem Letzten Übungsblatt fest.
(WK)

Welche Hilfsmittel sind zur Klausur zugelassen und woher kann man Altklausuren bekommen?
Zur Klausur sind KEINE Hilfsmittel zugelassen. Altklausuren werden wir nicht zur Verfügung stellen, aber durch die Übungsblätter habt ihr ja bereits Einblicke in die Art und Weise der Fragestellungen erhalten. Wobei die einzelnen Programmieraufgaben natürlich nicht so umfangreich sein werden.
MW

Ich bin Physiker und haben nun die erwünschten Punkte zusammen. Wie bekommt man das "Zertifikat" ,dass man die 2LP erreicht hat?! Oder wird das automatisch ins Hochschulportal eingetragen?
Hallo, die Eintragung über die Erreichung der 2LP veranlassen wir. Du musst dich also um nichts weiter kümmern. Und du weißt ja anhand deiner Punkte, ob du 50% erreicht hast oder nicht.
MW

Hallo,
ist die Klausur offen?
Ja, die Klausur ist offen.
MW

Hallo,
was ist eigentlich der Sinn der Definition des Typs "size_t"?
grüße
Hallo,
Hmm....Beispiel:
Für irgendwelche Berechnungen wird ein Programm für 64-Bit kompiliert, da die Zahlen eben so groß sind. In dem Programm wird >int< verwendet - Passt also...
Jetzt soll das Programm auf einer 32-Bit Maschine übersetzt werden..Nun ist es aber nur ein 32-Bit Integer, was leider nicht reicht.
Jetzt kann man den Quelltext durchgehen und den Integer überall anpassen - ist aber leider aufwändig und fehlerträchtig. Darum definiert man in so einem Fall einfach einen neuen Datentyp z.B 'myInt':
typedef int myInt;
Der kann dann einfach den Gegebenheiten angepasst werden.

size_t ist nur ein Alias; das _t deutet auf 'type' hin.
in 'stddef.h'
ist 'size_t' definiert als "typedef unsigned long size_t;"
(WK)

Hallo,

mich würd noch die ISBN von dem in der Letzten Vorlesung angesprochenen Buch "Objektorientierte Programierung in C" Interessieren...
Die ISBN dieses Buches lautet 3-446-17426-5. Allerdings ist das Buch von '94 und daher nicht so einfach herzubekommen. Dafür ist jedoch die englische Fassung als Ebook frei verfügbar (z.B. unter http://www.planetpdf.com/codecuts/pdfs/ooc.pdf).
MW

Hallo,
mal eine vorlesungs-, aber nicht fachfremde Frage:
Ich dachte es wird langsam mal Zeit sich, zumindest neben Windows, irgendeine Linux-Distribution auf den Rechner zu spielen.
Genau darauf zielt nun meine Frage ab.
Also insbesondere an das Vorlesungsteam:
Was könnt ihr aus fachlich, kompetenter Sicht für eine Distribution empfehlen?
Hallo,
das ist im Prinzip eine Geschmacks- und Glaubensfrage. Jede Distri hat ihre Vor- und Nachteile.
Wir in der Abteilung setzen aufgrund der Einfachheit, Stabilität und Paketverwaltung Debian/Ubuntu ein. Aber auch z.B. OpenSuse ist für Umsteiger sicherlich nicht zu verachten.
Am besten mal mit einer Live-CD ausprobieren.
(WK)

Werden die Punkte im SLC eingetragen? Bei mir ist bisher nur Blatt "2" zu finden, allerdings mit Datum und Punktzahl von Blatt 1.
Die Punkte tragen die Tutoren ein. Bitte frage da doch mal nach
(WK)

Stehen noch ausgedruckte Skripte zur Verfügung? Wenn ja, wo?
Ja, es gibt noch einige wenige Skripte. Diese können bei Bedarf bei uns in der Helmholtzstraße 18 (E.24) abgeholt werden. (MW)

Ist nun jeden Dienstag die Übung und nur montags die Vorlesung?
Genau. Letzte Woche war nur eine Ausnahme. In Zukunft: Montags Vorlesung und Dienstags Übung.
(WK)

Mit welchen Zugangsdaten kommt man per ssh auf die Rechner im Mathe-Pool (thales....)? Mit meinem SLC-Account (und SGI und kiz) funktioniert es nicht. - Danke

Wie lautet die Raumnummer des Pools in dem die Tutorien stattfinden?
Die Angaben sind nun auf dieser Homepage zu finden...
(WK)

Tipp für alle, die vim benutzen wollen: Zum Eingewöhnen empfiehlt es sich, einmal den vimtutor durchzuarbeiten. Einfach auf der Konsole vimtutor eintippen und den Anweisungen folgen :-)
Da bleibt nicht mehr viel zu sagen - Ja :)
Vielen Dank!
(WK)

Wird die Prüfung für die Diplom-Studiengänge, in denen bisher eine mündliche Prüfung angeboten wurde weiterhin mündlich angeboten oder wird für uns künftig die Klausur als schriftliche Prüfung angeboten?
Die Prüfung für die Studiengänge nach Diplom bleibt (bis auf weiteres) mündlich.
Für alle anderen Studiengänge ist die Prüfung schriftlich abzulegen.
(WK)

Hallo, wann wird das Tutorium vergeben?
mfg
Hallo,
die Tutorieneinteilungen finden in der ersten Übngsstunde - also am Dienstag - statt
Viele Grüße
(WK)

Wann wird es das Übungsblatt für die Übungen nächste Woche geben (zwecks Vorbereitung)?
Das erste Übungsblatt wird es am Dienstag geben. Danach bleibt eine Woche zu Bearbeitung zeit
(WK)

Kann man sich nachdem man sich im SLC zu der Veranstaltung WiMa-Praktikum I angemeldet hat auch wieder abmelden, wenn man kein Interesse mehr hat, den Trading Room zu besuchen?
Hi,
Ja, bei Abmeldung zur Vorlesung am besten eine kurze Mail an slc at uni-ulm dot de
(WK)

Gibt es Literaturempfehlungen zur Programmiersprache C bzw. zur Vorlesung??
Ich denke der Stoff ist im Skript sehr ausführlich erleutert, so dass keine weitere Literatur direkt angegeben wird.
Hinweise zur weiteren Vertiefung wird es in der Vorlesung bzw. den Übungen geben.
(WK)

Gibt es das Skript auch elektronisch? Dann muss man weniger Papier mit sich rumschleppen.
Hey,
ja, das Skript wird auch in elektronischer Form zur gegebenen Zeit zur Verfügung gestellt.
-Wolfgang-

Hallo,
Wann beginnt denn nochmals die Vorlesung?
mfg
Die Vorlesung beginnt am Di, 19. Oktober 16.00Uhr in H3
#Wolfgang

Sonstiges

Folien & Tutorials

Software & Tools

Dokumentationen & Standards