1) Das Treppenproblem Fachseminar Informatik Die Eingangstreppe des Max-von-Laue-Gymnasium mit 7 Stufen kann man auf verschiedene Arten hinaufgehen, z.b: Wie viele verschiedene Möglichkeiten gibt es, die Treppe hinaufzulaufen, wenn man mit jedem Schritt eine oder zwei Stufen nehmen kann? (1) Eine Treppe mit zwei Stufen erklimmt man auf zwei Arten, entweder mit einem Doppelschritt oder zwei Einzelschritten: (2) Treppe mit 3 Stufen: (3) Treppe mit 4 Stufen: (4) Treppe mit 5 Stufen: 1
2) Das Taxiproblem Fachseminar Informatik Ma sieht einen Stadtplan der Mannheimer Innenstadt. Wie viele verschiedene gleich lange Wege gibt es für einen Taxifahrer, von A nach B zu fahren? B A 3) Die Türme von Hanoi Im Großen Tempel von Benares, unter dem Dom, der die Mitte der Welt markiert, ruht eine Messingplatte, in der drei Diamantnadeln befestigt sind, jede eine Elle hoch und so stark wie der Körper einer Biene. Bei der Erschaffung der Welt hat Gott vierundsechzig Scheiben aus purem Gold auf eine der Nadeln gesteckt, wobei die größte Scheibe auf der Messingplatte ruht, und die übrigen, immer kleiner werdend, eine auf der anderen. Das ist der Turm von Brahma. Tag und Nacht sind die Priester unablässig damit beschäftigt, den festgeschriebenen und unveränderlichen Gesetzen von Brahma folgend, die Scheiben von einer Diamantnadel auf eine andere zu setzen, wobei der oberste Priester nur jeweils eine Scheibe auf einmal umsetzen darf, und zwar so, dass sich nie eine kleinere Scheibe unter einer größeren befindet. Sobald dereinst alle vierundsechzig Scheiben von der Nadel, auf die Gott sie bei der Erschaffung der Welt gesetzt hat, auf eine der anderen Nadeln gebracht sein werden, werden der Turm samt dem Tempel und allen Brahmanen zu Staub zerfallen, und die Welt wird mit einem Donnerschlag untergehen. (Quelle unbekannt) 2
Die drei Probleme im Unterricht Das Fundamentale bei der Rekursion ist, dass eine Problemreduzierung stattfindet: Ein Problem wird auf ein 1. leichter lösbares (vereinfachtes) Problem 2. derselben Art reduziert. 1 Diese Reduktion wird hier dadurch deutlich und erfahrbar gemacht, dass die Auseinandersetzung mit dem Problem und das Durchspielen einer Lösungsfindung für möglichst viele Ausgangswerte im Mittelpunkt der Betrachtung steht. Die fertige Funktion ist hier insofern Nebensache, als dass das Finden der eigentlichen rekursiven Funktion einen Schüler ohne Vorkenntnisse sicherlich überfordert. Daher kann z.b. beim Problem der Türme von Hanoi die Funktion im Unterricht problemlos vorgegeben werden, allerdings erst, nachdem die Schüler die Funktionsweise der rekursiven Lösungsfindung selber erfahren haben. Ziel des Unterrichts sollte es also sein, Schüler möglichst oft durch den rekursiven algorithmus zu schicken. Bei Problem Nr. 3 (Türme von Hanoi) habe ich mit dem beiliegenden Programm gute Erfahrungen gemacht, indem Schüler (auch zu Hause) erst einmal ausprobieren und Lösungen finden können. Zu achten ist hier besonders darauf, nicht Animationsprogramme mit automatischer Lösungsgenerierung oder Lösungsvisualisierung zu verwenden. Die Schülermotivation sinkt dadurch nicht unerheblich. An dieser Stelle wird nur auf die Probleme eins und drei genauer eingegangen. Das Taxiproblem kann äquivalent angegangen werden. 1) Das Treppenproblem Unterrichtsverlauf: 1. Schüler probieren selbst an einer Treppe, alle Mögllichkeiten für n = 1.. 5 zu finden (Arbeitsblatt) 2. Sammlung der Ergebnisse im Unterricht auf Folie (dieselbe Folie wie Arbeitsblatt), für jeden Fall nach Einzel und Doppelschritt am Anfang unterscheiden (hier blau) => Es wird deutlich, dass sich die Restschritte aus den beiden vorherigen Fällen zusammensetzen: 1 Vgl. dazu: Schubert Sigrid und Andreas Schwill. Didaktik der Informatik. Fundamentale Ideen. Spektrum Akademischer Verlag. Berlin 2004. S. 71 ff. Von Andreas Schwill ist auch die "Idee der Treppe" für die Fibonacci-Zahlen und deren Einbindung in den Unterricht übernommen. 3
Folie: 3. Verallgemeinerung der Beobachtung für alle n 4
4. Erstellen eines Aufrufbaumsbaums Fachseminar Informatik 5. rekursive Funktion finden und Programmieren Begriffe des Rekursionsaufrufs und direkter Fall (Rekursionsanker) deutlich machen (bzw. einführen). 3) Die Türme von Hanoi 1. Spiel spielen, Spielregeln ermitteln und nach Möglichkeit einen Turm von 6 (besser alle 7) Scheiben von A nach C transportieren 5
2. Am Beispiel von 4 Scheiben den Aufrufbaum vervollständigen 3 rekursive Prozedur wird vorgegeben, besprochen und von den Schülern im Rahmenprogramm umgesetzt: rekursive Prozedur procedure tuerme (n : integer; A,B,C : String); Begin if n > 1 then Begin tuerme (n-1, A, C,B); Form1.Listbox1.items.add('Bringe 1 Scheibe von ' + A + ' nach ' + C); tuerme (n-1, B, A, C); end else Form1.ListBox1.items.add('Bringe 1 Scheibe von ' + A + ' nach ' + C); end; Prozeduraufruf mit 4 Scheiben tuerme (4, 'Links', 'Mitte', 'Rechts'); Hinweis: ListBox arbeitet schneller als MemoBox, deshalb wird hier ne ListBox benutzt 4 Zeit abgreifen, Funktion aufstellen und Laufzeitanalyse machen. 5 den Rekursionsschritt für 7 Scheiben verbal formulieren: Bringe die obersten 6 Scheiben von A nach B unter Zuhilfenahme von C Bringe die unterste Scheibe direkt von A nach C Bringe die obersten 6 Scheiben von B nach C unter Zuhilfenahme von A 6
Wichtig: bei der Formulierung obersten 6 Scheiben wird deutlich, dass es sich hier um dasselbe Problem in reduzierter Form handelt. 6. Am Problem der Türme von Hanoi die Idee der informatischen Rekursion nochmal erläutern. Benutzte dazu die Definition der Rekursion benutzen: Definition Rekursion: Die informatische Rekursion ist die Reduktion eines Problems auf ein leichter lösbares Problem derselben Art. 7 Screenshot des fertigen Programms: 7