Programmierung und Automaten

Werbung
Automaten und Programmieren
wichtiges, anfänglich auch einfaches Konzept der Informatik, vor allem der theoretischen
Informatik, Stoff 5. Klasse
Lichtschalter: Schaltet Licht ein und aus: Zwei Zustände
Ein Schalter: Wirkung des Schalters hängt von dem Ausgangszustand ab und beeinflusst den
Folgezustand
Getränkeautomat: einfachste Form: Knöpfe für Wahl des Getränks, Schlitz zum Einwerfen
der Münzen, es ist uns im Normalfall gleichgültig, wie der Automat funktioniert,
Geldrückgabe
Im folgenden Beispiel ein einfacher Automat, der 50 c und 1 € - Münzen annimmt
(akzeptiert), wozu Sensoren nötig sind, die feststellen, um welche Münze es sich handelt, der
außerdem zwei Getränke zur Wahl anbietet und keinen Resetknopf besitzt.
1€
0,0
50c
0,5
50c
1,0
50c
1,5
1€
Cola
Fanta
Übungen für Schüler:
1.1 a) 50 c, 1 € und 2 € Münzen b) mehrere verschieden teure Getränke
c) Resetknopf d) Extrazucker, kein Becher beim Kaffeautomaten
1.2 Caps-Lock- (Feststell-) Taste
1.3 Waschmaschine (Vorspülen ja/nein, 3 Temperaturen, Schleudern ja/nein)
1.4 Ganglichtschalter
1.5 Markise, die gesteuert von Windmesser und Sonnenfühler den Motor betätigt
1.6 Warnblinklampe, die bei geschlossener Autotür und laufendem Moter auf den nicht
verwendeten Sicherheitsgurt hinweist
1.7 Warnsirene, die bei offener Autotür und aufgedrehten Scheinwerfern alarmiert
Automat
ist im wesentlichen eine Blackbox, was innen passiert, ist im Normalfall egal;
Zustände: Speichern sozusagen, was schon passiert ist, ein definierter Startzustand,
zumindest ein Endzustand, muss nicht erreicht werden
Knöpfe zur Eingabe der Zeichen (Buchstaben eines Alphabets), wobei immer nur 1 Knopf
gedrückt sein kann, Mittels der Knöpfe werden Übergänge von einem Zustand zu einem
anderen ausgelöst
als Ausgabe zumindest eine Möglichkeit, zu informieren, ob ein Wort bestehend aus
Zeichen vom Anfangszustand zu einem Endzustand führt
Endliche Automaten besitzen eine endliche Anzahl von Zuständen sowie ein endliches
Alphabet
E. Hopfenwieser
1/9/
Einstieg in das Programmieren
Professionelle Programmierumgebungen eignen sich im Unterricht nur schlecht für erste
Schritte im Programmieren. Die Bedienung der Programmierumgebung, das Zusammenspiel
der verschiedenen Komponenten wie Programmeditor, Compiler, Debugger oder
Bibliotheken ist nicht auf Anhieb verständlich. Für Einsteiger ist auch die Syntax gängiger
Programmiersprachen wie C/C++ oder Java alles andere als intuitiv. Und mit dem Einzug
objektorientierter Programmierung stellt sich im Unterricht eine weitere Herausforderung: Die
Kernideen objektorientierter Programmierung sind auf das Programmieren im Grossen
ausgerichtet und liegen außerhalb des Erfahrungsbereichs von Schüler/innen und Schülern.
Kurz und gut:
Professionelle Programmiersprachen und Programmierumgebungen sind für die ersten
Programme im Unterricht wenig geeignet.
Wie soll der Einstieg ins Programmieren erfolgen? Es ist den folgenden Anforderungen
Rechung zu tragen:
• Programmiersprache mit kleinem, rasch überblickbarem Sprachumfang
• Visuelle Darstellung des Programmablaufs
• Konkrete, anschauliche Problemstellungen
• Problemstellungen, die nur zu einem geringen Teil aus der Mathematik stammen
Programmieren mit Hilfe von Automaten:
geeignet für die 5. Klasse (aber auch schon für jüngere Schüler)
http://www.educeth.ch/informatik/karatojava/
Kara basiert auf dem Konzept endlicher Automaten, ist alltagsnah und trotzdem ein
theoretisch fundiertes und mächtiges Programmiermodell. Verschiedene
Programmierumgebungen (Kara, MultiKara, TuringKara, JavaKara, Lego Mindstorms)
eröffnen spielerische Zugänge zu grundlegenden Programmierkonzepten mit
unterschiedlichem Schwierigkeitsgrad für allgemeinbildende Schulen bis hin zu
Diplomstudiengängen in der Informatik.
Kara ist vor allem für Schüler/innen gedacht, die gar keine oder nur sehr wenig
Programmiererfahrung haben. Auf spielerische Art und Weise machen sich die Schüler/innen
mit fundamentalen Ideen der Programmierung vertraut. Kara wird erfolgreich auf
verschiedenen Schulstufen (Berufsbildende Schulen, Gymnasien, Fachhochschulen etc.)
eingesetzt.
Lernziele beim Einsatz von Kara
-
Grundlagen der Programmierung. Mit endlichen Automaten kann eine der
fundamentalen Ideen von Algorithmen einfach illustriert werden. Ein Programm ist die
Spezifikation eines eindeutig bestimmten zeitlichen Ablaufes von Ereignissen - analog
zum Regieplan in einem Theater. Die Abläufe müssen auch auf externe Ereignisse
reagieren können. Um ein korrektes Systemverhalten zu garantieren, braucht es eine
statische Spezifikation, welche die korrekten Abläufe von der noch viel größeren Vielfalt
E. Hopfenwieser
2/9/
-
der inkorrekten Abläufe trennt. Kara illustriert diese grundlegende Idee an einfachen
Beispielen. Zudem lassen sich auch Konzepte wie Boole'sche Aussagenlogik und
Programmverifikation (Pre-Conditions, Invarianten etc.) aufzeigen.
Modell der endlichen Automaten. Endliche Automaten sind eines der einfachsten
Berechnungsmodelle der Informatik. Mit ihnen kann das Verhalten vieler aus dem Alltag
bekannter Automaten beschrieben werden. Kara veranschaulicht das Konzept endlicher
Automaten.
Um die Kara-Umgebungen laufen zu lassen, benötigen Sie Java J2SE (Java 2 Standard
Edition) Version 1.2 oder neuer. Dieses gibt es in zwei Varianten: Das Java Runtime
Environment (JRE) dient dazu, Java-Programme auszuführen; das SDK (Software
Development Kit) beinhaltet den Compiler, um Java-Programme zu entwickeln. Das SDK
enthält das JRE.
Um Kara, MultiKara oder TuringKara zu starten, benötigen Sie das Java Runtime
Environment (JRE); für JavaKara benötigen Sie das SDK.
Sun bietet das JRE und das SDK für diverse Plattformen an:
http://java.sun.com/j2se/downloads.html
Es gibt 2 Oberflächen: Beide enthalten alle Umgebungen sowie zu jeder Umgebung eine
Anzahl unterschiedlich schwerer Aufgaben. allkara.jar beinhaltet zusätzlich auch die
Lösungen zu den Aufgaben, allkara-x.jar enthält keine Lösungen.
Auf den meisten Plattformen können Sie nach der Installation des JRE oder des SDK die
Programme durch Doppelklicken auf die allkara.jar-Datei starten.
Bei den ersten Programmierschritten sollte nicht die relativ komplexe Syntax einer Sprache
im Vordergrund stehen. Die Schüler/innen sollen sich zu Beginn auf das Wesentliche
konzentrieren: auf das Denken in Abläufen, auf die Logik und Korrektheit ihrer Programme.
Um dieses Ziel zu erreichen, kann man das Programmiermodell sehr stark einschränken und
statt einer allgemeinen Programmiersprache endliche Automaten benutzen. Diese Idee hat
verschiedene Vorteile:
Die Komplexität von endlichen Automaten ist deutlich geringer als die Komplexität
allgemeiner Programmiersprachen. Das ist gerade für den Einstieg ins Programmieren ein
nicht zu unterschätzender Vorteil!
Der Speicher in Form von Zuständen erübrigt die Deklaration von Variablen und
Datenstrukturen.
Endliche Automaten begegnen uns im Alltag laufend und können etwa am Beispiel eines
Geldautomaten anschaulich erklärt werden.
Ein endlicher Automat verknüpft den Speicher (seine Zustände) mit der Kontroll-Logik (die
Zustandsübergänge). Will der Programmierer einen endlichen Automaten für ein gegebenes
Problem erstellen, ist seine Arbeit einfacher, wenn er am Anfang alle Zustände des
Automaten gedanklich erfasst, die bei der Lösung des Problems auftreten könnten. Er wird so
ermutigt, die Aufgabe „ganzheitlich“ anzugehen. Dieses Vorgehen steht im Gegensatz zur
„konventionellen“ Programmierung. Dort werden Anfänger oft verleitet, Programme
zeilenweise „drauflos zu hacken“ und zusätzliche Variablen, Funktionen etc. schrittweise
einzuführen. Bei diesem Vorgehen vermischt der Programmierer die Phasen der
Problemanalyse und der eigentlichen Programmierung. Beim Erstellen der endlichen
E. Hopfenwieser
3/9/
Automaten muss die Analyse vor der Programmierung erfolgen – was auch für Schüler/innen
mit Programmiererfahrung eine lehrreiche Erfahrung ist.
Kara ist ein Marienkäfer [Reichert 2000], der in einer einfachen grafischen Welt auf dem
Bildschirm lebt. Karas Programme werden rein grafisch mit der Maus als endliche Automaten
erstellt. Der Vorteil davon ist, dass jedes erstellte Programm sofort gestartet werden kann,
weil keine Syntaxfehler wie fehlende Strichpunkte auftreten können. So wird die
Einarbeitungszeit kurz gehalten. Wie sich bei mehreren Einführungskursen bestätigt hat,
können Anfänger/innen typischerweise innerhalb von nur einer Stunde mit der
Programmierumgebung von Kara so gut umgehen, dass sie sich auf das Lösen von
anspruchsvolleren Aufgaben konzentrieren können.
Die Oberfläche:
Kara kennt nur wenige Befehle: einen Schritt vorwärts machen, auf dem aktuellen Feld um
90° nach links oder nach rechts drehen, ein Kleeblatt hinlegen oder aufnehmen. Damit Kara
programmiert werden kann, verfügt er über Sensoren, mit deren Hilfe er seine unmittelbare
Umgebung wahrnimmt. Kara kann bei jedem Zustandsübergang eine beliebige (konstante)
Anzahl von Befehlen ausführen, in Abhängigkeit von den aktuellen Sensorenwerten:
E. Hopfenwieser
4/9/
Stehe ich vor einem Baumstumpf?
Ist links neben mir ein Baumstumpf?
Ist rechts neben mir ein Baumstumpf?
Stehe ich vor einem Pilz?
Stehe ich auf einem Kleeblatt?
Das ist alles, was Kara über die Welt weiß. Er weiß nicht, auf welchem Feld er steht oder in
welche Himmelsrichtung er schaut. Natürlich könnte man Kara mit mehr Sensoren ausrüsten.
Aber die vorhandenen fünf Sensoren reichen aus, um viele interessante und anspruchsvolle
Aufgaben zu lösen.
Da Kara seine Umgebung nicht nur wahrnimmt, sondern auch die Fähigkeit hat, sie zu
verändern, kann er die Umgebung als externen Speicher benutzen.
Die Programmierung:
Am Anfang muss geklärt werden, welche Zustände vorkommen können, welche Sensoren
eingesetzt werden müssen und welche Übergänge es daher geben muss.
Man kann Sensoren zu einem Zustand auswählen, wenn man den Zustand erzeugt,
bzw. wenn man ihn bearbeitet.
E. Hopfenwieser
5/9/
Die Programmierung erfolgt bei Entscheidungen über die Abfrage der Sensoren. Diese
können die Werte Yes, No bzw. Yes or No melden. Die Auswahl trifft man durch
wiederholtes Anklicken. Zusätzlich kann man vom linken Rand noch einige Befehle in die
Zeile ziehen und schließlich muss man nur noch festlegen, welcher Zustand als nächstes folgt.
Programmierung von Schleifen erfolgt über die Rückkehr zu früheren Zuständen.
Beispiele mit unterschiedlichem Schwierigkeitsgrad von leicht bis mittelschwer:
2.1. Kara läuft in einer bestimmten Welt auf einem vorgegebenen Weg und muss dabei alle
Kleeblätter aufheben.
2.2. Kara läuft solange, bis sie vor einem Baum, auf einem Blatt steht.
2.3. Kara läuft solange, bis sie auf das zweite Blatt gelaufen ist.
2.4. Kara muss ein Muster invertieren. Sie läuft auf Kleeblättern, liegt ein Kleeblatt, so wird
es aufgehoben, andernfalls hingelegt. Bei einem Baum endet der Weg! Erschwerung: In
der Reihe darunter sollen dann die Kleeblätter in genau der gleichen Anordnung liegen
2.5. Kara muss ein Muster legen. Jedes 2. Feld in einer Reihe soll ein Kleeblatt enthalten.
2.6. 2 Reihen sollen versetzt mit Kleeblättern belegt sein.
2.7. Kara soll in einem (nicht notwendigerweise geraden) Tunnel aus Bäumen entlang
laufen.
2.8. Kara soll an einem (nicht notwendigerweise geraden) Zaun aus Bäumen unendlich lang
entlang laufen.
2.9. Kara soll an einer Baumreihe entlang laufen, bis sie zu einer Lücke kommt, dann soll sie
wieder auf den Ausgangsplatz zurücklaufen. (Mit einem Kleeblatt markieren! Dabei
dürfen keine Kleeblätter auf ihrem Weg liegen, da sie sonst den Ausgangspunkt nicht
wieder findet.)
2.10. Kara soll aus einem sehr einfachen Labyrinth herausfinden. es sind lauter waagrechte
Abgrenzungen aus Bäumen, bei denen jeweils ein Lücke ist um in die nächsthöhere
Zone zu gelangen. Am Beginn steht sie in der untersten Reihe und schaut hinauf, der
Ausgang aus dem Labyrinth ist ganz oben (Diese ist zuerst immer ein Feld breit, später
können es auch unterschiedlich viele Felder sein)
2.11. Kara soll auf einer rechteckigen Lichtung, die völlig von Bäumen umgeben ist, ein
Kleeblatt finden.
2.12. In der Spalte ganz links stehen lauter Bäume, in den nächsten drei Spalten verteilt Pilze
und zwar genau einer pro Reihe. Kara soll alle Pilze vor die Bäume schieben.
2.13. Kara wird zur Slalomfahrerin: Vor ihr stehen einzelne Bäume in einer geraden Reihe
mit Lücken. Sie beginnt mit einem "Rechtsschwung"
Alles in allem sind das sehr gute Übungen für die Kombination von Schleifen und Abfragen.
Das Verständnis der Schüler für Algorithmik wird an diesen einfachen Problemen
außerordentlich geschult, wie ich aus Versuchen berichten kann. Beim Programm Kara sind
einige dieser Übungen ohne und mit Lösungen enthalten sowie eine Menge weiterer, auch
schwierigerer!
E. Hopfenwieser
6/9/
Einstiege in das Programmieren mit einer Programmiersprache (eventuell 5., besser 6.
Klasse)
Programmieren beschäftigt sich im weiteren Sinn mit Methoden und Denkweisen bei der
Lösung von Problemen mit Hilfe von Computern und im engeren Sinn mit dem Vorgang der
Programmerstellung.
Denken, Problem lösen kann mit den bereits vorgestellten Algorithmen geübt werden, in
weitere Folge wird man aber auf „richtige“ Programmierung übergehen wollen und müssen.
Die folgenden Beispiele verwenden graphische Hilfsmittel, um dem Schüler die
Auswirkungen der Programme vorzuführen. Alle Programme beruhen auf der Idee von
Richard E. Pattis aus dem Jahr 1981: „A Gentle Introduction to the Art of Programming“
Das Grundkonzept besteht darin, eine Figur (Roboter, Hamster, Käfer) so zu programmieren,
dass er in einer zwei- oder dreidimensionalen Welt Aufgaben erledigt. Der Befehlssatz ist
dabei klarerweise sehr eingeschränkt und es gibt keine Ein- und Ausgabe von Zahlen oder
Zeichen. Es ist aber sehr anschaulich, macht Burschen und Mädchen gleichermaßen viel Spaß
und grenzt die Schüler, die mathematisch nicht so begabt sind, nicht aus, wie das leicht
passiert, wenn man, wie oft üblich, vorwiegend mathematische Beispiele bringt.
Dabei gibt es einige nennenswerte Möglichkeiten:
• Robot Karol
• Java Hamster
• KaraToJava
Bei allen drei Programmen gilt, dass es jeweils zwei zusammengehörige Files geben sollte, da
das Programm ja zu einer bestimmten Umgebung passen muss. Es ist aber auch möglich,
mehrere Welten abzuspeichern, die zu einer bestimmten Problemstellung passen. Alle drei
stehen im Internet frei zur Verfügung.
Robot Karol:
Programmiersprache deutsch („Wiederhole“), es gibt beim Programm eine Übersicht aller
Befehle und Strukturen. Man kann Programme schrittweise abarbeiten lassen wie „Kara mit
endlichen Automaten“; es ist aber auch möglich, das Programm vollständig ablaufen zu lassen
Die Welt kann zwei- und dreidimensional dargestellt werden. Für den Roboter Karol gibt es
ein Vielzahl von Einstellungen. Programmteile können durch die Angabe des Befehls
„schnell“ auch sehr schnell (Schnelldurchlauf) ausgeführt werden.
Trenner: Lücken, neue Zeile oder „;“, Kommentare: { }
Fertige Programmteile können in einer Bibliothek abgespeichert werden
Das slowakische Programm wurde von Uli Freiberger ins Deutsche übertragen.
http://www.schule.bayern.de/karol/
3.1. Karol läuft in einer bestimmten Welt auf einem vorgegebenen Weg und muss dabei alle
Ziegel aufheben.
3.2. Karol läuft solange, bis er vor einem Ziegel, auf einer Marke steht.
3.3. Karol läuft solange, bis er auf die zweite Marke gelaufen ist.
3.4. Karol muss ein Muster invertieren. Er läuft auf Marken, liegt eie Marke, so wird sie
gelöscht, andernfalls gesetzt. Bei einem Ziegel endet der Weg! Erschwerung: In der
Reihe darunter sollen dann die Marken in genau der gleichen Anordnung liegen
3.5. Karol muss ein Muster legen. Jedes 2. Feld in einer Reihe soll eine Marke enthalten.
3.6. 2 Reihen sollen versetzt mit Ziegeln belegt sein.
E. Hopfenwieser
7/9/
3.7. Karol soll in einem (nicht notwendigerweise geraden) Tunnel aus Ziegeln entlang
laufen.
3.8. Karol soll an einer (nicht notwendigerweise geraden) Mauer aus Ziegeln lang entlang
laufen.
3.9. Karol soll an einer Baumreihe entlang laufen, bis er zu einer Lücke kommt, dann soll er
wieder auf den Ausgangsplatz zurücklaufen. (Einer Marke setzen! Dabei dürfen keine
Marken auf ihrem Weg sein, da sie sonst den Ausgangspunkt nicht wieder findet.)
3.10. Karol soll aus einem sehr einfachen Labyrinth herausfinden. es sind lauter waagrechte
Abgrenzungen aus Ziegeln, bei denen jeweils ein Lücke ist um in die nächsthöhere Zone
zu gelangen. Am Beginn steht er in der untersten Reihe und schaut hinauf, der Ausgang
aus dem Labyrinth ist ganz oben (Diese ist zuerst immer ein Feld breit, später können es
auch unterschiedlich viele Felder sein)
3.11. Karol soll auf einer rechteckigen Lichtung, die völlig von Ziegeln umgeben ist, eine
Marke finden.
3.12. Karol wird zum Slalomfahrer: Vor ihm stehen Ziegel in einer geraden Reihe mit
Lücken. Bei einem Stoß aus 2 Ziegeln läuft er rechtsherum, bei einem einzigen Ziegel
läuft er links herum. Bei drei oder mehr Ziegeln bleibt er stehen.
Java Hamster und KaraJava:
Beide Programme führen spielerisch in das Programmieren mit Java ein. Bei beiden ist es
möglich, Abfragen, Schleifen und Methoden ohne oder mit Parameterübergabe zu
programmieren. Es steht die komplexe Java-Syntax und natürlich auch alle Datentypen zur
Verfügung. Daher ist die Syntax englisch, das Programm muss abgespeichert und kompiliert
werden und es gibt keine Einzelschrittausführung. Die Verwendung von Booleschen und
Integer-Variablen sowie von Zufallsfunktionen ist ganz natürlich, für die Verwendung von
Fließkommazahlen ist es schon bedeutend schwieriger, Beispiele zu finden.
Das Programm Java Hamster stammt vom deutschen Informatiker Dietrich Boles und ist im
Internet frei erhältlich. Dietrich Boles verwendet es an der Universität Oldenburg zur
Ausbildung von Programmieranfängern. Es gibt nur die 4 Befehle vor(), linksUm(), nimm(),
gib() sowie die „Testbefehle“ vornFrei(), maulLeer(), kornDa(). Das Buch von Boles
„Programmieren spielend gelernt mit dem Java-Hamster-Modell“ enthält einen
ausgezeichneten, didaktischen Aufbau und zahlreiche Übungsbeispiele zu den Konzepten der
imperativen Programmierung (Anweisungen und Programme, Prozeduren und
Kontrollstrukturen, Variablen und Ausdrücke und Rekursionen). Boles möchte eine
Fortsetzung herausgeben, die Objekte, Klassen, Arrays, Vererbungsmechanismen,
Polymorphismus und dynamisches Binden sowie Grundlagen der parallele
Programmierkonzepte mit Prozessen bzw. Threads Interprozesskommunikationm
Synchronisation und Schedulingmechanismen beinhaltet. Es soll im Frühjahr 2004
erscheinen. Da bei Boles nur so wenige Befehle existieren, ist die Ausführung der Programme
oft nicht so einfach zu überblicken, was die Anschaulichkeit verringert.
http://www-is.informatik.uni-oldenburg.de/~dibo/hamster/
KaraToJava benötigt im Allgemeinen keine Installation. Wie beim Java Hamster muss Java
installiert sein, man muss KaraToJava jedoch nicht installieren, es reicht das File allKara(x).jar anzuklicken. Für Schüler zu Hause dürfte es daher etwas leichter sein.
Das Programmieren ist für Schüler aber etwas komplexer. Schon allein vom Anblick her
wirkt es wesentlich schwieriger, aber auch wesentlich „java-näher“; man macht auch
wesentlich häufiger Syntaxfehler. Kara ist ein Objekt mit den entsprechenden Attributen und
Methoden. Die Befehle lauten daher kara.move (), kara.turnRight(), ..., Wahrheitswerte
analog kara.onLeaf(), kara.mushroomFront() usw..
E. Hopfenwieser
8/9/
Der Befehlssatz ist etwas komplexer als beim Java Hamster, da es z. B. Abfragen gibt, ob sich
links oder rechts oder vorne ein Baum befindet, dadurch fällt allerdings die sich sehr
zwanglos ergebende Notwendigkeit weg, selbst entsprechende Funktionen zu programmieren.
Leider kann man viele der Übungen aus dem Buch zum Java Hamster nicht nachvollziehen,
da Kara stets nur ein Blatt auf ein Feld legen kann und analog nur ein Blatt aufheben kann,
andrerseits aber beliebig viele Blätter mit sich tragen kann, wodurch einige gute Beispiele, die
beim Java Hamster möglich waren, wegfallen.
Auf der Homepage findet man eine Reihe schöner Beispiele bis hin zu Rekursionen. Die
Programmautoren Reichert u. a. haben im September 2003 ein Buch herausgebracht:
„Programmieren mit Kara. Ein spielerischer Zugang zur Informatik“
http://www.educeth.ch/informatik
Nach der Phase des Kennenlernens und Einübens der Syntax, der Schulung der
Problemanalyse und der Problemlösefähigkeiten erfolgt der Umstieg auf „normales“ Java,
wobei ich das Buch „Sprechen Sie Java“ von Prof. Hanspeter Mössenböck, Uni Linz,
erwähnen muss. Mössenböck umgeht die anfänglichen Probleme bei der Ein- und Ausgabe
von Daten durch Einführung von zwei neuen Klassen, In und Out. Mit Hilfe der Klasse In
kann von der Tastatur und von Files eingelesen werden; es können Zeichen, Strings, Integer
und Long Integer sowie Float und Double Zahlen, aber auch Boolean Werte, Zeilen oder
ganze Files eingelesen werden. Die Ausgabeklasse Out stellt die entsprechenden
Ausgabemethoden für Standardausgabe oder Files zur Verfügung. Beide liefern auch einen
Boolean-Wert zurück, der über den Erfolg des Befehls informiert und für das Exception
Handling verwendet werden kann.
Mössenböck bespricht in seinem Buch auch die dynamischen Datenstrukturen, die mir ein
besonderes Anliegen sind und auf jeden Fall Stoff im Wahlpflichtfach sein sollten, wobei ich
in einer schwachen, langsamen Gruppe lediglich die Konzepte präsentiert habe, ohne es im
Programm umzusetzen. Selbstverständlich sind in seinem Buch auch die Kapitel der
Vererbung, der Threads und der Ausnahmebehandlung enthalten.
E. Hopfenwieser
9/9/
Herunterladen