Lehrzeit

Schule & Informatik

Kategorie: Informatik (Seite 2 von 53)

Warum Informatikunterricht?

Jan-Martin Klinge und Maik Riecken diskutieren auf ihren Blogs darüber, ob und wie Informatikunterricht sinnvoll ist. Ich halte das für einen guten Grund mal selber darüber nachzudenken, warum ich Informatik unterrichte und so auch meine Schwerpunkte im Unterricht vielleicht ein wenig geschickter oder deutlicher zu setzen.

Informatik macht Spaß

Informatik Programmieren macht Spaß

Programmieren macht kann Spaß machen

Ein funktionierendes Programm macht glücklich. Egal wie groß, egal wie anspruchsvoll. Wenn ich auf einen Button klicken kann und etwas passiert, muss ich innerlich grinsen. Wenn ich eine Turtle durch die Gegend laufe lasse und Bilder zeichnen lasse, finde ich es schön. Wenn Karol den Boden eines beliebig großen Raums auslegt, fühle ich stolz. Das war und ist nicht nur bei mir so. Auch meinen Schülern sehe diese Zufriedenheit, Glück, Stolz oft an. Egal, ob in der 7. Klasse oder in der Oberstufe.

Natürlich kann man auch in anderen Fächern so etwas erleben. Aber der große Unterschied zu anderen Fächern ist, dass man das Endprodukt immer wieder verwenden kann. Eine Zeichnung oder Bild ist zwar auch kreativ entstanden, aber wenn es fertig ist, ist es fertig. Wenn ich in Deutsch einen Aufsatz geschrieben haben, dann stellt zwar auch zunächst Freude und Stolz möglicherweise ein, aber durch das nochmalige Lesen ist die Freude oftmals nicht mehr so groß. Eher schlägt es ins Gegenteil: Man findet Fehler und fängt an zu verbessern.

Natürlich nutzen sich auch selbst programmierte Programme im Laufe der Zeit ab. Aber ich erlebe es immer wieder, wie 12-Klässler Karol-Programme aus der 7. Klasse wieder öffnen und sich freuen und auch stolz sind auf das, was sie damals geleistet habe.

In Informatik lernt man was fürs Leben

In anderen Fächern natürlich auch, aber in Informatik ist es was anderes. Bei uns ist das Problem, dass sich die Geräte, Computer-Sprachen und Abläufe teilweise sehr schnell ändern. Ich muss also den Schülern eigentlich erklären, welche Gemeinsamkeiten es gibt. Wie und wo man sie findet und was man damit machen kann. Nur so sind die Schüler in der Lage später im Beruf oder in der Uni effizient zu arbeiten.

Ein Beispiel aus der 6. Klasse: Die Schüler sollen Textverarbeitung lernen. Das Standardprogramm ist im schlimmsten Fall Word, welches sich regelmäßig vom Aussehen ändert. Hier zu erklären „Du musst erst dahin klicken und dann dahin.“ bringt langfristig nichts. Wichtiger ist, sich zu überlegen, aus welchen Elementen ein Textdokument besteht: Seite, Absätze, Zeichen. Und wie sich die Eigenschaften dieser Objekte ändern lassen: „Erst muss das Objekt ggf. ausgewählt werden und dann kann über ein Menu oder die rechte Maustaste die Eigenschaft mit Hilfe von Methoden verändert werden.“

Dieser Ansatz klappt in vielen Programmen – nur, dass die Menüs vielleicht woanders liegen. Und nicht nur in Textverarbeitungsprogrammen funktioniert das. Genauso in EOS, Java, den Dateien auf dem Computer allgemein.

Aber nicht nur das Benutzen von Programmen lernt man. So richtig fachübergreifend wird es beim Thema Projektmanagement: Hier geht es um das Zerlegen einer großen Aufgabe in viele kleine und wie man diese in einem Team bearbeitet, so dass am Ende etwas brauchbares herauskommt. Eine Fähigkeit, die jeder Mensch irgendwann mal braucht: Beim Party planen, beim Hausbau, beim Planen des Urlaubs oder Umzugs,…

Ich bevorzuge dabei seit Jahren den Ansatz des Agilen Projektmanagements, das sich für mich so zusammenfassen lässt:

