12,297
edits
No edit summary |
mNo edit summary |
||
Line 6: | Line 6: | ||
=Turingmaschine= | ==Turingmaschine== | ||
Das 1936 von Alan Turing beschriebene Modell der Turingmaschine ist, einfach formuliert, ein theoretisches Gerät zur Simulation von Algorithmen. Im Folgenden soll es kurz vereinfacht dargestellt werden. | Das 1936 von Alan Turing beschriebene Modell der Turingmaschine ist, einfach formuliert, ein theoretisches Gerät zur Simulation von Algorithmen. Im Folgenden soll es kurz vereinfacht dargestellt werden. | ||
==Aufbau== | ===Aufbau=== | ||
[[Image:Md-turing-aufbau.png|thumb|Abbildung 1: Schematische Darstellung einer Turingmaschine]] | [[Image:Md-turing-aufbau.png|thumb|Abbildung 1: Schematische Darstellung einer Turingmaschine]] | ||
Line 16: | Line 16: | ||
Eine Turingmaschine besteht aus einem unendlichen und in gleichgroße Felder eingeteilten Speicherband, einem entlang des Bandes beweglichen Schreib- und Lesekopf sowie einem Programm zur Steuerung des Kopfes (vgl. Abbildung 1). | Eine Turingmaschine besteht aus einem unendlichen und in gleichgroße Felder eingeteilten Speicherband, einem entlang des Bandes beweglichen Schreib- und Lesekopf sowie einem Programm zur Steuerung des Kopfes (vgl. Abbildung 1). | ||
==Funktionsweise== | ===Funktionsweise=== | ||
Während der Ausführung eines Programms auf der Turingmaschine wird der Wert des Feldes unter dem Schreib-/Lesekopf ausgelesen und dem Programm entsprechend neu beschrieben. Dann wird der Kopf in der vom Programm vorgegeben Richtung links oder rechts entlang des Speicherbandes ein Feld weiter bewegt. | Während der Ausführung eines Programms auf der Turingmaschine wird der Wert des Feldes unter dem Schreib-/Lesekopf ausgelesen und dem Programm entsprechend neu beschrieben. Dann wird der Kopf in der vom Programm vorgegeben Richtung links oder rechts entlang des Speicherbandes ein Feld weiter bewegt. | ||
Line 38: | Line 38: | ||
Sollte die letzte Richtungsangabe keinen Halt verursachen, wird der Zyklus für das erreichte Feld erneut durchlaufen. | Sollte die letzte Richtungsangabe keinen Halt verursachen, wird der Zyklus für das erreichte Feld erneut durchlaufen. | ||
==Programm== | ===Programm=== | ||
[[Image:Md-turing-programm.png|thumb|Abbildung 2: Sortieralgorithmus für eine Turingmaschine]] | [[Image:Md-turing-programm.png|thumb|Abbildung 2: Sortieralgorithmus für eine Turingmaschine]] | ||
Line 60: | Line 60: | ||
Die Idee einer erlebbaren Turingmaschine konnte bereits von mehreren Personen an einem einfachen Modell ausprobiert werden. Dieses Modell soll im Folgenden beschrieben werden, die teilnehmenden Personen werden dabei als Agenten ('Handelnde') bezeichnet. | Die Idee einer erlebbaren Turingmaschine konnte bereits von mehreren Personen an einem einfachen Modell ausprobiert werden. Dieses Modell soll im Folgenden beschrieben werden, die teilnehmenden Personen werden dabei als Agenten ('Handelnde') bezeichnet. | ||
==Aufbau== | ===Aufbau=== | ||
[[Image:Md-turing-modell-1.png|thumb|Abbildung 3: Modellaufbau]] | [[Image:Md-turing-modell-1.png|thumb|Abbildung 3: Modellaufbau]] | ||
Line 68: | Line 68: | ||
In diesem einfachen Modell wird das Speicherband von einer Schnur gebildet, an der Buchstabenkärtchen (A und B, zufällig verteilt) befestigt sind. Die Agenten erhalten einen eigenen Vorrat an Buchstabenkärtchen, die sie während des Programmablaufs mit den bereits hängenden Kärtchen vertauschen können. Die Programminstruktionen liegen schriftlich vor (vgl. Abbildung 4), der aktuelle Maschinenzustand kann mit Hilfe einer Klammer an den Programminstruktionen markiert werden. | In diesem einfachen Modell wird das Speicherband von einer Schnur gebildet, an der Buchstabenkärtchen (A und B, zufällig verteilt) befestigt sind. Die Agenten erhalten einen eigenen Vorrat an Buchstabenkärtchen, die sie während des Programmablaufs mit den bereits hängenden Kärtchen vertauschen können. Die Programminstruktionen liegen schriftlich vor (vgl. Abbildung 4), der aktuelle Maschinenzustand kann mit Hilfe einer Klammer an den Programminstruktionen markiert werden. | ||
==Programmierung== | ===Programmierung=== | ||
Auch hier wurden die Programmanweisungen ähnlich wie in Abbildung 4 angeordnet. Die Anweisungen wurden dabei schriftlich ausformuliert. Zur Verbesserung der Übersichtlichkeit wurden dabei sämtliche Aktionen weggelassen, die keine Änderung des Feldes oder Zustands bewirken. | Auch hier wurden die Programmanweisungen ähnlich wie in Abbildung 4 angeordnet. Die Anweisungen wurden dabei schriftlich ausformuliert. Zur Verbesserung der Übersichtlichkeit wurden dabei sämtliche Aktionen weggelassen, die keine Änderung des Feldes oder Zustands bewirken. | ||
Line 78: | Line 78: | ||
Gehe weiter nach '''links'''. | Gehe weiter nach '''links'''. | ||
==Ablauf== | ===Ablauf=== | ||
[[Image:Md-turing-modell-2.png|thumb|Abbildung 5: Programmablauf]] | [[Image:Md-turing-modell-2.png|thumb|Abbildung 5: Programmablauf]] | ||
Line 86: | Line 86: | ||
Die Agenten beginnen an einer beliebigen Stelle des Bandes (links vom ersten leeren Feld am Ende der Zeichenkette, sonst funktioniert das Programm nicht) im Programmzustand '''1'''. Im folgenden sehen sie jeweils in der Programmtabelle nach und handeln entsprechend der Instruktionen für den abgelesenen Wert und ihren gegenwärtigen Zustand so lange, bis das Programm einen HALT verlangt. Damit sollten sie die Buchstaben auf dem Band sortiert haben. | Die Agenten beginnen an einer beliebigen Stelle des Bandes (links vom ersten leeren Feld am Ende der Zeichenkette, sonst funktioniert das Programm nicht) im Programmzustand '''1'''. Im folgenden sehen sie jeweils in der Programmtabelle nach und handeln entsprechend der Instruktionen für den abgelesenen Wert und ihren gegenwärtigen Zustand so lange, bis das Programm einen HALT verlangt. Damit sollten sie die Buchstaben auf dem Band sortiert haben. | ||
==Ergebnisse== | ===Ergebnisse=== | ||
Alle Personen gaben nach einem erfolgreichen Durchlaufen des Programmes an, das Konzept der Turingmaschine besser verstanden zu haben als nach einer rein theoretischen Erklärung. | Alle Personen gaben nach einem erfolgreichen Durchlaufen des Programmes an, das Konzept der Turingmaschine besser verstanden zu haben als nach einer rein theoretischen Erklärung. | ||
Line 94: | Line 94: | ||
=Konzepte für erlebbare Turingmaschinen= | ==Konzepte für erlebbare Turingmaschinen== | ||
Generell soll versucht werden, das Erlebnis der Personen, die in die Rolle der Maschine schlüpfen, so ansprechend wie möglich zu machen. Dabei sollen jedoch auch außenstehende Betrachtende mitverfolgen können, welche Ergebnisse die Aktionen der Agenten hervorrufen. | Generell soll versucht werden, das Erlebnis der Personen, die in die Rolle der Maschine schlüpfen, so ansprechend wie möglich zu machen. Dabei sollen jedoch auch außenstehende Betrachtende mitverfolgen können, welche Ergebnisse die Aktionen der Agenten hervorrufen. | ||
==Lichttunnel== | ===Lichttunnel=== | ||
[[Image:Md-turing-lichttunnel.png|thumb|Abbildung 7: Erlebbare Turingmaschine als Lichttunnel (Person aus einem Photo von scott*eric)]] | [[Image:Md-turing-lichttunnel.png|thumb|Abbildung 7: Erlebbare Turingmaschine als Lichttunnel (Person aus einem Photo von scott*eric)]] | ||
===Aufbau=== | ====Aufbau==== | ||
Das Speicherband wird von einem nach zwei Seiten offenen Gang/Tunnel gebildet. Die Enden werden entweder durch vorstehende Gang-Elemente oder einer Markierung auf dem Boden in den Raum verlängert, um die Unendlichkeit des Bandes anzudeuten (siehe Abbildung 7). | Das Speicherband wird von einem nach zwei Seiten offenen Gang/Tunnel gebildet. Die Enden werden entweder durch vorstehende Gang-Elemente oder einer Markierung auf dem Boden in den Raum verlängert, um die Unendlichkeit des Bandes anzudeuten (siehe Abbildung 7). | ||
Line 113: | Line 113: | ||
Dazu gibt es an jeder Station drei Tastschalter, mit denen die Farbe der Beleuchtung der Station geändert werden kann. | Dazu gibt es an jeder Station drei Tastschalter, mit denen die Farbe der Beleuchtung der Station geändert werden kann. | ||
===Programmanweisungen=== | ====Programmanweisungen==== | ||
Für diesen Aufbau, bei dem die Agenten die Programmanweisungen von Station zu Station mitnehmen müssen, bietet es sich an, diese auf Postkarten zu drucken. Sie können dann am Ende mitgenommen werden und eignen sich dabei gut zur Bewerbung der Turingmaschine. | Für diesen Aufbau, bei dem die Agenten die Programmanweisungen von Station zu Station mitnehmen müssen, bietet es sich an, diese auf Postkarten zu drucken. Sie können dann am Ende mitgenommen werden und eignen sich dabei gut zur Bewerbung der Turingmaschine. | ||
===Programmablauf=== | ====Programmablauf==== | ||
Ein möglicher Programmablauf für einen Sortieralgorithmus könnte so aussehen: | Ein möglicher Programmablauf für einen Sortieralgorithmus könnte so aussehen: | ||
Line 128: | Line 128: | ||
* Dort führen sie erneut die Programmanweisungen aus. Dies wird so lange wiederholt, bis sie die Farben korrekt sortiert haben und das Programm sie anhalten lässt. | * Dort führen sie erneut die Programmanweisungen aus. Dies wird so lange wiederholt, bis sie die Farben korrekt sortiert haben und das Programm sie anhalten lässt. | ||
==Interaktives scrollbares Speicherband== | ===Interaktives scrollbares Speicherband=== | ||
[[Image:Md-turing-scrollband.png|thumb|Abbildung 8: Erlebbare Turingmaschine als interaktives scrollbares Speicherband (Person aus einem Photo von Skeggzatori)]] | [[Image:Md-turing-scrollband.png|thumb|Abbildung 8: Erlebbare Turingmaschine als interaktives scrollbares Speicherband (Person aus einem Photo von Skeggzatori)]] | ||
===Aufbau=== | ====Aufbau==== | ||
Der Speicherbandinhalt wird von vorne oder hinten auf eine Oberfläche in Bandform projiziert (siehe Abbildung 8). Dabei wäre auch eine Variante ähnlich einer horizontal auf- und abrollbaren Papierrolle denkbar. | Der Speicherbandinhalt wird von vorne oder hinten auf eine Oberfläche in Bandform projiziert (siehe Abbildung 8). Dabei wäre auch eine Variante ähnlich einer horizontal auf- und abrollbaren Papierrolle denkbar. | ||
Line 142: | Line 142: | ||
In einigen Metern Abstand zum Speicherband steht eine Konsole mit welcher die Agenten das Band steuern und den Inhalt überschreiben können. Die Steuerung erfolgt dabei mit Hilfe eines Touchscreens, der jeweils den Inhalt des Speicherfeldes an der aktuellen Position anzeigt. Soll der Inhalt überschrieben werden, wird der Bildschirm mit einer Wischgeste geleert und der neue Wert von Hand geschrieben. Das Band wird durch Ziehgesten nach rechts oder links bewegt. | In einigen Metern Abstand zum Speicherband steht eine Konsole mit welcher die Agenten das Band steuern und den Inhalt überschreiben können. Die Steuerung erfolgt dabei mit Hilfe eines Touchscreens, der jeweils den Inhalt des Speicherfeldes an der aktuellen Position anzeigt. Soll der Inhalt überschrieben werden, wird der Bildschirm mit einer Wischgeste geleert und der neue Wert von Hand geschrieben. Das Band wird durch Ziehgesten nach rechts oder links bewegt. | ||
===Programmanweisungen=== | ====Programmanweisungen==== | ||
In diesem Aufbau bietet es sich an, die Programmanweisungen auf der Bedienkonsole mittels eines seperaten Touchscreens darzustellen, da sie nicht portabel sein müssen. Dies ermöglicht es außerdem, auf dieser Maschine verschiedene Programme auszuführen, da der Bandinhalt und die Programmanweisungen rein digital vorliegen. | In diesem Aufbau bietet es sich an, die Programmanweisungen auf der Bedienkonsole mittels eines seperaten Touchscreens darzustellen, da sie nicht portabel sein müssen. Dies ermöglicht es außerdem, auf dieser Maschine verschiedene Programme auszuführen, da der Bandinhalt und die Programmanweisungen rein digital vorliegen. | ||
===Programmablauf=== | ====Programmablauf==== | ||
Ein möglicher Programmablauf könnte so aussehen: | Ein möglicher Programmablauf könnte so aussehen: | ||
Line 157: | Line 157: | ||
* Dort führt er/sie erneut die Programmanweisungen aus. Dies wird so lange wiederholt, bis das Programm beendet ist oder abgebrochen wird. | * Dort führt er/sie erneut die Programmanweisungen aus. Dies wird so lange wiederholt, bis das Programm beendet ist oder abgebrochen wird. | ||
==Modelleisenbahn== | ===Modelleisenbahn=== | ||
[[Image:Md-turing-eisenbahn.png|thumb|Abbildung 9: Erlebbare Turingmaschine als Modelleisenbahn (Personen aus einem Photo von dpape)]] | [[Image:Md-turing-eisenbahn.png|thumb|Abbildung 9: Erlebbare Turingmaschine als Modelleisenbahn (Personen aus einem Photo von dpape)]] | ||
===Aufbau=== | ====Aufbau==== | ||
Auf einem Tisch ist eine Modelleisenbahnstrecke aufgebaut und formt dabei einen geschlossen Ring (siehe Abbildung 9). Fast die gesamte Strecke wird von einem Güterzug eingenommen, der das Speicherband der Turingmaschine repräsentiert. Jeder Wagen steht dabei für einen Speicherplatz auf dem Band. | Auf einem Tisch ist eine Modelleisenbahnstrecke aufgebaut und formt dabei einen geschlossen Ring (siehe Abbildung 9). Fast die gesamte Strecke wird von einem Güterzug eingenommen, der das Speicherband der Turingmaschine repräsentiert. Jeder Wagen steht dabei für einen Speicherplatz auf dem Band. | ||
Line 169: | Line 169: | ||
Sollten die Güterwagen mit realen Gütern beladen werden, muss eine Möglichkeit gefunden werden, die Be- und Entladung zügig durchzuführen, sowie einen großen Vorrat der Güter parat zu halten. Die Güterwagen könnten jedoch auch mit fiktiven Gütern in der Form von RGB LEDs beladen sein, deren Farbe man an der Ladestation ändern kann. Dies würde zusätzlich ein Zurücksetzen auf einen Startzustand erleichtern. | Sollten die Güterwagen mit realen Gütern beladen werden, muss eine Möglichkeit gefunden werden, die Be- und Entladung zügig durchzuführen, sowie einen großen Vorrat der Güter parat zu halten. Die Güterwagen könnten jedoch auch mit fiktiven Gütern in der Form von RGB LEDs beladen sein, deren Farbe man an der Ladestation ändern kann. Dies würde zusätzlich ein Zurücksetzen auf einen Startzustand erleichtern. | ||
===Programmanweisungen=== | ====Programmanweisungen==== | ||
Auch in diesem Aufbau bietet es sich an, die Programmanweisungen auf der Bedienkonsole statisch darzustellen, da sie nicht portabel sein müssen. Dabei wäre es trotzdem praktisch, den aktuellen Programmzustand etwa durch eine Beleuchtung der Zeile hervorheben zu können. | Auch in diesem Aufbau bietet es sich an, die Programmanweisungen auf der Bedienkonsole statisch darzustellen, da sie nicht portabel sein müssen. Dabei wäre es trotzdem praktisch, den aktuellen Programmzustand etwa durch eine Beleuchtung der Zeile hervorheben zu können. | ||
===Programmablauf=== | ====Programmablauf==== | ||
Ein möglicher Programmablauf könnte so aussehen: | Ein möglicher Programmablauf könnte so aussehen: | ||
Line 185: | Line 185: | ||
=Weitere Überlegungen= | ==Weitere Überlegungen== | ||
==Analog/Digital== | ===Analog/Digital=== | ||
Alle vorgeschlagenen Konzepte setzen die Anwendung eines Rechners bzw. Mikrocontrollers im Hintergrund voraus. Teilweise wäre es möglich, dies zu vermeiden, allerdings nur auf Kosten der Wiederholbarkeit. Sobald mehrere Personen die Turingmaschine erleben wollen, muss es eine Möglichkeit geben, den von vorhergehenden BesucherInnen herbeigeführten Zustand wieder zum Ausgangszustand oder auf einen neuen Anfangszustand zurückzusetzen. Ohne Elektronik müsste das manuell geschehen und würde einen hohen Administrationsaufwand verursachen. | Alle vorgeschlagenen Konzepte setzen die Anwendung eines Rechners bzw. Mikrocontrollers im Hintergrund voraus. Teilweise wäre es möglich, dies zu vermeiden, allerdings nur auf Kosten der Wiederholbarkeit. Sobald mehrere Personen die Turingmaschine erleben wollen, muss es eine Möglichkeit geben, den von vorhergehenden BesucherInnen herbeigeführten Zustand wieder zum Ausgangszustand oder auf einen neuen Anfangszustand zurückzusetzen. Ohne Elektronik müsste das manuell geschehen und würde einen hohen Administrationsaufwand verursachen. | ||
==Fehlerfeedback== | ===Fehlerfeedback=== | ||
Die verwendete Steuerungselektronik ermöglicht es, über eine falsche Ausführung der Programmanweisungen zu informieren. Dadurch kann verhindert werden, dass der/die BesucherIn aufgrund seines/ihres Fehlers das Programm nicht zu Ende bringen kann. Das könnte beispielsweise mittels eines Signaltons erfolgen. | Die verwendete Steuerungselektronik ermöglicht es, über eine falsche Ausführung der Programmanweisungen zu informieren. Dadurch kann verhindert werden, dass der/die BesucherIn aufgrund seines/ihres Fehlers das Programm nicht zu Ende bringen kann. Das könnte beispielsweise mittels eines Signaltons erfolgen. |