Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, IAI, Vorlesungen, WS 2011/2012, Systemnahe Software I
Ergebnisse zur ersten schriftlichen Prüfung
Hinweise

Im folgenden finden sich die Histogramme und Kommentare zu den Punktewerten, die bei den einzelnen Aufgaben erreicht worden sind. Ich veröffentliche dies fortlaufend entsprechend dem Vorankommen beim Korrigieren. Insgesamt gab es 51 Teilnehmer bei der Klausur.

Die Klausur selbst steht als PDF zur Verfügung.

Aufgabe 1
1 1 2 1 2 1 5 4 5 11 7 7 4
5 6 7 8 9 10 11 12 13 14 15 16 17 18

Zu den typischen Problemen gehörte (g) (0666 & ~022 = 0644). Da die Teilaufgabe (e) nicht präzise genug formuliert war, habe ich das jetzt bei der Bewertung berücksichtigt, was zu einigen Punktezuwächsen geführt hat. Entsprechend haben jetzt vier Teilnehmer die volle Punktezahl bei dieser Aufgabe.

Aufgabe 2
2 1 2 3 6 6 14 15 2
9 10 11 12 13 14 15 16 17 18

Zu den typischen Problemen gehörte (c), da dort leider allzu häufig kein enum-Datentyp für das Geschlecht gewählt wurde, und (d), da dort gerne das typedef vergessen wurde. Zwei Teilnehmer erreichten die volle Punktezahl bei dieser Aufgabe.

Aufgabe 3
2 1 4 6 7 14 12 5
5 6 7 8 9 10 11 12

Zu den typischen Problemen gehörte die letzte Zeile bei (a), da auch BAR noch letztlich zu fb ersetzt wird, und dann (b), da offenbar einige mit dem entsprechenden Grundstoff aus der Mittelstufe kämpften und andere wichtige Klammern vergaßen. Insgesamt fünf Teilnehmer hatten in dieser Aufgabe alles richtig.

Aufgabe 4
1 1 1 1 1 3 2 5 12 24
0 1 2 3 4 5 6 7 8 9 10 11 12

Diese Aufgabe hat fast allen reichlich Punkte beschert. Nicht weniger als 24 Teilnehmer haben die volle Punktzahl erreicht. Einige haben jedoch die Aufgabenstellung zu (b) nicht genau gelesen und die zu erzeugenden Dateien statt den zu übersetzenden Dateien genannt.

Aufgabe 5
1 1 2 3 3 5 4 8 10 8 6
0 1 2 3 4 5 6 7 8 9 10 11 12

Hier gingen nicht wenige Punkte verloren, weil die Aufgaben nicht sorgfältig gelesen worden sind: bei (a) hilft es nicht, darüber zu philosophieren, warum es scheitern kann, wenn die Datei nicht existiert, und bei (c) sind Gründe uninteressant, die die Existenz der Datei voraussetzen. Auch steht bei (b) nirgends, wie die Datei eröffnet wurde, und nirgends wird erwähnt, dass der read-Aufruf, um den es geht, unmittelbar auf das open folgte. Außerdem wurden bei (c) einige spannende Theorien über Sticky-Bits ausgebreitet, die hier jedoch wenig halfen. Trotz all dieser Schwierigkeiten schafften es sechs Teilnehmer, hier die volle Punktzahl mitzunehmen.

Aufgabe 6
5 1 7 6 1 4 1 1 3 1 3 11 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Dies war die erste Aufgabe, bei der es öfters leere Seiten gab oder Lösungen, bei denen sich kaum Punkte vergeben ließen. Da werden undefinierte Zeiger verwendet, write mit 'x' als zweiten Parameter aufgerufen, überflüssigerweise der gesamte Inhalt der Datei eingelesen, gerätselt, wie sich die Länge einer Datei ermitteln lässt, die stdio trotz Verbot verwendet, zeichenweise geschrieben trotz Verbots und in erstaunlich vielen Lösungen findet sich die Verwendung von lseek, obwohl dieser Systemaufruf in dieser Aufgabe überhaupt nicht benötigt wird und auch nichts bringt. Sieben Lösungen waren dabei, wo ich beim besten Willen keinen Grund für einen Punktabzug finden konnte.

Aufgabe 7
3 1 2 1 4 2 1 4 5 3 7 7 11
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Hier haben einige wieder Punkte gewinnen können, jedenfalls sieht es hier besser aus als bei Aufgabe 6. Zu den Problemen gehörten fehlende Parameter bei (b) und teilweise sehr chaotische Konstruktionen in (c) und/oder (d). Einige dachten sogar, dass es genüge, eine char-Variable an die Stelle eines Operators zu setzen, um genau diesen zur Anwendung zu bringen. Wenige haben daran gedacht, dass double-Werte mit "%lf" bei printf auszugeben sind und noch weniger Teilnehmer dachten an den notwendigen Cast bei printf(" %c ", (char)expr->operator). Immerhin erreichten 11 Teilnehmer die volle Punktzahl.

Gesamtergebnis
1 1 1 1 2 4 7 4 7 5 7 7 4
30 35 40 45 50 55 60 65 70 75 80 85 90 95

Nach dem vorläufigen Endergebnis der Korrektur liegen drei Ergebnisse unter 50 Punkte und haben somit nicht bestanden. Das beste Ergebnis liegt bei 99 Punkten, das zweitbeste bei 98. Insgesamt haben 11 Teilnehmer mindestens 90 Punkte erreicht. Der Median liegt bei 78 Punkten.

Die Klausureinsicht ist am Donnerstag, den 1. März, von 14:00 bis 16:00 Uhr im Raum E20 in der Helmholtzstraße 18.