Beim Agilen Projektmanagement wird das Projekt zunächst in möglichst kleine unabhängige Teile zerlegt. Jedes Teammitglied darf sich dann ein Teil herauspicken und bearbeiten. Dann darf etwas neues gewählt werden. Einen Projektleiter gibt es nicht. Aber es gibt einen Ansprechpartner, der bei auftretenden Problemen hilft.

Das trifft jetzt nicht ganz das Agile Projektmanagement, funktioniert dafür aber auch bei der Partyplanung. Und das ist ja auch wichtig.

Nichts ist so, wie es scheint

Spätestens bei Tabellenkalkulationen kann man die Schüler auf das MVC-Entwurfsmuster aufmerksam machen. Denn das, was die Zellen zeigen, ist nicht immer das, was in den Zellen als Wert steht. Bei den Datenbanken ist das ebenso: Es gibt Daten und eine Ansicht der Daten, die als SQL-Statements formuliert und vor allem manipuliert werden. Was im Übrigen auch bei Nachrichten ist oder so sein kann.

Und bei den Schüler ist das ebenso: Das eine ist, wie man sich nach außen gibt und etwas ganz anderes, wie man sich innerlich fühlt.

Welche übergreifende Ziele seht ihr noch in der Informatik?

Programmieraufgabe 94

Wie ich an anderer Stelle schrieb, bin ich ein totaler Fan vom Coding Train. Die Art und Weise, wie Daniel Shiffman die Dinge erklärt und vorprogrammiert finde ich großartig und mitreißend. Gerade, weil man mal sieht, wie „echtes“ Programmieren läuft…. Wobei, so planlos, wie er manchmal startet, sollte man eigentlich nicht starten. Dann fängt man in der Regel zweimal an. So gibt es dann auch oft zwei Versionen von den vorprogrammierten Projekten bei github: Einmal, was live entstanden ist und einmal die verbesserte Version.

Wie auch immer. Das eigentliche Problem ist allerdings, dass er rein auf p5.js setzt. Ich im Unterricht aber Java unterrichte. Da p5.js aber „nur“ die JavaScript-Variante von processing ist, dachte ich mir, dass man die Projekte doch auch eigentlich mit der processing-Library und BueJ umsetzten können sollte. Das habe ich daher versuchsweise mal gemacht und stelle das hier als neue Programmieraufgabe zur Verfügung.

Aufgabe

Implementiere den A*-Algorithmus aus den Videos in Java mit Hilfe der processing-Library.

Das Ergebnis könnte vielleicht so aussehen:

Den zugehörige Sourcecode stelle ich hier zur Verfügung (A*Algorithm) . Die Processing-Library habe ich über einen +Libs-Ordner ergänzt, da ich das Projekt dann einfacher an die Schüler verteilen kann.

Programmieraufgabe 93

Vor ein paar Tagen war die freie App der Woche bei iTunes das Spiel „Lifeline: Das Experiment„. Hierbei geht es irgendwie darum, einem in der Arktis Gestrandeten zu helfen. Er weiß nicht mehr wer ist oder warum er dort ist. Das Ganze ist als reines Textadventure angelegt, da die einzige Kommunikation mit der Figur Adams über einen Kommunikator läuft. Das Spiel verläuft mehr oder weniger im Echtzeitmodus. Wenn er also beispielsweise schreibt, dass er Holz suchen geht, hört man auch mal drei Stunden nichts. Das macht die Sache ganz angenehm, aber auch manchmal langweilig, da man ewig warten muss bis es weiter geht.

Praktisch finde ich dagegen die Steuerung. Man muss keinen Text eingegeben, sondern bekommt nur zwei Antwortalternativen von denen man eine anklickt. Auf einen Parser wie bei den Spielen von Infocom, die wohl einen der besten entwickelt haben, wird dabei verzichtet. Das macht das Spiel auch praktisch für unterwegs auf dem Handy. Man ist allerdings auch nicht wirklich frei in den Spielzügen. Dass es dennoch genügend Spielsituationen gibt, kann man mit seinen Schülern in 11/2 beim Thema Binärbäume ja mal überlegen.

Jetzt aber zur Aufgabe, die sich wunderbar in der 10. Klasse, wenn man Verzweigungen eingeführt hat, schon mal umsetzen kann. Sicher nicht die beste Möglichkeit, aber EINE Möglichkeit.

