Peter Moser, 9760209 - Professur für Didaktik der Informatik
Transcrição
Peter Moser, 9760209 - Professur für Didaktik der Informatik
Hauptseminar "Didaktik der Informatik" im SoSe 2006 an der Universität Klagenfurt Leitung: Prof. Dr. Peter Hubwieser Komplexitäts- und Berechenbarkeitstheorie im Informatikunterricht? Diskussion des Bildungswertes und möglicher Lernwege Hauptseminar: Didaktik der Informatik Univ. Prof. Dr. Peter Hubwieser SS 2006, Universität Klagenfurt Autor: Dipl.-Ing. Peter Moser Matr.-Nr.: 9760209 Abstract: Die Komplexitäts- und Berechenbarkeitstheorie als theoretische Grundlage der Informatik sollte unbedingt auch im schulischen Unterricht behandelt werden. In den aktuellen Lehrplänen kommt sie jedoch so gut wie nicht vor. Wird sie dennoch im Unterricht behandelt, so müssen einige didaktische Überlegungen und Reduktionen beachtet werden. Außerdem eignet sich nicht jede Schulstufe für dieses komplexe Thema. Als Beispiel einer Unterrichtssequenz werden zwei Sortieralgorithmen vorgestellt und dann auf ihr Laufzeitverhalten hin untersucht. 1 Einleitung Das Ziel der Komplexitäts- und Berechenbarkeitstheorie ist es, Aussagen über den Aufwand bei Berechnung von algorithmischen Problemen machen zu können. Es handelt sich dabei um grundlegende theoretische Aspekte der Informatik. In Kapitel 2 gehe ich darauf ein, ob es in der Schule notwendig ist, das Thema Komplexitäts- und Berechenbarkeitstheorie zu behandeln – und wie weit dies bereits jetzt schon geschieht. Kapitel 3 liefert Überlegungen zu Besonderheiten bei der Vermittlung dieses Stoffes an Schülerinnen und Schüler und Vorschläge, welche Schulstufen überhaupt dafür geeignet wären. Außerdem wird eine mögliche Unterrichtssequenz vorgestellt. Eines vorweg: die Diskrepanz zwischen Notwendigkeit der Behandlung der Komplexitätstheorie, aktuellen Lehrplänen und tatsächlichem Unterricht ist sehr groß… HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -1- 2 2.1 Komplexitäts- und Berechenbarkeitstheorie in der Schule Notwendigkeit der Behandlung im Unterricht Es stellt sich die Frage, ob die Komplexitäts- und Berechenbarkeitstheorie im Unterricht behandelt werden soll. Das hängt wohl davon ab, ob es sich dabei um ein wichtiges Kerngebiet der Informatik handelt oder vielleicht doch nur um eine Disziplin für Theoretiker. Die Komplexitätstheorie ermöglicht es, Aussagen über die Durchführbarkeit von Algorithmen bzw. über die Existenz eines Algorithmus zur Lösung eines bestimmten Problems zu machen. Bei nicht-trivialen Problemen ist es von Bedeutung zu wissen, ob eine Lösung existiert und ob diese Lösung in angemessener Zeit berechnet werden kann. Somit haben die Ergebnisse der Komplexitätstheorie konkrete Auswirkungen auf die Entwicklung von Algorithmen für praktische Anwendungen. [Weg03] Die Berechenbarkeitstheorie beschäftigt sich mit der Frage, ob für konkrete Aufgaben überhaupt Lösungen existieren (können). Noch vor einigen Jahrzehnten herrschte der (Irr-)Glaube, dass es irgendwann für alle denkbaren Problemstellungen auch angemessene Lösungen geben würde. Dass dem nicht so ist, kann die Berechenbarkeitstheorie zeigen. [Smi96] Meiner Meinung nach ergibt sich daraus die Notwendigkeit des Einbaus der Komplexitäts- und Berechenbarkeitstheorie in den schulischen Unterricht. Ein logisch korrekt aufgebauter Unterricht muss doch mit der Frage beginnen: „Welche Probleme kann ich lösen, und welche nicht“ – erst danach kann man sich daran wagen, bestimmte Aufgabenstellungen konkret zu lösen. So zu tun, als wüsste man für alle Probleme eine Lösung, und einige davon werden sogar in der Schule durchgenommen, das wäre ein Vorgaukeln von Halbwahrheiten. Die theoretische Informatik konzentriert sich naturgemäß auf die grundlegenden Konzepte der Informatik. Damit entfällt einerseits das Problem der ständigen Aktualisierung des Lernstoffes, andererseits ergibt sich der Vorteil, dass die Ergebnisse des Lernprozesses automatisch längerfristig Bestand haben. [Mod92] Ein weiterer Pluspunkt für das Behandeln der Thematik im Schulunterricht ist, dass keine Programmierkenntnisse vorausgesetzt sind, um Berechenbarkeitstheoretische Überlegungen anzustellen. Damit ist man jedoch auch gleichzeitig bei einem Minuspunkt angelangt: die notwendige Vertrautheit mit formalen mathematischen Argumentationen ist wohl in aller Regel an unseren Schulen nur ansatzweise vorzufinden. [Smi96] Im Übrigen ist es intellektuell gehaltvoller, auf einer Metaebene über die Lösbarkeit von Problemen zu diskutieren, als zu versuchen, einzelne Probleme konkret zu lösen. In den 90er Jahren gab es eine Krise des Informatikunterrichts, die in einer zu starken Algorithmus-Orientierung begründet war. Seit dieser Zeit findet ein Umdenken statt: Algorithmen werden eher als der Ingenieurwissenschaftliche Teil der Informatik HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -2- angesehen. Gymnasiale, reine Informatik sollte darüber stehen – theoretische Informatik also. [Hub04] Andererseits muss natürlich festgehalten werden, dass die theoretische Informatik alleine zu abstrakt und damit für den Schulunterricht unbrauchbar ist. Daher sollte auf keinen Fall auf dazupassende Beispiele am Rechner verzichtet werden – was auch eine Schulung beispielsweise in einer Programmiersprache voraussetzt. [Hub04] 2.2 Integration in bestehenden Lehrplänen Um einen Überblick über in den Lehrplänen österreichischer Schulen eventuell bereits vorhandener Inhalte zum Thema Komplexitäts- und Berechenbarkeitstheorie zu bieten, habe ich folgende drei Lehrpläne überprüft: • Lehrplan der Allgemeinbildenden Höheren Schulen, 5. Klasse (Pflichtfach Informatik) • Lehrplan der Allgemeinbildenden Höheren Schulen, 6. - 8. Klasse (Wahlpflichtfach Informatik) • Lehrplan der Höheren Lehranstalt für Elektronische Datenverarbeitung und Organisation / Zweig Kommerzielle Datentechnik In den folgenden drei Unterkapitel gehe ich jeweils nur auf die für unser Thema relevanten Fächer ein (z.B. Mathematik, Informatik usw.). 2.2.1 Allgemeinbildende Höhere Schulen, 5. Klasse In den allgemeinen Bildungszielen findet sich unter „Bildungsbereich Natur und Technik“ folgender interessante Absatz: „Der Unterricht hat daher grundlegendes Wissen, Entscheidungsfähigkeit und Handlungskompetenz zu vermitteln. […] Als für die Analyse und Lösung von Problemen wesentliche Voraussetzungen sind Formalisierung, Modellbildung, Abstraktions- und Raumvorstellungsvermögen zu vermitteln.“ [Web01] Unter „Bildungs- und Lehraufgabe“ liest sich folgender Absatz: „Es ist eine wesentliche Aufgabe des Informatikunterrichts, Schülerinnen und Schülern informatische und informationstechnische Grundkenntnisse zu vermitteln, um sie zu befähigen, diese zur Lösung einer Problemstellung sicher und kritisch einzusetzen.“ [Web02] Die Begriffe „Entscheidungsfähigkeit“, „Formalisierung“, „Problemstellung sicher und kritisch lösen“ implizieren eigentlich so etwas wie Komplexitäts- und Berechenbarkeitstheorie. Von den Bildungszielen ausgehend sollte unser Thema in der 5. Klasse der AHS durchgenommen werden. [Web02] Betrachtet man jedoch die Vorgabe für den Lehrstoff, so gibt man diese Hoffnung schnell wieder auf: neben viel Informationsdarstellung, multimedial Präsentieren, vernetzte Informationssysteme, Umgang mit Standardsoftware, Kalkulationsmodellen, Datensicherheit und Urheberrecht kommt noch der folgende Punkt vor: „technische und theoretische Grundlagen gewinnen und Grundprinzipien von Automaten, Algorithmen HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -3- und Programmen kennen lernen“. Wenn man bedenkt dass dies alles in einem Jahr – mit 2 Unterrichtsstunden – abgehandelt werden soll, dann ist völlig klar, dass für die Komplexitätstheorie wohl kein Raum – bzw. keine Zeit – bleiben wird… [Web02] 2.2.2 Allgemeinbildende Höhere Schulen, 6. - 8. Klasse In der 6., 7. und 8. Klasse wird Informatik lediglich als Wahlpflichtfach angeboten – daher stehen hier auch keine Lehrpläne zur Verfügung. Aus eigener Erfahrung kann ich jedoch sagen, dass hier meist Anwendungsschulung oder Programmierung mit den Schülerinnen und Schülern behandelt wird. Unser Thema Komplexitätstheorie kommt hier so gut wie überhaupt nicht vor. 2.2.3 Höhere Lehranstalt für Elektronische Datenverarbeitung Im Lehrplan der Höheren Lehranstalt für Elektronische Datenverarbeitung findet sich folgende Stundenaufteilung: Fach 1. Klasse 2. Klasse 3. Klasse 4. Klasse 5. Klasse Mathematik 4 4 3 2 2 Grundlagen der EDV 4 5 Programmieren 4 7 4 3 2 Betriebssysteme 3 3 2 Angewandte Datentechnik 4 Tabelle 1: Stundenübersicht der HTL für Elektronische Datenverarbeitung [Web03] Im Fach „Mathematik“ kommt der Begriff „Fehlerabschätzung und –fortpflanzung“ vor, dies könnte im weitesten Sinne mit Komplexitätsberechnungen zu tun haben. Im Fach „Grundlagen der EDV“ werden völlig andere Themen als Komplexitätstheorie behandelt, z.B. Datenträger, Hardware, Zahlensysteme, Aussagenlogik. Das Fach „Programmieren“ behandelt Themen wie Problemanalyse, Modellbildung, Kodieren, Testen, Modularisierung, u.v.m. Komplexitätstheorie kommt nicht vor. Im Fach „Betriebssysteme“ sind ebenfalls völlig andere Themen als Komplexitätstheorie vorgesehen. Im Fach „Angewandte Datentechnik“ geht es um die Datenmodellierung, Datenbanken und deren Anwendungen. Mit Komplexitätstheorie hat das nichts zu tun. [Web03] HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -4- In der HTL für Elektronische Datenverarbeitung wird also nirgendwo planmäßig die Komplexitätstheorie behandelt – trotz sehr vieler EDV-Stunden und vieler technischer Details, welche behandelt werden. 3 3.1 Behandlung im Unterricht Didaktische Überlegungen Komplexitätstheorie liefert Metaergebnisse – entweder ist ein Problem in angemessener Zeit lösbar, oder eben nicht. In beiden Fällen liegt keine Lösung für das Problem vor. Das ist ein negativer Touch, der die Komplexitätstheorie begleitet. Um die Thematik nicht unnötig negativ zu betrachten und zu vermitteln, empfiehlt es sich, wo immer es möglich ist, eine algorithmische Sichtweise und konkrete Lösungen in den Unterricht einzubauen. Das bringt neben einer positiven Grundstimmung den Vorteil mit sich, dass die Schülerinnen und Schüler durch praktische Beispiele einen besseren Zugang zum Thema finden können. [Weg03] Das Aufzeigen der Grenzen von Computern im Unterricht kann auf verschiedene Weisen erfolgen: einerseits tief mathematisch, andererseits könnte darüber diskutiert werden, in welchen Gebieten Computer gut einsetzbar erscheinen bzw. überhaupt nicht geeignet sind. Natürlich sind zwischen diesen beiden Extrema alle Abstufungen denkbar, für den Unterricht sind – je nach Schulstufe – eher die weniger mathematischen Varianten zielführender, zumal konkrete Fallbeispiele auch aus der Lebenswelt der Schülerinnen und Schüler behandelt werden könnten. [Mod91] Um unseren Schülerinnen und Schüler die Probleme, die die theoretische Informatik aufzeigt, verständlich zu vermitteln zu können sollten vor allem grafische Darstellungen verwendet werden. In der folgenden Abbildung beispielsweise ist gut ersichtlich, wie sich die verschiedenen Komplexitätsklassen zeitlich verhalten. HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -5- Abbildung 1: Polynomiales und exponentielles Wachstum [Har02] Im Unterricht müssen zu den einzelnen Klassen natürlich Fallbeispiele gefunden werden, um einen Bezug zur realen Welt herzustellen und zu zeigen, dass es solche Fälle tatsächlich gibt. 3.2 Mögliche didaktische Reduktionen Es stellt sich die Frage, warum Lehrstoff überhaupt reduziert werden muss. Wird Unterrichtsstoff erarbeitet, so wird dieser immer – und zwar mehrstufig – reduziert, bevor er in die Köpfe der Schüler gelangt. Wir betrachten dazu die folgende Abbildung: Abbildung 2: Unterrichtsstoffreduktionsmodell [GG85] HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -6- Die Menge A sei die Grundmenge, also die Menge an Stoff, die Schüler zu einem bestimmten Thema lernen könnten. Die Menge A wird nun durch den Wissensstand des Lehrers zu diesem Thema eingeschränkt, es entsteht eine kleinere Menge B. Der Lehrer entscheidet nun aufgrund verschiedenster Kriterien (verfügbare Zeit, Einschätzung der Schüler, usw.) welcher Teil dieser Menge B im Unterricht behandelt werden soll – das entspricht Menge C. Im tatsächlich stattfindenden Unterricht kommt jedoch wieder nur ein Teil dieses Stoffes zum tragen, da ja der Ablauf des Unterrichts von vielerlei Variablen abhängt, die im Vorhinein oftmals unbekannt sind. [GG85] Die Frage ist nun, wie man den Stoff der Komplexitäts- und Berechenbarkeitstheorie schülergerecht aufbereiten bzw. besser gesagt „herunter brechen“ kann. Aufgrund der unleugbaren Nähe zum Fach Mathematik kann man vorerst die Erfahrungen aus diesem Fach berücksichtigen: Es ist für Schülerinnen und Schüler viel wichtiger, Denkprozesse zur Entwicklung von Lösungsschemata zu trainieren, einen hantierbaren Unendlichkeitsbegriff zu erhalten sowie die Bedeutung von Grenzwertmethoden zu erkennen, als etwa das Ausführen von Berechnungen (was ja sogar Computer besser und schneller können). [Mod91] Theoretische Informatik als logisches System betrachtet, in dem von bestimmten Grundannahmen ausgehend Folgerungen gezogen und auch bewiesen werden können, ist für einen Schulunterricht gänzlich ungeeignet. Benutzt man hingegen nur die Notationen der theoretischen Informatik wie etwa Transitionsgraphen der endlichen Automaten oder die formalen Grammatiken, dann erhält man höchst effiziente Beschreibungsmittel für zustandsabhängige Systeme. Durch die Erweiterung der Modelle zu Kellerautomaten und Turingmaschinen sind Fragestellungen zu prinzipiellen Grenzen von Computern möglich. Theoretische Informatik an der Schule ist nicht mit Hochschul-Theorie gleich zu setzen. Um die Schüler nicht zu überfordern, sollte auf alle Fälle aktive Schülerarbeit bevorzugt werden. [Mod91] Als anschauliche Beispiele mit der Möglichkeit von Reduktion bieten sich Sortieralgorithmen an: Diverse Algorithmen können ausprogrammiert werden und ausprobiert werden. Bei Algorithmen mit exponentiellen Abhängigkeiten werden die Schülerinnen und Schüler schnell merken, dass ihr noch so schneller Computer an seine Grenzen stößt. Je nach Schulstufe und mathematischen Kenntnissen kann man dieses Verhalten dann grafisch veranschaulichen oder einen Schritt weiter gehen und Berechnungen dazu anstellen. Die Schülerinnen und Schüler sollen merken, dass es Problemstellungen gibt, wo es praktisch keinen Unterschied macht, ob man 10mal so schnelle oder 1000mal so schnelle Computer verwendet – wenn dadurch etwa die Rechenzeit von 10000 auf 1000 Jahren sinken würde… [Mod91] 3.3 Geeignete Schulstufen Der Informatikunterricht in Österreichs Schulen läuft laut Prof. Mittermeir in Österreichs Schulen folgender Maßen ab: „Ein wenig Anwendung vermischt mit ein wenig Theorie, beides nach Geschmack abmischen. […] Na ja. Wurde vor der Zubereitung gefragt, wer HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -7- der Gast ist. Nach seinem Alter? Wie fest die Zähne sind, mit denen die Nüsse aufgebissen werden sollen?“ Der bildungsfähige Mensch entwickelt erst im Laufe der Zeit bestimmte kognitive Fähigkeiten, die für das Verständnis solcher technischer Problemstellungen benötigt werden. Aufgrund des relativ jungen Alters der Schulinformatik liegen hier kaum Erfahrungswerte vor, ab welchem Alter welche Inhalte nachhaltig gut vermittelt werden können. [Mit03] Es kann jedoch festgestellt werden, dass in unteren Schulstufen eher Fallbeispiele behandelt werden sollen, in höheren Schulstufen kann dann aufgrund der besseren Mathematik-Kenntnisse der Schülerinnen und Schüler auch auf technische Details und Berechnungen eingegangen werden. Dies hat für den Anfangsunterricht den zusätzlichen Vorteil, dass man ohne Programmierkenntnissen auskommt. [Mod91] Detaillierte Hinweise darauf, in welchen Schultypen, in welchen Jahrgängen und in welchen Fächern welche Konzepte wie einsetzt werden sollen, konnte ich in keiner der von mir durchsuchten Quellen finden. Wie es scheint, liegen hier noch zu wenig messbare Erfahrungswerte vor. 3.4 Beispiel einer Unterrichtssequenz Die folgende Unterrichtssequenz soll die Schülerinnen und Schüler in die Thematik der Komplexitätstheorie einführen. Dazu werden zwei Sortieralgorithmen untersucht, der eine mit Komplexität O(n²), der andere mit O(n x log(n)). Die folgende Unterrichtssequenz wurde von meiner Person erdacht, da in der Literatur kaum fertige Unterrichtssequenzen zum Thema Komplexitätsund Berechenbarkeitstheorie zu finden sind. Für eine zeitliche Planung sind mehrere Doppelstunden für die Durchführung anzusetzen. Es folgt eine Beschreibung des Ablaufs: Zuerst werden die beiden Algorithmen Bubblesort und Mergesort erklärt, grafisch aufbereitet durchexerziert, über Vor- und Nachteile diskutiert. Danach werden zwei Programme erstellt, das erste sortiert eine Liste von 100 Zufallszahlen mittels Bubblesort, das zweite sortiert eine Liste von 100 Zufallszahlen mittels Mergesort. HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -8- Abbildung 3: Codebeispiel für einen Bubblesort-Algorithmus [OW96] Abbildung 4: Codebeispiel für einen Mergesort-Algorithmus [OW96] In obigen Abbildungen sind Sortieralgorithmen dargestellt. Codebeispiele zu den beiden verwendeten Dann bauen die Schülerinnen und Schüler Zähler für die Anzahl der Vergleiche und die dafür benötigte Zeit ein. Eine übersichtliche, tabellarische Darstellung der gewonnen Daten dient als Diskussionsgrundlage über die bestehenden Zusammenhänge und Unterschiede zwischen den Algorithmen. Bubblesort Mergesort HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt -9- # Elemente # Vergleiche Benöt. Zeit [sek] # Vergleiche Benöt. Zeit [sek] 100 10000 1 200 0,02 Tabelle 2: Vergleich von Sortieralgorithmen Es bleibt zu erwarten, dass viele Schülerinnen und Schüler die wenigen Millisekunden Zeitunterschied als „minimal“ oder „unwesentlich“ abtun werden. Jetzt ist der Zeitpunkt gekommen, wo man statt 100 Zufallszahlen 100.000 oder 10 Mio. Zufallszahlen sortieren lässt. Jetzt sind wir am Knackpunkt der Unterrichtseinheit angelangt – beim Probieren der beiden Algorithmen wird der extreme Unterschied zwischen den beiden Komplexitätsklassen deutlich. Die Schülerinnen und Schüler werden staunen, wenn Mergesort nach beispielsweise 20 Sekunden fertig ist, und Bubblesort nach einer halben Stunde mit der gleichen Menge an Zahlen noch immer nicht fertig ist… Bubblesort Mergesort # Elemente # Vergleiche Benöt. Zeit [sek] # Vergleiche Benöt. Zeit [sek] 100 10000 1 200 0,02 100000 10000000000 1000000 500000 5 Tabelle 3: Vergleich von Sortieralgorithmen (erweitert) Noch erstaunter werden unsere Schülerinnen und Schüler sein, wenn sie sehen dass Bubblesort auch nicht nach 1 Stunde oder nach 5 Stunden fertig sein wird – sondern für unsere 100.000 zu sortierenden Einträge sage und schreibe 11,5 Tage brauchen wird. Als Abschluss sollen die Schülerinnen und Schüler noch die von den beiden Algorithmen benötigte Zeit berechnen, um 10 Mio. Zufallszahlen zu sortieren. Zur Abrundung sollte die Lehrerin bzw. der Lehrer ein paar praktische Anwendungsfälle parat haben, um den Schülerinnen und Schülern die praktische Bedeutung solcher Aufgabenstellungen zu verdeutlichen. HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt - 10 - 4 Zusammenfassung und Ausblick Die Komplexitäts- und Berechenbarkeitstheorie stellt eine der theoretischen Grundlagen der Informatik dar und sollte unbedingt auch im schulischen Unterricht behandelt werden. Da sie in den aktuellen Lehrplänen so gut wie nicht vorkommt, besteht hier akuter Handlungsbedarf. Allerdings muss man sich darüber im Klaren sein, dass man vom universitären Niveau Abstriche machen muss und die Komplexitäts- und Berechenbarkeitstheorie auf einem abstrakteren Level behandeln sollte. Das für Schülerinnen und Schüler wichtige an der Thematik ist das Bewusstsein, dass selbst Computer ihre Grenzen haben und es Probleme gibt, die nicht mit Computern zu lösen sind. 5 Literaturverzeichnis [Brä03] Markus Brändle et. al. Kara: ein theoriebasierter Ansatz für Lernumgebungen zu fundamentalen Konzepten der Informatik. In: Peter Hubwieser. Informatische Fachkonzepte im Unterricht, GI-Edition, Infos 2003. Köllen Druck+Verlag GmbH, 2003. [GG85] Jochen und Monika Grell. Unterrichtsrezepte. Beltz Verlag, 1985. [Har02] David Harel. Das Affenpuzzle und weitere bad news aus der Computerwelt. Springer Verlag, 2002. [Mit03] Prof. Dr. Roland Mittermeir. Schulinformatik – ein Fach oder ein Gebiet? In: Anton Reiter et. al. Schulinformatik in Österreich. Ueberreuter Verlag, 2003. [Mod91] Eckart Modrow. Zur Didaktik des Informatik-Unterrichts, Band 1: Ziele und Inhalte, Anfangsunterricht, Beispiele und Anwendungen. Ferd. Dümmlers Verlag, 1991. [Mod92] Eckart Modrow. Zur Didaktik des Informatik-Unterrichts, Band 2: Gesellschaftliche Auswirkungen, Fachunterricht, Abitur. Ferd. Dümmlers Verlag, 1992. [OW96] T. Ottmann, P. Widmayer. Algorithmen und Datenstrukturen, 3. Auflage. Spektrum Akademischer Verlag, 1996. [Rei99] K. Rüdiger Reischuk. Komplexitätstheorie, Band I: Grundlagen. Teubner Stuttgart, Leibzig, 1999. [Smi96] Dr. Einar Smith. Elementare Berechenbarkeitstheorie. Springer-Verlag Berlin Heidelberg, 1996. HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt - 11 - [Web01] Lehrplan der AHS. Website des Bundesministeriums für Bildung, Wissenschaft, Kultur: http://www.bmbwk.gv.at/medienpool/11668/lp_ahs_neu_allg.pdf. 2006. [Web02] Lehrplan für Informatik 5. Klasse, AHS. Website des Bundesministeriums für Bildung, Wissenschaft, Kultur: http://www.bmbwk.gv.at/medienpool/11866/lp_neu_ahs_14.pdf. 2006. [Web03] Lehrplan der Höheren Lehranstalt für Elektronische Datenverarbeitung und Organisation, Website: http://www.berufsbildendeschulen.at/upload/406_DVOrg.doc. 2006. [Web04] Stundenübersicht. Website Wissenschaft, Kultur: des Bundesministeriums für Bildung, http://www.bmbwk.gv.at/medienpool/9431/VO_LP_AHS03.pdf. 2006. [Weg03] Prof. Dr. Ingo Wegener. Komplexitätstheorie – Grenzen der Effizienz von Algorithmen. Springer-Verlag Berlin Heidelberg, 2003. HS DDI, SS 2006, Prof. Peter Hubwieser – DI Peter Moser, Universität Klagenfurt - 12 -