turing

Werbung
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Informatik mit Kara
Spielerischer Einstieg in die Informatik
Kara mit Java
Ausblick
Gerhard Bitsch
Kepler - Gymnasium
Tübingen
Seminarsitzung Informatik, Januar 2008
Gliederung
Kara
Gerhard Bitsch
Problemstellung
1 Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
2 Kara im Anfängerunterricht
Kara mit Java
3 Turing-Maschinen mit Kara
Ausblick
4 Kara mit Java
5 Ausblick
Gliederung
Kara
Gerhard Bitsch
Problemstellung
1 Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
2 Kara im Anfängerunterricht
Kara mit Java
3 Turing-Maschinen mit Kara
Ausblick
4 Kara mit Java
5 Ausblick
Gliederung
Kara
Gerhard Bitsch
Problemstellung
1 Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
2 Kara im Anfängerunterricht
Kara mit Java
3 Turing-Maschinen mit Kara
Ausblick
4 Kara mit Java
5 Ausblick
Gliederung
Kara
Gerhard Bitsch
Problemstellung
1 Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
2 Kara im Anfängerunterricht
Kara mit Java
3 Turing-Maschinen mit Kara
Ausblick
4 Kara mit Java
5 Ausblick
Gliederung
Kara
Gerhard Bitsch
Problemstellung
1 Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
2 Kara im Anfängerunterricht
Kara mit Java
3 Turing-Maschinen mit Kara
Ausblick
4 Kara mit Java
5 Ausblick
Vorüberlegungen
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Schülervorwissen ist unterschiedlich.
Elementare Informatik-Konzepte sollten leicht
zugänglich sein.
Komplizierte Sprachen sind für Anfänger ungeeignet.
Komplexe Entwicklungsumgebungen sind hinderlich.
Fehlermeldungen sollten verstehbar sein.
Ausblick
Folgerung
Professionelle Entwickler-Umgebungen sind nicht gut für
Anfänger.
Vorüberlegungen
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Schülervorwissen ist unterschiedlich.
Elementare Informatik-Konzepte sollten leicht
zugänglich sein.
Komplizierte Sprachen sind für Anfänger ungeeignet.
Komplexe Entwicklungsumgebungen sind hinderlich.
Fehlermeldungen sollten verstehbar sein.
Ausblick
Folgerung
Professionelle Entwickler-Umgebungen sind nicht gut für
Anfänger.
Vorüberlegungen
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Schülervorwissen ist unterschiedlich.
Elementare Informatik-Konzepte sollten leicht
zugänglich sein.
Komplizierte Sprachen sind für Anfänger ungeeignet.
Komplexe Entwicklungsumgebungen sind hinderlich.
Fehlermeldungen sollten verstehbar sein.
Ausblick
Folgerung
Professionelle Entwickler-Umgebungen sind nicht gut für
Anfänger.
Vorüberlegungen
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Schülervorwissen ist unterschiedlich.
Elementare Informatik-Konzepte sollten leicht
zugänglich sein.
Komplizierte Sprachen sind für Anfänger ungeeignet.
Komplexe Entwicklungsumgebungen sind hinderlich.
Fehlermeldungen sollten verstehbar sein.
Ausblick
Folgerung
Professionelle Entwickler-Umgebungen sind nicht gut für
Anfänger.
Vorüberlegungen
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Schülervorwissen ist unterschiedlich.
Elementare Informatik-Konzepte sollten leicht
zugänglich sein.
Komplizierte Sprachen sind für Anfänger ungeeignet.
Komplexe Entwicklungsumgebungen sind hinderlich.
Fehlermeldungen sollten verstehbar sein.
Ausblick
Folgerung
Professionelle Entwickler-Umgebungen sind nicht gut für
Anfänger.
Vorüberlegungen
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Schülervorwissen ist unterschiedlich.
Elementare Informatik-Konzepte sollten leicht
zugänglich sein.
Komplizierte Sprachen sind für Anfänger ungeeignet.
Komplexe Entwicklungsumgebungen sind hinderlich.
Fehlermeldungen sollten verstehbar sein.
Ausblick
Folgerung
Professionelle Entwickler-Umgebungen sind nicht gut für
Anfänger.
Wünschenswertes
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Eine einfache aber ausdruckstarke Sprache.
Eine intuitive Programmierumgebung.
Möglichst wenig Syntax.
Ein Vorrat von konkreten, anschaulichen Problemen.
Visualisierungsmöglichkeiten für den
Programmablauf.
Wünschenswertes
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Eine einfache aber ausdruckstarke Sprache.
Eine intuitive Programmierumgebung.
Möglichst wenig Syntax.
Ein Vorrat von konkreten, anschaulichen Problemen.
Visualisierungsmöglichkeiten für den
Programmablauf.
Wünschenswertes
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Eine einfache aber ausdruckstarke Sprache.
Eine intuitive Programmierumgebung.
Möglichst wenig Syntax.
Ein Vorrat von konkreten, anschaulichen Problemen.
Visualisierungsmöglichkeiten für den
Programmablauf.
Wünschenswertes
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Eine einfache aber ausdruckstarke Sprache.
Eine intuitive Programmierumgebung.
Möglichst wenig Syntax.
Ein Vorrat von konkreten, anschaulichen Problemen.
Visualisierungsmöglichkeiten für den
Programmablauf.
Wünschenswertes
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Eine einfache aber ausdruckstarke Sprache.
Eine intuitive Programmierumgebung.
Möglichst wenig Syntax.
Ein Vorrat von konkreten, anschaulichen Problemen.
Visualisierungsmöglichkeiten für den
Programmablauf.
Was wird unterrichtet?
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Keine Einübung einer Sprache, nur
Lückenprogramme, Anwendungsorientierung.
Programmierkurs mit einer professionellen
Umgebung.
Programmierkurs mit einer speziell für Anfänger
gedachten Umgebung.
Was wird unterrichtet?
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Keine Einübung einer Sprache, nur
Lückenprogramme, Anwendungsorientierung.
We regard this as a mistake, because the justification for
programming in schools is not its immediate applicability in
real life, but in its general educational value: a sound,
intuitive understanding of what it means to delegate to a
machine control of ever more complex every-day processes.
(Reichert, Nievergelt, Hartmann,2001)
Programmierkurs mit einer professionellen
Umgebung.
Programmierkurs mit einer speziell für Anfänger
gedachten Umgebung.
Was wird unterrichtet?
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Keine Einübung einer Sprache, nur
Lückenprogramme, Anwendungsorientierung.
Programmierkurs mit einer professionellen
Umgebung.
Programmierkurs mit einer speziell für Anfänger
gedachten Umgebung.
Was wird unterrichtet?
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Keine Einübung einer Sprache, nur
Lückenprogramme, Anwendungsorientierung.
Programmierkurs mit einer professionellen
Umgebung.
Macht allenfalls Sinn in einem "Profikurs". Sicherlich nicht
sinnvoll in Kursen für Anfänger.
Programmierkurs mit einer speziell für Anfänger
gedachten Umgebung.
Was wird unterrichtet?
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Keine Einübung einer Sprache, nur
Lückenprogramme, Anwendungsorientierung.
Programmierkurs mit einer professionellen
Umgebung.
Programmierkurs mit einer speziell für Anfänger
gedachten Umgebung.
Was wird unterrichtet?
Kara
Gerhard Bitsch
Problemstellung
Anfangsunterricht
Informatik
Übliche Ansätze
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Keine Einübung einer Sprache, nur
Lückenprogramme, Anwendungsorientierung.
Programmierkurs mit einer professionellen
Umgebung.
Programmierkurs mit einer speziell für Anfänger
gedachten Umgebung.
Beispiele: LOGO, DrScheme
Karas Welt
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Die Programmierumgebung
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Zustand definieren
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Übung 1
Kara
Gerhard Bitsch
1
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Kara soll bis zum Baum laufen, dann umdrehen und
weiterlaufen. Kara trifft dann von der anderen Seite
kommend wieder auf den Baum und pendelt so
endlos hin und her.
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
2
Ausblick
Nun soll Kara stehen bleiben, wenn er zum zweiten
(dritten, vierten) Mal auf den Baum trifft.
3
Kara soll zum Baum gehen, alle Blätter aufsammeln
und vor dem Baum stehen bleiben.
Übung 1
Kara
Gerhard Bitsch
1
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Kara soll bis zum Baum laufen, dann umdrehen und
weiterlaufen. Kara trifft dann von der anderen Seite
kommend wieder auf den Baum und pendelt so
endlos hin und her.
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
2
Ausblick
Nun soll Kara stehen bleiben, wenn er zum zweiten
(dritten, vierten) Mal auf den Baum trifft.
3
Kara soll zum Baum gehen, alle Blätter aufsammeln
und vor dem Baum stehen bleiben.
Übung 1
Kara
Gerhard Bitsch
1
Problemstellung
Kara im Anfängerunterricht
Kara soll bis zum Baum laufen, dann umdrehen und
weiterlaufen. Kara trifft dann von der anderen Seite
kommend wieder auf den Baum und pendelt so
endlos hin und her.
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
2
Kara mit Java
Ausblick
Nun soll Kara stehen bleiben, wenn er zum zweiten
(dritten, vierten) Mal auf den Baum trifft.
3
Kara soll zum Baum gehen, alle Blätter aufsammeln
und vor dem Baum stehen bleiben.
Weitere Übungen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Kara hat auch eingebaute Übungen.
Bearbeiten Sie die ersten Übungen bis zur
Labyrinth-Aufgabe.
Überlegen Sie dabei, welche Prinzipien für den
Programmentwurf wichtig sind.
Designprinzipien
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Welche Sensoren werden benötigt?
Wie viele unterschiedliche Inputs liefern n Sensoren?
Gedächtnis wird durch Zustände realisiert
Möglichst wenig Sensoren und Zustände einsetzen
Invarianten benutzen
Testfälle mit dem Welteditor bereitstellen
Designprinzipien
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Welche Sensoren werden benötigt?
Wie viele unterschiedliche Inputs liefern n Sensoren?
Gedächtnis wird durch Zustände realisiert
Möglichst wenig Sensoren und Zustände einsetzen
Invarianten benutzen
Testfälle mit dem Welteditor bereitstellen
Designprinzipien
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Welche Sensoren werden benötigt?
Wie viele unterschiedliche Inputs liefern n Sensoren?
Gedächtnis wird durch Zustände realisiert
Möglichst wenig Sensoren und Zustände einsetzen
Invarianten benutzen
Testfälle mit dem Welteditor bereitstellen
Designprinzipien
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Welche Sensoren werden benötigt?
Wie viele unterschiedliche Inputs liefern n Sensoren?
Gedächtnis wird durch Zustände realisiert
Möglichst wenig Sensoren und Zustände einsetzen
Invarianten benutzen
Testfälle mit dem Welteditor bereitstellen
Designprinzipien
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Welche Sensoren werden benötigt?
Wie viele unterschiedliche Inputs liefern n Sensoren?
Gedächtnis wird durch Zustände realisiert
Möglichst wenig Sensoren und Zustände einsetzen
Invarianten benutzen
Testfälle mit dem Welteditor bereitstellen
Designprinzipien
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Welche Sensoren werden benötigt?
Wie viele unterschiedliche Inputs liefern n Sensoren?
Gedächtnis wird durch Zustände realisiert
Möglichst wenig Sensoren und Zustände einsetzen
Invarianten benutzen
Testfälle mit dem Welteditor bereitstellen
Mittelschwere Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Die folgenden Aufgaben sind in erster Linie schwieriger,
weil Sensoren simuliert werden müssen oder mehrere
Zustände benötigt werden.
1
Kleeblatt-Pacman (Verfolgen einer Spur)
2
Endlosspirale (Sensor "Klee links" simulieren)
3
Mustersuche
4
Mustererkennung I
5
Mustererkennung II
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Mittelschwere Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Die folgenden Aufgaben sind in erster Linie schwieriger,
weil Sensoren simuliert werden müssen oder mehrere
Zustände benötigt werden.
1
Kleeblatt-Pacman (Verfolgen einer Spur)
2
Endlosspirale (Sensor "Klee links" simulieren)
3
Mustersuche
4
Mustererkennung I
5
Mustererkennung II
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Mittelschwere Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Die folgenden Aufgaben sind in erster Linie schwieriger,
weil Sensoren simuliert werden müssen oder mehrere
Zustände benötigt werden.
1
Kleeblatt-Pacman (Verfolgen einer Spur)
2
Endlosspirale (Sensor "Klee links" simulieren)
3
Mustersuche
4
Mustererkennung I
5
Mustererkennung II
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Mittelschwere Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Die folgenden Aufgaben sind in erster Linie schwieriger,
weil Sensoren simuliert werden müssen oder mehrere
Zustände benötigt werden.
1
Kleeblatt-Pacman (Verfolgen einer Spur)
2
Endlosspirale (Sensor "Klee links" simulieren)
3
Mustersuche
4
Mustererkennung I
5
Mustererkennung II
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Mittelschwere Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Die folgenden Aufgaben sind in erster Linie schwieriger,
weil Sensoren simuliert werden müssen oder mehrere
Zustände benötigt werden.
1
Kleeblatt-Pacman (Verfolgen einer Spur)
2
Endlosspirale (Sensor "Klee links" simulieren)
3
Mustersuche
4
Mustererkennung I
5
Mustererkennung II
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Schwierige Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Die folgenden Aufgaben zeigen, dass man mit Kara
durchaus auch recht komplexe Aufgabenstellungen
bearbeiten kann. Man sollte Aufgaben dieser Art
unbedingt behandeln, um die Behauptung plausibel zu
machen, dass Kara mit einer unbeschränkten Welt
prinzipiell jede mögliche Berechnung durchführen kann.
1
Binäres Pascal-Dreieck
2
Bubblesort
Schwierige Aufgaben
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
Einführung von Kara
Einfache Übungen
Wie sollte man
Kara-Programme
entwerfen?
Komplexere Aufgaben
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Die folgenden Aufgaben zeigen, dass man mit Kara
durchaus auch recht komplexe Aufgabenstellungen
bearbeiten kann. Man sollte Aufgaben dieser Art
unbedingt behandeln, um die Behauptung plausibel zu
machen, dass Kara mit einer unbeschränkten Welt
prinzipiell jede mögliche Berechnung durchführen kann.
1
Binäres Pascal-Dreieck
2
Bubblesort
Kara als Turing-Maschine
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Mit folgenden Einschränkungen wird Kara zu einer
einfachen Turing-Maschine.
Die Welt besteht aus einem (unbeschränkten) Band.
Es gibt weder Bäume noch Pilze.
Kara hat nur den Sensor für Kleeblätter.
Kara kann in jedem Schritt nur ein Kleeblatt
aufnehmen bzw. ablegen.
Kara muss in jedem Schritt entweder genau ein Feld
nach links oder nach rechts gehen.
Eine zusammenhängende Folge von n Blättern stellt
die Zahl n ∈ N dar.
Kara als Turing-Maschine
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Mit folgenden Einschränkungen wird Kara zu einer
einfachen Turing-Maschine.
Die Welt besteht aus einem (unbeschränkten) Band.
Es gibt weder Bäume noch Pilze.
Kara hat nur den Sensor für Kleeblätter.
Kara kann in jedem Schritt nur ein Kleeblatt
aufnehmen bzw. ablegen.
Kara muss in jedem Schritt entweder genau ein Feld
nach links oder nach rechts gehen.
Eine zusammenhängende Folge von n Blättern stellt
die Zahl n ∈ N dar.
Kara als Turing-Maschine
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Mit folgenden Einschränkungen wird Kara zu einer
einfachen Turing-Maschine.
Die Welt besteht aus einem (unbeschränkten) Band.
Es gibt weder Bäume noch Pilze.
Kara hat nur den Sensor für Kleeblätter.
Kara kann in jedem Schritt nur ein Kleeblatt
aufnehmen bzw. ablegen.
Kara muss in jedem Schritt entweder genau ein Feld
nach links oder nach rechts gehen.
Eine zusammenhängende Folge von n Blättern stellt
die Zahl n ∈ N dar.
Kara als Turing-Maschine
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Mit folgenden Einschränkungen wird Kara zu einer
einfachen Turing-Maschine.
Die Welt besteht aus einem (unbeschränkten) Band.
Es gibt weder Bäume noch Pilze.
Kara hat nur den Sensor für Kleeblätter.
Kara kann in jedem Schritt nur ein Kleeblatt
aufnehmen bzw. ablegen.
Kara muss in jedem Schritt entweder genau ein Feld
nach links oder nach rechts gehen.
Eine zusammenhängende Folge von n Blättern stellt
die Zahl n ∈ N dar.
Kara als Turing-Maschine
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Mit folgenden Einschränkungen wird Kara zu einer
einfachen Turing-Maschine.
Die Welt besteht aus einem (unbeschränkten) Band.
Es gibt weder Bäume noch Pilze.
Kara hat nur den Sensor für Kleeblätter.
Kara kann in jedem Schritt nur ein Kleeblatt
aufnehmen bzw. ablegen.
Kara muss in jedem Schritt entweder genau ein Feld
nach links oder nach rechts gehen.
Eine zusammenhängende Folge von n Blättern stellt
die Zahl n ∈ N dar.
Kara als Turing-Maschine
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Mit folgenden Einschränkungen wird Kara zu einer
einfachen Turing-Maschine.
Die Welt besteht aus einem (unbeschränkten) Band.
Es gibt weder Bäume noch Pilze.
Kara hat nur den Sensor für Kleeblätter.
Kara kann in jedem Schritt nur ein Kleeblatt
aufnehmen bzw. ablegen.
Kara muss in jedem Schritt entweder genau ein Feld
nach links oder nach rechts gehen.
Eine zusammenhängende Folge von n Blättern stellt
die Zahl n ∈ N dar.
Turing-Addition
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara soll die Zahlen auf dem Band "addieren". Dabei
dürfen beliebig viele Zahlen – jeweils durch genau ein
Leerfeld getrennt – auf dem Band stehen.
Kara mit Java
Ausblick
Das obige Band sollte etwa folgendes Resultat liefern:
Maschinentabellen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Die einzelnen Zustände einer Turing-Maschine werden mit
den Zahlen 1, 2, 3, . . . , n bezeichnet. Die 0 steht für den
Haltezustand.
Turing-Maschinen kann man durch Maschinentabellen
beschreiben. Ein einfaches Beispiel einer Maschinentabelle:
Z0
1
1
B0
0
1
B1
1
1
L/R
R
R
Z1
1
0
Maschinentabellen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Die einzelnen Zustände einer Turing-Maschine werden mit
den Zahlen 1, 2, 3, . . . , n bezeichnet. Die 0 steht für den
Haltezustand.
Turing-Maschinen kann man durch Maschinentabellen
beschreiben. Ein einfaches Beispiel einer Maschinentabelle:
Z0
1
1
B0
0
1
B1
1
1
L/R
R
R
Z1
1
0
Die zugehörige Maschine wird nie anhalten, sonder
fortlaufend nach Rechts gehend Einsen schreiben.
Wie viele Einsen kann eine haltende TM mit n Zuständen
höchstens auf ein leeres Band schreiben?
Weitere Beispiele
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Analysieren Sie die folgenden Turing-Maschinen für den
Fall, dass sie mit einem leeren Band gestartet werden.
Z0
1
BB2 : 1
2
2
B0
0
1
0
1
B1
1
1
1
1
L/R
R
L
L
L
Z1
2
2
1
0
Z0
1
1
BB3 : 2
2
3
3
B0
0
1
0
1
0
1
B1
1
1
1
1
1
0
L/R
R
L
R
R
L
L
Z1
2
3
3
0
1
2
Lösungen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
BB2 Diese Maschine schreibt auf das leere Band vier Einsen
nebeneinander und bleibt über der am weitesten links
stehenden Eins nach 6 Schritten stehen.
BB3 Diese Maschine schreibt auf das leere Band sechs
Einsen nebeneinander und bleibt über der dritten Eins
von links nach 11 Schritten stehen.
Lösungen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
BB2 Diese Maschine schreibt auf das leere Band vier Einsen
nebeneinander und bleibt über der am weitesten links
stehenden Eins nach 6 Schritten stehen.
BB3 Diese Maschine schreibt auf das leere Band sechs
Einsen nebeneinander und bleibt über der dritten Eins
von links nach 11 Schritten stehen.
Rado’s Σ-Funktion
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Tibor Rado hat 1962 die folgende Funktion Σ : N 7→ N
definiert:
Definition
Σ(n) ist die maximale Anzahl von Einsen, die eine haltende
Turingmaschine mit n Zuständen und dem Bandalphabet
{0, 1} beim Start mit einem leeren Band schreiben kann.
Rado’s Σ-Funktion
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Tibor Rado hat 1962 die folgende Funktion Σ : N 7→ N
definiert:
Definition
Σ(n) ist die maximale Anzahl von Einsen, die eine haltende
Turingmaschine mit n Zuständen und dem Bandalphabet
{0, 1} beim Start mit einem leeren Band schreiben kann.
Fleißige Biber
Kara mit Java
Ausblick
Damit ist in der Tat eine Funktion im mathematischen Sinn
definiert, denn die Anzahl der Turingmaschinen mit n
Zuständen ist endlich, insbesondere auch die Anzahl der
haltenden Turingmaschinen mit n Zuständen. Das in der
Definition angesprochene Maximum existiert daher.
Eine TM mit n Zuständen, die Σ(n) Einsen schreibt, nennt
man einen fleißigen Bieber
Beispiele
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Sowohl bei BB2 als auch bei BB3 handelt es sich um fleißige
Bieber.
Es gilt Σ(2) = 4 und Σ(3) = 6
Die folgende Turingmaschine BB4 ist ebenfalls ein fleißiger
Biber:
Z0
1
1
2
2
3
3
4
4
B0
0
1
0
1
0
1
0
1
B1
1
0
1
1
1
1
1
0
L/R
L
L
R
L
L
L
R
R
Z1
2
3
1
1
0
4
4
2
Verkettung von Turing-Maschinen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Man kann zwei Turing-Maschinen T1 und T2 verketten, so
dass sie hintereinander ausgeführt werden:
Sei T1 eine Maschine mit n Zuständen.
Man benennt man die Zustände von T2 um, indem man zu
jeder Zustandsnummer n addiert.
Fleißige Biber
Kara mit Java
Ausblick
In der der Tabelle von T1 ersetzt man den Zustand 0 in der
fünften Spalte durch n + 1.
Dann hängt man die neue Tabelle von T2 an die neue
Tabelle von T1 an.
Die dadurch definierte neue Maschine nennt man T1 ◦ T2
(T2 nach T1 ).
Σ ist streng monoton wachsend
Kara
Gerhard Bitsch
Satz
Σ wächst streng monoton.
Problemstellung
Kara im Anfängerunterricht
Beweis.
TuringMaschinen mit
Kara
Man definiert eine Turingmaschine T+1 durch:
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Z0
1
1
B0
0
1
B1
1
1
L/R
L
L
Z1
0
1
T+1 läuft nach links bis zur ersten Null, schreibt dort eine
Eins, geht nach links und bleibt stehen.
Sei nun TΣn ein fleißiger Bieber mit n Zuständen.
TΣn ◦ T+1 hat n + 1 Zustände und schreibt eine Eins mehr
als TΣn .
Damit gilt: Σ(n) < Σ(n + 1).
Σ ist streng monoton wachsend
Kara
Gerhard Bitsch
Satz
Σ wächst streng monoton.
Problemstellung
Kara im Anfängerunterricht
Beweis.
TuringMaschinen mit
Kara
Man definiert eine Turingmaschine T+1 durch:
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Z0
1
1
B0
0
1
B1
1
1
L/R
L
L
Z1
0
1
T+1 läuft nach links bis zur ersten Null, schreibt dort eine
Eins, geht nach links und bleibt stehen.
Sei nun TΣn ein fleißiger Bieber mit n Zuständen.
TΣn ◦ T+1 hat n + 1 Zustände und schreibt eine Eins mehr
als TΣn .
Damit gilt: Σ(n) < Σ(n + 1).
Die Maschinen B4 und B40
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Man kann aus BB4 zwei Maschinen konstruieren, die
jeweils 12 aufeinander folgende Einsen schreiben:
B4 : Man ersetzt in BB4 die Zeile 3, 0, 1, L, 0 durch
3, 0, 0, L, 0. Die so erhaltene Maschine B4 schreibt 12
aufeinanderfolgende Einsen aufs Band (2 davon rechts
vom Startfeld) und bleibt auf dem dritten leeren Feld
links von diesen Einsen stehen.
B40 : Man ersetzt in BB4 die Zeile 3, 0, 1, L, 0 durch
3, 0, 0, R, 0. Die so erhaltene Maschine B40 schreibt 12
aufeinanderfolgende Einsen aufs Band (2 davon rechts
vom Startfeld) und bleibt auf dem ersten leeren Feld
links von diesen Einsen stehen.
Die Maschinen B4 und B40
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Man kann aus BB4 zwei Maschinen konstruieren, die
jeweils 12 aufeinander folgende Einsen schreiben:
B4 : Man ersetzt in BB4 die Zeile 3, 0, 1, L, 0 durch
3, 0, 0, L, 0. Die so erhaltene Maschine B4 schreibt 12
aufeinanderfolgende Einsen aufs Band (2 davon rechts
vom Startfeld) und bleibt auf dem dritten leeren Feld
links von diesen Einsen stehen.
B40 : Man ersetzt in BB4 die Zeile 3, 0, 1, L, 0 durch
3, 0, 0, R, 0. Die so erhaltene Maschine B40 schreibt 12
aufeinanderfolgende Einsen aufs Band (2 davon rechts
vom Startfeld) und bleibt auf dem ersten leeren Feld
links von diesen Einsen stehen.
Die Maschine T12n
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
B4 ◦ B4 erzeugt 24 aufeinander folgende Einsen und hält
drei Felder links von der ersten Eins. Dies lässt sich
beliebig oft wiederholen.
Die Maschine T12n
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
B4 ◦ B4 erzeugt 24 aufeinander folgende Einsen und hält
drei Felder links von der ersten Eins. Dies lässt sich
beliebig oft wiederholen.
B4 ◦ B40 erzeugt 24 aufeinander folgende Einsen und hält
auf dem Feld links von der ersten Eins.
Die Maschine T12n
Kara
Gerhard Bitsch
Kara im Anfängerunterricht
B4 ◦ B4 erzeugt 24 aufeinander folgende Einsen und hält
drei Felder links von der ersten Eins. Dies lässt sich
beliebig oft wiederholen.
TuringMaschinen mit
Kara
B4 ◦ B40 erzeugt 24 aufeinander folgende Einsen und hält
auf dem Feld links von der ersten Eins.
Problemstellung
Einfache
Turing-Programme
Fleißige Biber
Für jedes n > 2 definiert man:
Kara mit Java
Ausblick
T12n = B4 ◦ · · · ◦ B4 ◦B40
|
{z
}
n−1
Diese Maschine hat 4n Zustände, schreibt 12n aufeinander
folgende Einsen auf das Band und hält auf dem Feld links
von der ersten Eins.
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Satz
Es gibt keine Turingmaschine TΣ , die Σ(n) für alle n ∈ N
berechnet.
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Σ ist nicht berechenbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Beweis.
Angenommen, eine solche Maschine TΣ existiere. Die
Anzahl ihrer Zustände sei k.
Sei Dn = T12n ◦ TΣ .
Dn hat 4n + k Zustände und schreibt Σ(12n) auf das
Band.
Daher gilt: Σ(4n + k) ≥ Σ(12n) für n ≥ 1.
Für n0 >
k
8
gilt 12n0 > 4n0 + k
Aus der Monotonie von Σ folgt: Σ(12n0 ) > Σ(4n0 + k).
Aus beiden Ungleichungen folgt der Widerspruch:
Σ(12n0 ) > Σ(4n0 + k) ≥ Σ(12n0 ).
Das Halteproblem ist nicht entscheidbar
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Gibt es eine berechenbare Funktion,
die für jede Turingmaschine
und jede Anfangsbeschriftung des Bandes
entscheidet,
ob diese Maschine mit diesem Band
anhält?
Plausibilitätsbetrachtungen
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Einfache
Turing-Programme
Fleißige Biber
Kara mit Java
Ausblick
Es gibt (4 · (n + 1))2n Turingmaschinen mit n Zuständen.
Zustände
2
3
4
5
6
10
Mögliche Maschinen
20736
1,68 · 107
2,56 · 1010
6,34 · 1013
2,32 · 1017
7,40 · 1032
Σ(3) = 6 (1963, Lin und Rado)
Σ(4) = 13 (1975, Brady)
Σ(5) ≥ 4098 (1989, Marxen und Buntrock)
Σ(6) ≥ 4,6 · 101439 (2007, T. und S. Ligocki)
JavaKara Programmierumgebung
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Die
JavaKara-Umgebung
Einfache
Java-Programme
Ausblick
Methoden
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Methoden für Kara haben das Präfix kara.
move()
turnRight()
putLeaf()
turnLeft()
removeLeaf()
treeFront()
mushroomFront()
treeLeft()
onLeaf()
treeRight()
Die
JavaKara-Umgebung
Einfache
Java-Programme
Ausblick
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Die
JavaKara-Umgebung
Einfache
Java-Programme
Ausblick
Einbettung in eclipse
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Die
JavaKara-Umgebung
Einfache
Java-Programme
Ausblick
import javakara.JavaKaraProgram;
public class sucheBaum1 extends JavaKaraProgram {
public void myMainProgram() {
action();}
private void action(){
if (kara.onLeaf()){
kara.removeLeaf();}
else{
kara.putLeaf(); }
if (!kara.treeFront()){
kara.move();
action();}}
public static void main(String[] args) {
JavaKaraProgram program = new sucheBaum1();
program.run("C:/KARA/jkara01.world"); }}
Literatur
Kara
Gerhard Bitsch
Problemstellung
Kara im Anfängerunterricht
TuringMaschinen mit
Kara
Kara mit Java
Ausblick
Kara:
R. Reichert, J. Nievergelt, W. Hartmann:
Programmieren mit Kara, 2004, Springer, Berlin.
http://www.swisseduc.ch/informatik/karatojava/kara/
Busy Beaver:
W. Brauer: Grenzen maschineller Berechenbarkeit,
Informatik-Spektrum 13 (1990), S. 61-70
http://en.wikipedia.org/wiki/Busy_beaver
* http://drb9.drb.insel.de/ heiner/BB/
http://grail.cba.csuohio.edu/∼somos/bb.html
http://users.informatik.hawhamburg.de/∼voeller/th/thinf/node16.html
http://www.logique.jussieu.fr/∼michel/ha.html#tm42
http://www.cs.rpi.edu/∼kelleo/busybeaver/
Herunterladen