32561: Entwurf und Implementierung von Informationssystemen

Kursbeschreibung

Der Kurs gliedert sich in drei Teile

  1. Programmieren in C: 3 Kurseinheiten, insg. 314 Seiten.
  2. Algorithmen und Datenstrukturen: 4 Kurseinheiten, insg. 306 Seiten
  3. Objektorientierter Systementwurf: 2 Kurseinheiten, insg. 341 Seiten

Einiges davon ist nicht klausurrelevant, so dass man am Ende bei etwa 600 Seiten zu memorisierendem Text landet. Das Schwierige an dem Kurs ist der schwer zu verfolgende rote Faden und die Tatsache, dass nicht mehr viele in reinem C programmieren. Das, mit der Einführung eines Pseudocodes, der an PASCAL angelehnt ist, macht bereits den ersten Teil des Skripts sehr unüblich. Pointer, Speicherallokation, Datentypen, rekursive Programmierung: alles wird auf ca. 320 Seiten abgefrühstückt. Schon an diesem Punkt fand ich eine Überarbeitung des Kurses zu Gunsten von Struktogrammen (statt Pseudocode) und C++ (statt C) wirklich sinnvoll, um den gesamten Kurs in die Neuzeit zu hieven.

Algorithmen und Datenstrukturen hingegen sind nichts Neues. Große Teile gab es schon im Bachelor-Informatikstudium. Für Studenten der Wirtschaftsinformatik könnte das jedoch ihr erster Kontakt mit Komplexitätsklassen und Algorithmen sein (?).  Lineare Datenstrukturen, statische Felder, Listen mit Zeigern, Stapel, Queues, Records, Suchalgorithmen wie die binäre, sequentielle und interpolative Suche, Sortieralgorithmen wie Bubble, Quick, Insert, Selection, ihre Komplexität und Verbesserung, Baumstrukturen, Traversierung, Suchbäume, Rekursion, Speicherungsformen (sequentiell, verkettet, gestreut) sind nur Stichworte aus dem Inhaltsverzeichnis. Dieser Teil des Skripts ist mit der komplexeste. Es reicht hier nicht grundlegend zu wissen, wie etwas funktioniert. Man sollte Suchbäume und alle Sortieralgorithmen auch aus dem Kopf auf Papier (in Pseudocode und C) bringen können.

Bei dem objektorientierten Systementwurf geht es es um grundlegende Dinge der Objektorientierung. Themen sind Vererbung, Polymorphie, Pakete, Klassen, Entwurfsmuster, Schichten-Architekturen, etc. Jeder, der schon einmal in Java oder in C++ entwickelt hat, hat hier keine Probleme zu erwarten. Dafür gibt's in der Klausur aber auch die wenigsten Punkte ...

Und jetzt kommen wir zum schwierigen Teil. Alle drei Teile werden in der Klausur abgefragt.

Klausur

Die Klausur besteht aus drei bis vier Teilen mit ähnlicher Gewichtung. Der "einfachste" Part besteht aus einem W/F-Frageteil für den Bereich des objektorientierten Systementwurfs. Vorher musste man 6 von 10 Fragen richtig beantworten, um 10 Punkte zu erhalten (Bestehensgrenze), maximal waren 20 Punkte möglich. Die Fragen sind detailliert ("Eine zentrale Aufgabe des objektorientierten Entwurfs ist die Spezifikation ihrer Architektur") und stehen durchaus auch nur in überlesbaren Nebensätzen im Skript. Mittlerweile gilt die 2 Punkte pro richtiger Antwort-Regel.

Der nächste Teil ist Programmierung in dem PASCAL-Pseudocode. Hier muss man eine Algorithmus (Baum-Traversierung, Sortier-Algorithmus, etc.) im Pseudocode nachprogrammieren. Es ist quasi ein Zusammenschluss des Algorithmen- und des Pseudocode-Teils. Hierzu gibt es dann noch die ein oder andere Frage zum Thema ("Was ist eine Sentinel-Sortierung?"), die dann noch 10-15 Punkte bringen.

Der letzte Teil ist Programmieren in C. Man bekommt eine Aufgabe gestellt und darf sie dann auf Papier entwickeln. Daneben stehen einige C-typische Fragen ("Was ist der Unterschied zwischen malloc und calloc?") und ein paar C-Nebenkriegsschauplätze, die dann ebenfalls 10-15 Punkte wert sind.

