Informatik mit Kara. Spielerischer Einstieg in die Informatik. Gerhard Bitsch. Seminarsitzung Informatik, Januar Kepler - Gymnasium Tübingen

Größe: px
Ab Seite anzeigen:

Download "Informatik mit Kara. Spielerischer Einstieg in die Informatik. Gerhard Bitsch. Seminarsitzung Informatik, Januar Kepler - Gymnasium Tübingen"

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 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

Mehr

Arbeitsblatt zu Methoden

Arbeitsblatt 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,

Mehr

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Gierhardt. 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

Mehr

Kurze Begründung, warum der Ausdruck korrekt ist oder jeweils zwei Gegenbeispiele, die zeigen, warum der Ausdruck nicht korrekt ist

Kurze 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver

Dank. 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

Mehr

Welches ist die fleißigste unter allen erdenklichen Turingmaschinen mit n Zuständen?

Welches 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

Mehr

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Halteproblem/Kodierung von Turing-Maschinen

Halteproblem/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:

Mehr

AUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE)

AUFGABE 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

Mehr

Grundbegriffe der Informatik Tutorium 13

Grundbegriffe 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)

Grundlegende 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Unentscheidbare Probleme bei formalen Sprachen

Unentscheidbare 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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Methoden-Expertin. Aufgabe 1. Das Neue. Lösung in JavaKara. Puzzle: Expertin D

Methoden-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.

Mehr

Kapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit

Kapitel 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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Kapitel: 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

Mehr

7. Ü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 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

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische 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

Mehr

7.3.2 Fleißige Biber. 7 Berechenbarkeit

7.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

Mehr

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Klausur: 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.

Mehr

Grundlegende Programmierkonzepte: Anweisungen und Methoden

Grundlegende 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

Mehr

Gestern: Kara. Steuerung: Endliche Automaten

Gestern: 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

Mehr

Grundbegriffe der Informatik

Grundbegriffe 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

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-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: ; :=

Mehr

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus

1936 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

Mehr

Programmieren - 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! 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/

Mehr

Kapitel 3: Variablen

Kapitel 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

Mehr

Semi-Entscheidbarkeit und rekursive Aufzählbarkeit

Semi-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

Mehr

Grundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte

Grundlegende 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

Mehr

5 Der Begriff Berechnungsmodell

5 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.

Mehr

Einführung in die Informatik Turing Machines

Einfü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

Mehr

Einführung in die Theoretische Informatik

Einfü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

Mehr

VL-06: Unentscheidbarkeit II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

VL-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

Mehr

Unentscheidbarkeit. Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

Unentscheidbarkeit. 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 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)

Mehr

Grundbegriffe der Informatik Tutorium 13

Grundbegriffe 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

Mehr

Falls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis:

Falls 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

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen 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

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Informatik 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

Mehr

Informatik 11: Einführung in Java. Lösungen zu den Rekursions-Aufgaben

Informatik 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

Mehr

Das Halteproblem für Turingmaschinen

Das 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.

Mehr

Einführung in die Informatik Turing Machines

Einfü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

Ü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

Mehr

Rekursive Aufzählbarkeit Die Reduktion

Rekursive 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

Mehr

Unentscheidbarkeitssätze der Logik

Unentscheidbarkeitssä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

Mehr

Die Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice

Die 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

Mehr

Theoretische Informatik 1

Theoretische 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

Mehr

Grundlagen 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 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:

Mehr

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich

Einfü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

Mehr

Theoretische Informatik. Ackermann-Funktion. Ali Eyerta

Theoretische 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

Mehr

Mä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 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

Mehr

Prüfung Computation, Programming

Prü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,

Mehr

Ein formales Berechnungsmodell: Turingmaschinen. Turingmaschinen 26 / 62

Ein 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

Mehr

Wie man eine Sprache versteht

Wie 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)

Mehr

Syntax von LOOP-Programmen

Syntax 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:

Mehr

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Zeitkomplexitä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

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE 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

Mehr

PROGRAMMIEREN. Kapitel 1 Erste Schritte

PROGRAMMIEREN. 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

Mehr

HTW 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. 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

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE 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

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-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: ; :=

Mehr

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

Informatik 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

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 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

Mehr

Kapitel 1: Die ersten Schritte 1

Kapitel 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

Mehr

Einführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einfü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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Theoretische Informatik 1

Theoretische 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

Mehr

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Turing 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

Mehr

Theoretische Informatik

Theoretische 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

Mehr

Einführung in die Theoretische Informatik

Einfü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

Ü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,

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv 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

Mehr

Das Postsche Korrespondenzproblem

Das 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

Mehr

3 Endliche Muster und Konfigurationen

3 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:

Mehr

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

Berechenbarkeit 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

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Informatik 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

Mehr

Aufgaben: Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public c l a s s Quadrat extends JavaKaraProgram 4 { 5 void turnaround ( )

Aufgaben: 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

Mehr

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Klausur 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

Mehr

11.3 Eindimensionale Turingmaschinen

11.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,

Mehr

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

Berechenbarkeit 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

Mehr

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Probeklausur 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)

Mehr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Akzeptierbarkeit und Entscheidbarkeit. Teil V.

Dank. 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

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen 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:

Mehr

Grundlagen 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 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:

Mehr

import JavaKaraProgram; public class Quadrat extends JavaKaraProgram { // Anfang von Quadrat void turnaround() { kara.turnleft(); kara.

import 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)

Mehr

1 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 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

Mehr

4 Die Turing-Maschine

4 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

Mehr

Satz von Rice. Lemma 39

Satz 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 Ü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

Mehr

Unentscheidbarkeit des Halteproblems: Unterprogrammtechnik

Unentscheidbarkeit 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

Mehr

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Musterlö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