Aufgabe

Erstelle ein Textadventure bei dem eine Spielfigur mit dem eigentlichen Spieler schriftlich kommuniziert.

Der Spieler kann dabei immer nur zwischen den Alternativantworten A und B wählen. Die Spielfigur erzählt was sie macht oder sieht und fragt dann immer weiter, wie es weitergehen soll.

Das Ganze kann man natürlich auch mit Arrays später nochmal machen. Denn Binärbäume lassen sich auch in einem Array speichern, wie man bei wikipedia u.a. nachlesen kann.

Wer noch einen drauflegen will, der packt die Aufgabe dann doch in die 11. Klasse. Hier lässt sich dann noch wunderbar über das Zurücknehmen der Züge nachdenken. Denn wenn einem die Spielfigur weg stirbt, kann man zu einem beliebigen Punkt zurückgehen und seine Entscheidung ändern. Das Merken der Züge passiert dann entweder in einem Stack, der wieder abgebaut wird oder das Spiel wurde tatsächlich als Binärbaum aufgebaut und der Spieler, in dem Fall ich, kann einfach die Vorgängerknoten in dem Baum Richtung Wurzel zurückgehen.

Eine andere Variante wäre noch die Implementierung mit Hilfe eines Zustandsautomaten in der 10. Klasse. Das Alphabet besteht aus den Buchstaben A und B (s.o.). Je nach aktuellem Spielzustand wird abhängig vom ausgewählten Zustand einer von zwei möglichen Nachfolgezuständen ausgewählt. Durch den Übergang wird ein anderer Text der Spielfigur angezeigt.

Alles in allem also eine wirklich schöne Aufgabe, egal, ob sie nun umgesetzt wird oder ob man nur mal darüber redet.

Ach ja, was man nicht vergessen darf, ist die Problematik der Geschichte. Hier kann man eventuell auf (Kurz)geschichte versuchen auszuweichen. Oder man schreibt selbst welche. Letzteres würde ich irgendwie versuchen auf die gesamte Klasse zu verteilen.

Die Schüler sind dann quasi die Zustände oder Knoten. Ein Schüler wird zur Wurzel erklärt und schreibt die Einleitung (5 Sätze oder so). Am Ende schreibt er zwei Antwortalternativen auf. Die zwei Nachfolgezustände (zwei andere Schüler), schreiben dann wieder ca. 5 Sätze dazu und geben wieder zwei Antwortalternative an. Bei rund 30 Schülern kommt man so auf knapp 5 Entscheidungen des Spielers. Noch nicht so viel, aber wenn man die Figur frühzeitig Sterben lässt, fallen ganze Zweige der Baumstruktur weg und man kann die Entscheidungstiefe vergrößern. Im Idealfall hat dann jeder Schüler was zu schreiben und für die nächste Runde muss dann die Hälfte aller Antwortalternativen direkt zum Tod der Spielfigur führen. Man erzeugt einen nicht vollständigen Baum mit genau so viel Verzweigungen pro Ebene, wie Schüler in der Klasse.

So kann man als Lehrer die Blätter am Ende eines Zyklus immer einsammeln, ich als Lehrer entscheide, welche Antwort zum Tod führt und markiere die Alternative dementsprechend und kontrolliere, dass es wirklich genau so viel Antworten wie Schüler übrigbleiben. Danach verteile ich die Texte wieder an die Schüler. Jede Geschichte ist damit ein Pfad von der Wurzel bis zu einem Blatt.

Das ließe sich im übrigen auch digital machen, in dem die Texte an einer zentralen Stelle, wegen mir auch mebis, verwaltet werden. Schöner wäre jetzt eine Software, aber da kenne ich keine. Vielleicht kann man so etwas im Rahmen eines P-Seminars ja mal programmieren.

Insofern kann man aus dieser Aufgabe gleich noch zwei weitere erzeugen:

Aufgabe 1

Schreibe mit deiner Klasse eine Geschichte als Basis für ein solches Spiel

Aufgabe 2

Entwickle eine Software zum Erzeugen solcher Geschichten.

Ältere Beiträge Neuere Beiträge

© 2017 Lehrzeit

Theme von Anders NorénHoch ↑