01613 - Einführung in die imperaive Programmierung
Persönliches, subjektives Volesungsfazit
Aua, aua, aua. Erstmal: Vorlesungssprache ist *Trommelwirbel* Pascal! Der mitgelieferte Compiler ist FPC und die mitgelieferte IDE ist ein Oldschool DOS Fenster. Großartig nostalgisch! Ich empfehle FPC, sowie Notepad++ als Editor. Nun zur Vorlesung: die Skripte sind sehr verwirrend eigenartig furchtbar schwer zu lesen. Schonmal if/then/else, sowie while oder for-Konstrukte "formal/mathematisch" eingeführt? Ich musste ein paar mal auf das Deckblatt blättern ob ich nun wirklich "imperative Programmierung" lese oder irgendwas anderes. Und das obwohl ich damals mit Pascal und Delphi angefangen habe...
Alles in allem deutlich schwerer als 1618. Das liegt aber wahrscheinlich an den Inhalten, da man hier weniger die Programmierung lernt, als die darunterliegenden Konzepte der Datenstrukturen, wie z.B. (doppelt) verkettete Listen, Operationen auf diesen, Queues, Baumstrukturen und Rekursion. Ein Blick auf den Inhalt verrät den Schwerpunkt.
Sehr viel Wert wird auf den korrekten Programmierstil und formale Testmethoden gelegt, was ich durchaus gut finde. Das ist wahrscheinlich auch Sinn und Zweck der ganzen Geschichte, da 1613 wohl die erste "Programmier-Vorlesung" für Studienanfänger ist. Man lernt mit einer Sprache -wo man (fast) alles zu Fuß macht- die Grundzüge der Programmierung, den richtigen Programmier- und Kommentierstil, sowie das Arbeiten auf verschiedenen Datenstrukturen und (durchaus sehr intensive) Testvefahren für die erstellten Programme. Alles in allem das Rüstzeug um sauberen und wartungsfreundlichen Code ohne Schleifen- und Anweisungs-Leichen zu produzieren. Auch als FIAE kann man hier durchaus was lernen. Oder bin ich der Einzige, der von Knoten/Kantenüberdeckung in seiner Ausbildung nichts gehört hat?
Literaturempfehlung
Keine. Wer Probleme mit Pascal hat, kann sich ein beliebiges Pascal-Buch aus der Bibliothek schnappen. Wenn diese nicht längst du Staub zerfallen sind oder von C++/Java/.NET Büchern gefressen wurden. Ein Kommilitone, der vorher Wirtschaftswissenschaften studiert hat benutze das Buch von Canneyt (siehe Literaturempfehlung), da er mit PASCAL überhaupt nicht zurecht kam. Ich kenne es nicht und habe eher das Gefühl, dass Ihr euch lieber etwas besorgen solltet was die Konzepte der verwendeten Datenstrukturen (Binäre Bäume, Rekursion, verkettete Listen, ...) und Testverfahren abdeckt.
Klausur- und Organisatorisches
Stand WS 2009/2010: Klausur ist duraus anspruchsvoll, wie ich finde. Das Papier-Programmieren mit Java in 1618 war schon anstrengend, aber versucht mal mit der Datenstruktur einer doppel verketten Liste auf Papier zu arbeiten... und auch noch mit Pascal. Aber alles machbar. Korrigiert wird bis zur sicheren Bestehensgrenze von 4.0 (d.h. 50% der Klausurpunkte).
Vorlesungs-Inhalt
Kurseinheit 1
Einführung in Problemstellungen, die mittels Programmierung, bzw. Programmen gelöst werden sollen. Konzepte verschiedener Programmiersprachen, Rechnerarchitektur und Systeme, Datentypen, Anweisungen, IO und Variablen.
Kurseinheit 2
Schleifen, Arrays, Verbundtypen, Funktionen und korrekter Programmierstil (wichtig!)
Kurseinheit 3
Prozeduren, Blöcke, Lebensdauer, Zeiger, lineare Listen und erweiterer Programmierstil.
Kurseinheit 4
Binäre Bäume, Rekursion, Programmierstil, die 3. Zerlegung und Verfeinerung.
Kurseinheit 5
Analytische Qualitätssicherung, Kontrollflussorierntierte Testverfahren (Zweig- und Knotenüberdeckung, Boundary-Interior, ...), Black-Box-Testverfahren, funktionale Äquivalenzklassen. Regressionstests, dynamische und statische Testverfahren (Reviews und statische Analysatoren).