Agiles Denken in Schulen (3)

Jetzt kommt der interessanteste und für mich schwierigste Teil: Das Übertragen von agilem Denken, vor allem basierend auf Scrum, in den Schulalltag. Und um es aber gleich vorweg zu sagen: Es gibt viele Möglichkeiten von agilem Denken und Ansätzen (Scrum, Kanban, Design Thinking, …) und es gibt viele Arten diese anzuwenden und anzupassen. Daher ist das Ziel dieses Artikels auch nicht eine Anleitung zu schreiben, sondern Kollegen einen anderen Denkansatz zu verdeutlichen. Es ist vor allem die Haltung, die zählt, denke ich. Und dann ist es natürlich so, dass erst, wenn ich weiß, was alles auch möglich wäre, ich mich frei entscheiden kann.

Kurze Zusammenfassung

Im letzten Beitrag habe ich knapp agiles Projektmanagement am Beispiel Scrum vorgestellt. Ziel war es, die folgenden Kernelemente von agilem Denken darzustellen:

  1. Agil bedeutet in diesem Zusammenhang, dass der Weg zum (Lern-)Ziel immer wieder angepasst wird und flexibel ist.
  2. Agil bedeutet, dass alle Beteiligten, hier vor allem die Schüler, an der Auswahl des Weges beteiligt werden. Die Auswahl des Weges wird unter den Schülern, aber auch den mit der Lehrkraft zusammen besprochen.
  3. Der Verlauf des Weges wird diskutiert und reflektiert, um die nächsten Schritte auf dem Weg optimal anzupassen. Hier kann eine Board helfen auf dem der Verlauf sichtbar gemacht wird.
  4. Eine Person, in der Regel die Lehrkraft, fungiert als Helfer auf dem Weg. Er unterstützt die Schüler bei der erfolgreichen Bearbeitung der Schritte auf dem Weg und unterstützt bei der Bewertung des Geleisteten.

Was in meinen Augen nicht wirklich zwingend nötig ist, aber doch oft passiert, wäre eine zeitliche Begrenzung im Sinne der Sprints bei Scrum. Auf der anderen Seite ist man durch die Vorgabe der Unterrichtsstunden meistens sowieso eingeschränkt. Ich würde diesem Aspekt daher eher eine untergeordnete Rolle geben. Auf der anderen Seite kann aber auch genau diese Zeitbegrenzung, vor allem wenn Sie knapp gesetzt wird, zu einer ganz bereichernden Dynamik führen. Dazu aber mehr in den Beispielen, die ich in den folgenden Beiträgen noch darstellen will.

Kurz zusammengefasst: Es geht um soziale Eingebundenheit der Lerner sowie um das Erleben von Autonomie und um das Spüren der eigenen Kompetenzen. Was man im Übrigen aber auch auf das Kollegium übertragen kann.

Im vierten Teil geht es dann um Beispiele. Teils aus meiner Erfahrung, teils aus Büchern oder Erzählungen von Kolleginnen und Kollegen.

Wer noch weiter sich mit der Theorie beschäftigen möchte, der findet in folgender Literatur vielleicht das passende für sich:

 

 

Programmieraufgabe 108

Ich renne durchs Schulhaus und versuche die letzten Win 7-Leichen auf Win 10 zu aktualisieren und ersetze bzw. repariere nebenher noch den ein oder anderen Beamer oder stecke Kabel wie zurück. “Agile Schule” hatte ich mir da irgendwie auch anders vorgestellt. Daher komme ich im Moment auch nicht weiter mit meiner Blogserie zum Thema “Agile Schule”.

Aber ich hatte eine kleine Idee für eine anspruchsvollere Programmieraufgabe für die elfte Klasse zum Thema Binärbaum, die ich unbedingt weitergeben wollte:

Aufgabe

Schreibe eine Programm, das einen einfachen mathematischen Term der Form “3+4*5” einliest, in einen Binärbaum schreibt und durch einen inorder-Durchlauf auswertet.

Jetzt ist die Aufgabe zwar auf den ersten Blick vielleicht ganz überschaubar, aber es gibt den ein oder anderen Fallstrick, daher habe ich noch folgende Vereinfachungen angeboten:

  1. Es gibt nur Ziffern und nur die Operatoren *,+,-,/ . Das erlöst einen von dem Problem des Tokenizers. Also das Zerlegen eines Terms in logische Einheiten wie “<Zahl><Operator><Zahl><Operator><Zahl>”.
  2. Es gibt erstmal kein Punkt vor Strich.
  3. Im ersten Schritt müsste der Term eingelesen und ein Baum aufgebaut werden. Dabei könnte ich natürlich einfach von Vorne nach Hinten durchgehen. Dann hätte ich aber das Problem, dass ich eher einen entarteten Baum bekomme.
    Daher wäre wenigstens eine Art von Halbierungsverfahren sinnvoll: Ich suche die Mitte des Terms und wenn es ein Rechenzeichen ist, dann gehe ich rekursiv in die Teiläste.
  4. Habe ich den Baum aufgebaut, dann muss der Term ausgewertet werden. Hierzu wird wiederum ein Term aus dem Baum gewonnen und ausgewertet. Da das in JavaScript über die Funktion eval() recht leicht ist, habe ich meinen Schülern folgendes Codefragment gegeben:
    import javax.script.*;
    import java.io.StringWriter;
    static void evalMath() {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
        ScriptContext context = engine.getContext();
        StringWriter writer = new StringWriter();
        context.setWriter(writer);
        try {
            engine.eval("print(3+2)");
        } catch (ScriptException ex) {}
        String output = writer.toString();
        System.out.println("Script output: " + output);
    }
    

Das Trennen in Einlesen und Wertberechnung, vor allem, wenn man letzteres nicht mit meinem Trick macht, wäre eine schöne Aufgabe für die Projektphase am Ende des 11. Klasse, die sich zwei Schüler auch teilen können. Man könnte im übrigen auch noch einen “zufälligen Rechenterm-Generator implementieren.  Ebenso könnte noch versucht werden Punkt-Vor-Strich und Klammer unterzubringen und natürlich “normale” Zahlen und nicht nur Ziffern zu zu lassen. Aber dann wird es gleich anspruchsvoller. Zumindest beim Aufbau des Terms  – vielleicht wäre das Parsen beim Eintippen eine Alternative, vorausgesetzt man ignoriert Fehleingaben.

Kennt jemand im Übrigen eine “echte” Lösung? Wie machen es zum Beispiel die Taschenrechner?

Durch die weitere Nutzung der Seite (Scrollen, Navigieren) stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen