Informatik mit Kara. Spielerischer Einstieg in die Informatik. Gerhard Bitsch. Seminarsitzung Informatik, Januar Kepler - Gymnasium Tübingen
|
|
- Louisa Schubert
- vor 7 Jahren
- Abrufe
Transkript
1 im Anfängerunterricht mit Java Informatik mit Spielerischer Einstieg in die Informatik Kepler - Gymnasium Tübingen Seminarsitzung Informatik, Januar 2008
2 Gliederung im Anfängerunterricht mit Java 1 2 im Anfängerunterricht 3 4 mit Java 5
3 Gliederung im Anfängerunterricht mit Java 1 2 im Anfängerunterricht 3 4 mit Java 5
4 Gliederung im Anfängerunterricht mit Java 1 2 im Anfängerunterricht 3 4 mit Java 5
5 Gliederung im Anfängerunterricht mit Java 1 2 im Anfängerunterricht 3 4 mit Java 5
6 Gliederung im Anfängerunterricht mit Java 1 2 im Anfängerunterricht 3 4 mit Java 5
7 Vorüberlegungen Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht 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. Folgerung Professionelle Entwickler-Umgebungen sind nicht gut für Anfänger.
8 Vorüberlegungen Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht 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. Folgerung Professionelle Entwickler-Umgebungen sind nicht gut für Anfänger.
9 Vorüberlegungen Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht 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. Folgerung Professionelle Entwickler-Umgebungen sind nicht gut für Anfänger.
10 Vorüberlegungen Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht 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. Folgerung Professionelle Entwickler-Umgebungen sind nicht gut für Anfänger.
11 Vorüberlegungen Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht 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. Folgerung Professionelle Entwickler-Umgebungen sind nicht gut für Anfänger.
12 Vorüberlegungen Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht 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. Folgerung Professionelle Entwickler-Umgebungen sind nicht gut für Anfänger.
13 Wünschenswertes Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Eine einfache aber ausdruckstarke Sprache. Eine intuitive Programmierumgebung. Möglichst wenig Syntax. Ein Vorrat von konkreten, anschaulichen Problemen. Visualisierungsmöglichkeiten für den Programmablauf.
14 Wünschenswertes Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Eine einfache aber ausdruckstarke Sprache. Eine intuitive Programmierumgebung. Möglichst wenig Syntax. Ein Vorrat von konkreten, anschaulichen Problemen. Visualisierungsmöglichkeiten für den Programmablauf.
15 Wünschenswertes Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Eine einfache aber ausdruckstarke Sprache. Eine intuitive Programmierumgebung. Möglichst wenig Syntax. Ein Vorrat von konkreten, anschaulichen Problemen. Visualisierungsmöglichkeiten für den Programmablauf.
16 Wünschenswertes Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Eine einfache aber ausdruckstarke Sprache. Eine intuitive Programmierumgebung. Möglichst wenig Syntax. Ein Vorrat von konkreten, anschaulichen Problemen. Visualisierungsmöglichkeiten für den Programmablauf.
17 Wünschenswertes Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Eine einfache aber ausdruckstarke Sprache. Eine intuitive Programmierumgebung. Möglichst wenig Syntax. Ein Vorrat von konkreten, anschaulichen Problemen. Visualisierungsmöglichkeiten für den Programmablauf.
18 Was wird unterrichtet? Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Keine Einübung einer Sprache, nur Lückenprogramme, Anwendungsorientierung. Programmierkurs mit einer professionellen Umgebung. Programmierkurs mit einer speziell für Anfänger gedachten Umgebung.
19 Was wird unterrichtet? Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java 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.
20 Was wird unterrichtet? Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Keine Einübung einer Sprache, nur Lückenprogramme, Anwendungsorientierung. Programmierkurs mit einer professionellen Umgebung. Programmierkurs mit einer speziell für Anfänger gedachten Umgebung.
21 Was wird unterrichtet? Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java 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.
22 Was wird unterrichtet? Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java Keine Einübung einer Sprache, nur Lückenprogramme, Anwendungsorientierung. Programmierkurs mit einer professionellen Umgebung. Programmierkurs mit einer speziell für Anfänger gedachten Umgebung.
23 Was wird unterrichtet? Anfangsunterricht Informatik Übliche Ansätze im Anfängerunterricht mit Java 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
24 s Welt Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java
25 Die Programmierumgebung Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java
26 Zustand definieren Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java
27 Übung 1 1 Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java soll bis zum Baum laufen, dann umdrehen und weiterlaufen. trifft dann von der anderen Seite kommend wieder auf den Baum und pendelt so endlos hin und her. 2 Nun soll stehen bleiben, wenn er zum zweiten (dritten, vierten) Mal auf den Baum trifft. 3 soll zum Baum gehen, alle Blätter aufsammeln und vor dem Baum stehen bleiben.
28 Übung 1 1 Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java soll bis zum Baum laufen, dann umdrehen und weiterlaufen. trifft dann von der anderen Seite kommend wieder auf den Baum und pendelt so endlos hin und her. 2 Nun soll stehen bleiben, wenn er zum zweiten (dritten, vierten) Mal auf den Baum trifft. 3 soll zum Baum gehen, alle Blätter aufsammeln und vor dem Baum stehen bleiben.
29 Übung 1 1 Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java soll bis zum Baum laufen, dann umdrehen und weiterlaufen. trifft dann von der anderen Seite kommend wieder auf den Baum und pendelt so endlos hin und her. 2 Nun soll stehen bleiben, wenn er zum zweiten (dritten, vierten) Mal auf den Baum trifft. 3 soll zum Baum gehen, alle Blätter aufsammeln und vor dem Baum stehen bleiben.
30 Weitere Übungen Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java hat auch eingebaute Übungen. Bearbeiten Sie die ersten Übungen bis zur Labyrinth-Aufgabe. Überlegen Sie dabei, welche Prinzipien für den Programmentwurf wichtig sind.
31 Designprinzipien Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
32 Designprinzipien Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
33 Designprinzipien Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
34 Designprinzipien Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
35 Designprinzipien Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
36 Designprinzipien Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
37 Mittelschwere Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
38 Mittelschwere Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
39 Mittelschwere Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
40 Mittelschwere Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
41 Mittelschwere Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java 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
42 Schwierige Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java Die folgenden Aufgaben zeigen, dass man mit durchaus auch recht komplexe Aufgabenstellungen bearbeiten kann. Man sollte Aufgaben dieser Art unbedingt behandeln, um die Behauptung plausibel zu machen, dass mit einer unbeschränkten Welt prinzipiell jede mögliche Berechnung durchführen kann. 1 Binäres Pascal-Dreieck 2 Bubblesort
43 Schwierige Aufgaben Einführung von Einfache Übungen Wie sollte man -Programme entwerfen? Komplexere Aufgaben im Anfängerunterricht mit Java Die folgenden Aufgaben zeigen, dass man mit durchaus auch recht komplexe Aufgabenstellungen bearbeiten kann. Man sollte Aufgaben dieser Art unbedingt behandeln, um die Behauptung plausibel zu machen, dass mit einer unbeschränkten Welt prinzipiell jede mögliche Berechnung durchführen kann. 1 Binäres Pascal-Dreieck 2 Bubblesort
44 als Maschine im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Mit folgenden Einschränkungen wird zu einer einfachen Maschine. Die Welt besteht aus einem (unbeschränkten) Band. Es gibt weder Bäume noch Pilze. hat nur den Sensor für Kleeblätter. kann in jedem Schritt nur ein Kleeblatt aufnehmen bzw. ablegen. 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.
45 als Maschine im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Mit folgenden Einschränkungen wird zu einer einfachen Maschine. Die Welt besteht aus einem (unbeschränkten) Band. Es gibt weder Bäume noch Pilze. hat nur den Sensor für Kleeblätter. kann in jedem Schritt nur ein Kleeblatt aufnehmen bzw. ablegen. 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.
46 als Maschine im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Mit folgenden Einschränkungen wird zu einer einfachen Maschine. Die Welt besteht aus einem (unbeschränkten) Band. Es gibt weder Bäume noch Pilze. hat nur den Sensor für Kleeblätter. kann in jedem Schritt nur ein Kleeblatt aufnehmen bzw. ablegen. 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.
47 als Maschine im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Mit folgenden Einschränkungen wird zu einer einfachen Maschine. Die Welt besteht aus einem (unbeschränkten) Band. Es gibt weder Bäume noch Pilze. hat nur den Sensor für Kleeblätter. kann in jedem Schritt nur ein Kleeblatt aufnehmen bzw. ablegen. 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.
48 als Maschine im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Mit folgenden Einschränkungen wird zu einer einfachen Maschine. Die Welt besteht aus einem (unbeschränkten) Band. Es gibt weder Bäume noch Pilze. hat nur den Sensor für Kleeblätter. kann in jedem Schritt nur ein Kleeblatt aufnehmen bzw. ablegen. 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.
49 als Maschine im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Mit folgenden Einschränkungen wird zu einer einfachen Maschine. Die Welt besteht aus einem (unbeschränkten) Band. Es gibt weder Bäume noch Pilze. hat nur den Sensor für Kleeblätter. kann in jedem Schritt nur ein Kleeblatt aufnehmen bzw. ablegen. 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.
50 Addition im Anfängerunterricht Einfache Programme Fleißige Biber mit Java soll die Zahlen auf dem Band "addieren". Dabei dürfen beliebig viele Zahlen jeweils durch genau ein Leerfeld getrennt auf dem Band stehen. Das obige Band sollte etwa folgendes Resultat liefern:
51 Maschinentabellen im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Die einzelnen Zustände einer Maschine werden mit den Zahlen 1, 2, 3,..., n bezeichnet. Die 0 steht für den Haltezustand. Maschinen kann man durch Maschinentabellen beschreiben. Ein einfaches Beispiel einer Maschinentabelle: Z 0 B 0 B 1 L/R Z R R 0
52 Maschinentabellen im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Die einzelnen Zustände einer Maschine werden mit den Zahlen 1, 2, 3,..., n bezeichnet. Die 0 steht für den Haltezustand. Maschinen kann man durch Maschinentabellen beschreiben. Ein einfaches Beispiel einer Maschinentabelle: Z 0 B 0 B 1 L/R Z R R 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?
53 Weitere Beispiele Analysieren Sie die folgenden Maschinen für den Fall, dass sie mit einem leeren Band gestartet werden. im Anfängerunterricht Einfache Programme Fleißige Biber mit Java BB 2 : BB 3 : Z 0 B 0 B 1 L/R Z R L L L 0 Z 0 B 0 B 1 L/R Z R L R R L L 2
54 Lösungen im Anfängerunterricht Einfache Programme Fleißige Biber mit Java 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.
55 Lösungen im Anfängerunterricht Einfache Programme Fleißige Biber mit Java 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.
56 Rado s Σ-Funktion im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Tibor Rado hat 1962 die folgende Funktion Σ : N 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.
57 Rado s Σ-Funktion im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Tibor Rado hat 1962 die folgende Funktion Σ : N 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. 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
58 Beispiele im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Sowohl bei BB 2 als auch bei BB 3 handelt es sich um fleißige Bieber. Es gilt Σ(2) = 4 und Σ(3) = 6 Die folgende Turingmaschine BB 4 ist ebenfalls ein fleißiger Biber: Z 0 B 0 B 1 L/R Z L L R L L L R R 2
59 Verkettung von Maschinen im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Man kann zwei Maschinen T 1 und T 2 verketten, so dass sie hintereinander ausgeführt werden: Sei T 1 eine Maschine mit n Zuständen. Man benennt man die Zustände von T 2 um, indem man zu jeder Zustandsnummer n addiert. In der der Tabelle von T 1 ersetzt man den Zustand 0 in der fünften Spalte durch n + 1. Dann hängt man die neue Tabelle von T 2 an die neue Tabelle von T 1 an. Die dadurch definierte neue Maschine nennt man T 1 T 2 (T 2 nach T 1 ).
60 Σ ist streng monoton wachsend im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Satz Σ wächst streng monoton. Beweis. Man definiert eine Turingmaschine T +1 durch: Z 0 B 0 B 1 L/R Z L L 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).
61 Σ ist streng monoton wachsend im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Satz Σ wächst streng monoton. Beweis. Man definiert eine Turingmaschine T +1 durch: Z 0 B 0 B 1 L/R Z L L 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).
62 Die Maschinen B 4 und B 4 im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Man kann aus BB 4 zwei Maschinen konstruieren, die jeweils 12 aufeinander folgende Einsen schreiben: B 4 : Man ersetzt in BB 4 die Zeile 3, 0, 1, L, 0 durch 3, 0, 0, L, 0. Die so erhaltene Maschine B 4 schreibt 12 aufeinanderfolgende Einsen aufs Band (2 davon rechts vom Startfeld) und bleibt auf dem dritten leeren Feld links von diesen Einsen stehen. B 4 : Man ersetzt in BB 4 die Zeile 3, 0, 1, L, 0 durch 3, 0, 0, R, 0. Die so erhaltene Maschine B 4 schreibt 12 aufeinanderfolgende Einsen aufs Band (2 davon rechts vom Startfeld) und bleibt auf dem ersten leeren Feld links von diesen Einsen stehen.
63 Die Maschinen B 4 und B 4 im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Man kann aus BB 4 zwei Maschinen konstruieren, die jeweils 12 aufeinander folgende Einsen schreiben: B 4 : Man ersetzt in BB 4 die Zeile 3, 0, 1, L, 0 durch 3, 0, 0, L, 0. Die so erhaltene Maschine B 4 schreibt 12 aufeinanderfolgende Einsen aufs Band (2 davon rechts vom Startfeld) und bleibt auf dem dritten leeren Feld links von diesen Einsen stehen. B 4 : Man ersetzt in BB 4 die Zeile 3, 0, 1, L, 0 durch 3, 0, 0, R, 0. Die so erhaltene Maschine B 4 schreibt 12 aufeinanderfolgende Einsen aufs Band (2 davon rechts vom Startfeld) und bleibt auf dem ersten leeren Feld links von diesen Einsen stehen.
64 Die Maschine T 12n im Anfängerunterricht Einfache Programme Fleißige Biber mit Java B 4 B 4 erzeugt 24 aufeinander folgende Einsen und hält drei Felder links von der ersten Eins. Dies lässt sich beliebig oft wiederholen.
65 Die Maschine T 12n im Anfängerunterricht Einfache Programme Fleißige Biber mit Java B 4 B 4 erzeugt 24 aufeinander folgende Einsen und hält drei Felder links von der ersten Eins. Dies lässt sich beliebig oft wiederholen. B 4 B 4 erzeugt 24 aufeinander folgende Einsen und hält auf dem Feld links von der ersten Eins.
66 Die Maschine T 12n im Anfängerunterricht Einfache Programme Fleißige Biber mit Java B 4 B 4 erzeugt 24 aufeinander folgende Einsen und hält drei Felder links von der ersten Eins. Dies lässt sich beliebig oft wiederholen. B 4 B 4 erzeugt 24 aufeinander folgende Einsen und hält auf dem Feld links von der ersten Eins. Für jedes n > 2 definiert man: T 12n = B 4 B }{{} 4 B 4 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.
67 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java 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 D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch:
68 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
69 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
70 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
71 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
72 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
73 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
74 Σ ist nicht berechenbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Beweis. Angenommen, eine solche Maschine T Σ existiere. Die Anzahl ihrer Zustände sei k. Sei D n = T 12n T Σ. D n hat 4n + k Zustände und schreibt Σ(12n) auf das Band. Daher gilt: Σ(4n + k) Σ(12n) für n 1. Für n 0 > k 8 gilt 12n 0 > 4n 0 + k Aus der Monotonie von Σ folgt: Σ(12n 0 ) > Σ(4n 0 + k). Aus beiden Ungleichungen folgt der Widerspruch: Σ(12n 0 ) > Σ(4n 0 + k) Σ(12n 0 ).
75 Das Halteproblem ist nicht entscheidbar im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Gibt es eine berechenbare Funktion, die für jede Turingmaschine und jede Anfangsbeschriftung des Bandes entscheidet, ob diese Maschine mit diesem Band anhält?
76 Plausibilitätsbetrachtungen im Anfängerunterricht Einfache Programme Fleißige Biber mit Java Es gibt (4 (n + 1)) 2n Turingmaschinen mit n Zuständen. Zustände Mögliche Maschinen , , , , , Σ(3) = 6 (1963, Lin und Rado) Σ(4) = 13 (1975, Brady) Σ(5) 4098 (1989, Marxen und Buntrock) Σ(6) 4, (2007, T. und S. Ligocki)
77 Java Programmierumgebung im Anfängerunterricht mit Java Die Java-Umgebung Einfache Java-Programme
78 Methoden im Anfängerunterricht mit Java Die Java-Umgebung Einfache Java-Programme Methoden für haben das Präfix kara. move() putleaf() removeleaf() turnright() turnleft() treefront() treeleft() treeright() mushroomfront() onleaf()
79 im Anfängerunterricht mit Java Die Java-Umgebung Einfache Java-Programme
80 Einbettung in eclipse im Anfängerunterricht mit Java Die Java-Umgebung Einfache Java-Programme import javakara.javaprogram; public class suchebaum1 extends JavaProgram { 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) { JavaProgram program = new suchebaum1(); program.run("c:/kara/jkara01.world"); }}
81 Literatur im Anfängerunterricht mit Java : R. Reichert, J. Nievergelt, W. Hartmann: Programmieren mit, 2004, Springer, Berlin. Busy Beaver: W. Brauer: Grenzen maschineller Berechenbarkeit, Informatik-Spektrum 13 (1990), S * heiner/bb/ somos/bb.html voeller/th/thinf/node16.html michel/ha.html#tm42 kelleo/busybeaver/
Kapitel 2: Programmfluss steuern
Kapitel 2: Programmfluss steuern Thema: Programmieren Seite: 1 Kapitel 2: Programmfluss steuern Das Flussdiagramm Um schwierige Aufgaben beim Programmieren zu lösen, ist es oft hilfreich, den Programmablauf
MehrArbeitsblatt zu Methoden
Arbeitsblatt zu Methoden In den vorhergehenden Programmen haben wir bereits jede Menge Methoden benutzt: 1. kara.move(), kara.turnright(), kara.putleaf() Dies sind alles Methoden, die etwas ausführen,
MehrGierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {
Informatik: Einführung in Java Gierhardt Play it again, Kara! (Lsg.) 1. Kara soll ein Kleeblatt finden, das sich in der gleichen Zeile (oder Spalte) befindet wie er selbst. Zwischen ihm und dem Kleeblatt
MehrKurze Begründung, warum der Ausdruck korrekt ist oder jeweils zwei Gegenbeispiele, die zeigen, warum der Ausdruck nicht korrekt ist
Lösungen AUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE) AUFGABE 1.1 (3 PUNKTE) Lösung [3 Punkte total - jeweils 1 Punkt für gute Begründung der korrekten Ausdrücke, 1 Punkt für die mind. 1 korrektes Gegenbeispiel
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (V) 16.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrDank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver
Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
MehrWelches ist die fleißigste unter allen erdenklichen Turingmaschinen mit n Zuständen?
Fleißige Biber In den frühen sechziger Jahren ging Tibor Rado von der Ohio State University der Frage nach, wie viele Einsen eine Turingmaschine wohl auf ein zu Beginn leeres Band schreiben könne, ehe
MehrTuring-Maschinen: Ein abstrakes Maschinenmodell
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (V) 7.07.2016 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrHalteproblem/Kodierung von Turing-Maschinen
Halteproblem/Kodierung von Turing-Maschinen Unser Ziel ist es nun zu zeigen, dass das sogenannte Halteproblem unentscheidbar ist. Halteproblem (informell) Eingabe: Turing-Maschine M mit Eingabe w. Frage:
MehrAUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE)
AUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE) a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a, b, c [a-f] Ein beliebiges Zeichen aus der Menge {a, b, c, d, e, f \d eine
MehrGrundbegriffe der Informatik Tutorium 13
Grundbegriffe der Informatik Tutorium 13 Tutorium Nr. 16 Philipp Oppermann 3. Februar 2015 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (II) 2.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrGrundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)
Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen) Wiederholung mit Abbruchbedingung (while-schleife) Kara soll geradeaus laufen, bis er vor einem Baum steht: Situation vor dem Start
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (III) 8.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrUnentscheidbare Probleme bei formalen Sprachen
Unentscheidbare Probleme bei formalen Sprachen Maximilian Zagler 22.01.2008 Freie Universität Berlin, Institut für Informatik Proseminar Theoretische Informatik WS 07/08 Dozent: Prof. Dr. Helmut Alt 1
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik 0 KIT 17.05.2010 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am
MehrMethoden-Expertin. Aufgabe 1. Das Neue. Lösung in JavaKara. Puzzle: Expertin D
Methoden-Expertin Aufgabe 1 Kara steht vor einem Baum, der alleine in der Welt steht. Hinter dem Baum hat es ein Kleeblatt, das Kara aufheben soll. Danach soll Kara wieder zum Ausgangsort zurückkehren.
MehrKapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit
Kapitel 5 Entscheidbareit und Berechenbareit Wir wenden uns nun grundsätzlichen Fragen zu, nämlich den Fragen nach der prinzipiellen Lösbareit von Problemen. Dazu stellen wir auch einen Zusammenhang zwischen
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 17.November 2011 INSTITUT FÜR THEORETISCHE 0 KIT 17.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der
MehrKapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14
Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen
Mehr7. Übung TGI. Lorenz Hübschle-Schneider, Tobias Maier INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS. 1 Lorenz Hübschle-Schneider, Tobias Maier
7. Übung TGI Lorenz Hübschle-Schneider, Tobias Maier INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 Lorenz Hübschle-Schneider, Tobias Maier KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft
MehrTheoretische Informatik für Wirtschaftsinformatik und Lehramt
Theoretische Informatik für Wirtschaftsinformatik und Lehramt Universelle Turingmaschinen und Church sche These Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander
Mehr7.3.2 Fleißige Biber. 7 Berechenbarkeit
7 Berechenbarkeit 7.3.2 Fleißige Biber Definition 7.1 Fleißiger Biber busy beaver Biber sind vor allem für ihre teils gigantischen Dammbauten bekannt, mit denen sie Bäche aufstauen. Im Jahre 1961 führte
MehrKlausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)
Technische Universität Berlin, Berlin, 28.07.2016 Name:... Matr.-Nr.:... Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016) Einlesezeit: Bearbeitungszeit: Max.
MehrGrundlegende Programmierkonzepte: Anweisungen und Methoden
Grundlegende Programmierkonzepte: Anweisungen und Methoden Einleitung: Eigene Befehle definieren Kara steht vor einem Baum, der alleine in der Welt steht. Hinter dem Baum hat es ein Kleeblatt, das Kara
MehrGestern: Kara. Steuerung: Endliche Automaten
Gestern: Kara Steuerung: Endliche Automaten Heute: JavaKara Steuerung: Programmiersprache Java Java ist objektorientiert Zentrales Element: Objekt kara Bett world Stuhl Tisch Objekte: Befehle und Sensoren
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Tutorium 1-13. Sitzung Dennis Felsing dennis.felsing@student.kit.edu http://www.stud.uni-karlsruhe.de/~ubcqr/2010w/tut gbi/ 2011-01-31 Turingmaschinen 1 Turingmaschinen Wiederholung
MehrLOOP-Programme: Syntaktische Komponenten
LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=
Mehr1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus
//5 Abstrakte Maschinenmodelle: Turingmaschine (TM) 96 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus einem festen Teil ( "Hardware ) einem variablen Teil ( "Software
MehrProgrammieren - wie einsteigen? class HelloWorldApp { public static void main(string[] args) { System.out.println("Hello World!
Programmieren - wie einsteigen? class HelloWorldApp { public static void main(string[] args) { System.out.println("Hello World!"); } } Programmiersprachen: Wie Sand am Meer http://www.digibarn.com/collections/posters/tongues/
MehrKapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
MehrSemi-Entscheidbarkeit und rekursive Aufzählbarkeit
Semi-Entscheidbarkeit und rekursive Aufzählbarkeit Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 9. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung
MehrGrundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte
Grundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte Erklärungen zu Methoden- Parametern Kara soll vor sich eine Spur von x Kleeblättern legen. Die Anzahl x sei variabel. Karas
Mehr5 Der Begriff Berechnungsmodell
5 Der Begriff Berechnungsmodell Die Lernumgebung Kara bietet nicht nur einen Einstieg in die Grundlagen von Algorithmen und Programmen, sondern auch eine intuitive Einführung des zentralen Begriffs Berechnungsmodell.
MehrEinführung in die Informatik Turing Machines
Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard 1 Motivation und Einleitung Bisher haben wir verschiedene Programmiersprachen
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik
MehrVL-06: Unentscheidbarkeit II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
VL-06: Unentscheidbarkeit II (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-06: Unentscheidbarkeit II 1/37 Organisatorisches Nächste Vorlesung: Mittwoch, November
MehrUnentscheidbarkeit. Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen
Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Prof. Barbara König Übungsleitung: Henning Kerstan & Jan Stückrath Worum geht
MehrÜbungsblatt 1. Lorenz Leutgeb. 30. März 2015
Übungsblatt Lorenz Leutgeb 30. März 205 Aufgabe. Annahmen ohne Einschränkungen: P Σ und P Γ. Per Definitionem der Reduktion: P P 2 f : Σ Γ wobei f total und berechenbar, genau so, dass: w Σ : w P f(w)
MehrGrundbegriffe der Informatik Tutorium 13
Grundbegriffe der Informatik Tutorium 13 Tutorium Nr. 32 Philipp Oppermann 12. Februar 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrFalls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis:
1 Unentscheidbarkeit 2 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 #include char *s="include
MehrGrundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07 15. Vorlesung 14.12.2006 1 Reduktionen Unentscheidbare Probleme Das Halteproblem Das Leerheitsproblem einer Turingmaschine Ein einfaches nicht
MehrInformatik 11: Einführung in Java. Lösungen zu den Rekursions-Aufgaben
Informatik 11: Einführung in Java Lösungen zu den Rekursions-Aufgaben Gierhardt 1. KARA steht in einer Reihe, an deren Ende ein Baum steht. KARA soll bis zum Baum laufen, dabei alle Blätter einsammeln
MehrDas Halteproblem für Turingmaschinen
Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.
MehrEinführung in die Informatik Turing Machines
Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene
MehrÜbungsblatt 3. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 3 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 21. November 2017 Abgabe 5. Dezember 2017, 11:00 Uhr
MehrRekursive Aufzählbarkeit Die Reduktion
Rekursive Aufzählbarkeit Die Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrUnentscheidbarkeitssätze der Logik
Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie
MehrDie Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice
Die Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice Holger Arnold Dieser Text befasst sich mit der Frage, unter welchen Bedingungen das Problem, zu bestimmen, ob die
MehrTheoretische Informatik 1
Theoretische Informatik 1 Vollständigkeit 1 David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 20.05.2016 Übersicht Schwere Definition CIRCUIT-VALUE ist P-schwer
MehrGrundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:
MehrEinführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7
MehrTheoretische Informatik. Ackermann-Funktion. Ali Eyerta
Theoretische Informatik Ackermann-Funktion Ali Eyerta Inhalt Entstehungsgeschichte Bedeutung in der Theoretischen Informatik Ackermanns Idee Ackermann-Funktion Anwendungen Benchmark für rekursive Aufrufe
MehrMächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen
Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen
MehrPrüfung Computation, Programming
Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,
MehrEin formales Berechnungsmodell: Turingmaschinen. Turingmaschinen 26 / 62
Ein formales Berechnungsmodell: Turingmaschinen Turingmaschinen 26 / 62 Ein formales Rechnermodell Bisher haben wir abstrakt von Algorithmen bzw. Programmen gesprochen und uns dabei JAVA- oder C++-Programme
MehrWie man eine Sprache versteht
Aufzählbarkeit Formale Grundlagen der Informatik 1 Kapitel 10 Aufzählbarkeit und (Un-)Entscheidbarkeit Frank Heitmann heitmann@informatik.uni-hamburg.de 11. Mai 2015 Definition 1 Eine Menge M Σ heißt (rekursiv)
MehrSyntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
MehrZeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1
Zeitkomplexität (1) Proseminar Theoretische Informatik Proseminar Theoretische Informatik: Lisa Dohrmann 1 Warum Komplexitätsbetrachtung? Ein im Prinzip entscheidbares und berechenbares Problem kann in
MehrTHEORETISCHE INFORMATIK UND LOGIK
Was bisher geschah... Grundbegriffe, die wir verstehen und erklären können: DTM, NTM, Entscheider, Aufzähler, berechenbar/entscheidbar, semi-entscheidbar, unentscheidbar, Church-Turing-These THEORETISCHE
MehrPROGRAMMIEREN. Kapitel 1 Erste Schritte
PROGRAMMIEREN Kapitel 1 Erste Schritte Ziele von Heute 2 Greenfoot kennen lernen Kara Szenario verstehen Ausführen und schreiben von Programmen Greenfoot Oberfläche Welt Klassendiagramm 3 Greenfoot-Steuerung
MehrHTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1. Variables to store a true/false state: boolean movingright = true;
HTW IMI-B Informatik 1 Kara Worksheet 2 Seite: 1 You will need these Java constructs for the following exercises: Variables to count things: int zaehler = 0; Variables to store a true/false state: boolean
MehrTHEORETISCHE INFORMATIK UND LOGIK
THEORETISCHE INFORMATIK UND LOGIK 3. Vorlesung: WHILE und LOOP Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 12. April 2017 Was bisher geschah... Grundbegriffe, die wir verstehen und erklären
MehrLOOP-Programme: Syntaktische Komponenten
LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=
MehrInformatik III. Arne Vater Wintersemester 2006/ Vorlesung
Informatik III Arne Vater Wintersemester 2006/07 11. Vorlesung 30.11.2006 1 Beziehungen zwischen den Sprachen Jede reguläre Sprache ist eine kontextfreie Sprache. Jede kontextfreie Sprache ist eine entscheidbare
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
MehrKapitel 1: Die ersten Schritte 1
Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte 1 Starten Sie Eclipse. Importieren Sie das Eclipse-Projekt scenarios-chapter-1. Gehen Sie in den Unterordner
MehrEinführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (V) 15.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrTheoretische Informatik 1
Theoretische Informatik 1 Search - Beweis der Korrektheit David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2013 Algemeine Anmerkungen zur Übung 9 Aufgabenblätter, 3 Abgabetermine
MehrTuring Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.
Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger
MehrTheoretische Informatik
Theoretische Informatik Lektion 10: Entscheidbarkeit Kurt-Ulrich Witt Wintersemester 2013/14 Kurt-Ulrich Witt Theoretische Informatik Lektion 10 1/15 Inhaltsverzeichnis Kurt-Ulrich Witt Theoretische Informatik
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische
MehrÜbungsaufgaben Blatt 3
Departement Informatik Open Class Sieben Wunder der Informatik Prof Dr Juraj Hromkovič Übungsaufgaben Blatt 3 Zürich, 23 November 26 Zusammenfassung und Aufgaben Ein Entscheidungsproblem besteht darin,
MehrRekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
MehrDas Postsche Korrespondenzproblem
Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w
Mehr3 Endliche Muster und Konfigurationen
3 Endliche Muster und Konfigurationen Wir gehen von nun an immer davon aus, dass 0 N ist. 3.1 Definition Eine Teilmenge P Q heißt genau dann Ruhemenge oder passiv, wenn für alle l : N Q mit ran(l) P gilt:
MehrBerechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion
Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 26. November 2007 Semi-Entscheidbarkeit
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07 13. Vorlesung 07.12.2006 1 Überblick: Die Church- Turing-These Turing-Maschinen 1-Band Turing-Maschine Mehrband-Turing-Maschinen Nichtdeterministische
MehrAufgaben: Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public c l a s s Quadrat extends JavaKaraProgram 4 { 5 void turnaround ( )
Informatik: Einführung in Java Gierhardt Kara legt Muster!(Lsg.) Aufgaben: 1. Kara soll ein mit Kleeblättern gefülltes Quadrat mit variabler Seitenlänge ablegen. Der Methodenaufruf quadratzeichnen(5) soll
MehrKlausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014
Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe
Mehr11.3 Eindimensionale Turingmaschinen
11.3 Eindimensionale Turingmaschinen 156 11.3 Eindimensionale Turingmaschinen Turing ging vom schriftlichen Rechnen aus, also vom Beschreiben eines Papiers mit einem Stift. Wollen wir etwas aufschreiben,
MehrBerechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion
Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 7. Dezember 2006 Rekursiv vs. rekursiv
MehrProbeklausur zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Probeklausur 25.01.2013 Probeklausur zur Vorlesung Berechenbarkeit und Komplexität Aufgabe 1 (1+2+6+3 Punkte)
MehrDank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Akzeptierbarkeit und Entscheidbarkeit. Teil V.
Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
MehrGrundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:
MehrGrundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:
Mehrimport JavaKaraProgram; public class Quadrat extends JavaKaraProgram { // Anfang von Quadrat void turnaround() { kara.turnleft(); kara.
Informatik 11: Einführung in Java Kara legt Muster!(Lsg.) Gierhardt Aufgaben: 1. KARA soll ein mit Kleeblättern gefülltes Quadrat mit variabler Seitenlänge ablegen. Der Methodenaufruf quadratzeichnen(5)
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
Mehr4 Die Turing-Maschine
16 4 Die Turing-Maschine 4.1 Wörter und Gödelisierung Ein Alphabet ist eine endliche Menge verschiedener Objekte {a 1, a 2,..., a k }, die wir auch Buchstaben nennen. Dies können die uns bekannten Buchstaben
MehrSatz von Rice. Lemma 39
Unentscheidbarkeit Satz von Rice Das nächste Resultat zeigt, dass jede Eigenschaft der von einer Turing-Maschine berechneten Funktion unentscheidbar ist. Das bedeutet, es gibt keine Methode, mit der man
MehrÜbung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
MehrUnentscheidbarkeit des Halteproblems: Unterprogrammtechnik
Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Oktober 2011 Berthold Vöcking, Informatik 1 () Vorlesung
MehrMusterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14
Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 23/4 Vorname Nachname Matrikelnummer Hinweise Für die
Mehr