Persönlich fand ich die Klausur recht fair gestellt, auch wenn ich das Ergebnis noch nicht kenne und auch mit keinem guten rechne. Ich habe das Gefühl mich etwas falsch vorbereitet zu haben.

Update: Ergebnis ist mittlerweile da. Ich werde keine Klausureinsicht nehmen, da ich mit dem Ergebnis eigentlich zufrieden bin. Scheint mir wohlwollend nach dem Motto "Ah, ich sehe er hat's wohl kapiert, auch wenn er nicht 100% genau ist!" bewertet worden zu sein. Im Gegensatz zu anderen Kursen, wo für die Wiedergabe in eigenen Worten mit Punktabzug bestraft wird.

Update 2: Klausurstatistik

  • 1,0: 0
  • 1,3: 0
  • 1,7: 1
  • 2,0: 0
  • 2,3: 1
  • 2,7: 4
  • 3,0: 6
  • 3,3: 6
  • 3,7: 3
  • 4,0: 2
  • 5,0: 10 (!)

Der Schnitt ist 3,8! Bei einer Durchfallquote von 33,33%! Autsch.

Einsendeaufgaben

Das Bestehen der Einsendeaufgaben ist Voraussetzung für die Teilnahme an der Klausur (eine von zwei muss bestanden werden). Die erste EA war das Entwickeln eines Versicherungsprogramms zur Verwaltung von Versicherungsverträgen (RECORD in C und Speichern in Datei). Die Aufgabe war nicht ohne und ich habe den ein oder anderen Tag dran gesessen. Der Code ist auszudrucken und einzusenden! Am Ende lagen 18 Seiten im Briefumschlag. Meine Gedanken sind beim armen Korrektor, der von 50 Studenten den Code auf Papier prüfen darf.

PS: Das EA-Ergebnis spiegelt auch hier keinesfalls das Klausurergebnis wieder.

Die zweite EA war etwas einfacher. Hier musste eine Suchbaum-Struktur in C nachgebildet werden. Mit Zeigern zum Nachfolger. Etwas hakelig, geht aber.

Alles in allem sind die EAs kein Hinderungsgrund, um an der Prüfung teilnehmen zu können.

Literaturempfehlungen

Derzeit wird wohl Grundkurs C von Jürgen Wolf empfohlen (habe ich nicht gelesen, Rezensionen scheinen aber gut zu sein). Ich bin damals mit den Büchern von Erlenkötter gut gefahren, Buch ist jedoch von 1999. Algorithmen und Datenstrukturen hatte ich noch aus dem Bachelor-Studium, wobei ich dieses zwar gut, aber auch verdammt teuer finde. Letzteres würde ich mir vielleicht sparen und mir den Kram zu dem Thema aus dem Netz zusammensuchen (oder das Buch gebraucht kaufen).

Fazit

In der Retrospektive decken die EA den Stoff dann doch ganz gut ab. Mein persönliches Problem ist das Paradigma, welches mir damals von meinem Mentor in meiner Ausbildung zum Anwendungsentwickler mitgegeben wurde: "Du musst nicht alles wissen, Du musst nur wissen wo es steht, wenn Du es mal brauchst!" Und das stimmt auch, gilt aber nur für die Praxis. In der Klausur musst Du leider dann doch wieder alles wissen. Während Du in der EA noch irgendwo nachschlagen kannst, geht das in der Klausur nicht mehr. Das muss man sich bewusst machen.

Und ist bei der Stoffmenge - sofern man nicht hauptberuflich in C entwickelt - am Ende eine Art Glücksspiel, wenn es um Noten < 3 geht. Jedoch weit entfernt von dem Baumöl-Lotto (Danke für den Begriff an den Kommilitonen aus dem Düsseldorfer Hörsaal bei der Klausur!) von Business/IT-Alignment, Business Intelligence oder IT-Governance. Ein Bestehen sollte, mit etwas Fleiß, in jedem Fall drin sein.

Kurs ist veraltet, aber lesbar. Kursbetreuung ist nicht besonders aktiv, aber vorhanden. Zur Klausur kann ich noch nichts sagen. Abraten kann ich von dem Kurs nur denen, die eine grundsätzliche Abneigung gegen Programmierung haben. Ansonsten Daumen hoch. Einer der angenehmeren Kurse an der FU.

Buchempfehlung

Beitrag kommentieren