Das war's für heute. Bis zum nächsten Mal. Praxistippsreferendariat - Programmierung. Was muss man können als Lehrkraft? Die Frage, was man als Lehrkraft bezüglich der Programmierung können muss, stellt sich meiner Ansicht nach insbesondere für zwei Gruppen. Das sind einmal die Leute, die nicht gerne programmieren. Deswegen kann man ja trotzdem Informatik studiert haben. Oder aber das Kontrastprogramm Leute, die gerne programmieren, die das vielleicht als ihre Leidenschaft ansehen. Die erste Gruppe muss wissen, wie sie sich vorbereiten muss, denn gewisse Dinge sind nun mal zu unterrichten. Gerade in der Oberstufe gestaltet sich das schon durchaus anspruchsvoll, während die zweite Gruppe sich fragen muss, wie es mit der Einschränkung aussieht. Denn es gibt viele Dinge im Lehrplan und da können Sie nicht Ihrem Hobby der Programmierung vollumfänglich nachgehen. Bei den Überlegungen lege ich Nordrhein-Westfalen zugrunde. Im Wesentlichen sind diese Überlegungen aber auch auf die anderen Bundesländer übertragbar. Bedenken Sie bei allem, was gesagt wird, dass sich Lehrpläne immer mal wieder ändern und Sie selbstverständlich auch einen Freiraum in der Gestaltung Ihres eigenen Unterrichts genießen. Das heißt, diejenigen, die nicht gerne programmieren, können das so weit reduzieren, wie es der Lehrplan zulässt, und die Leute, die gerne programmieren, können das so weit ausweiten, wie es der Lehrplan zulässt. Lassen Sie sich da auch von anderen nichts erzählen. Sie sollen ja auch langfristig Ihrem künftigen Lehrerjob Spaß haben und das geht. Unter anderem dadurch, dass Sie Ihre eigenen Interessen durchaus auch berücksichtigen im Rahmen des Möglichen. Wie sieht es denn jetzt aus mit der Programmierung? Wir müssen die drei Stufen unterscheiden. Unter Mitteloberstufe, da gestalten sich die Inhalte und die der Aufwand an Vorbereitung natürlich sehr unterschiedlich, wie sie sich denken können in der Unterstufe. In Nordrhein-Westfalen ist Informatica jetzt ein neues Pflichtfach geworden, geht es primär darum, die Kinder mit der Programmierung an sich mit ganz einfachen Ideen im algorithmischen Denken und ihre Umsetzung durch die Inhalte zu machen. Programme in den unterschiedlichen Formen vertraut zu machen. Programmieren auf dem Niveau wird in der Regel gleichgesetzt mit grafischer Programmierung. Denken sie beispielsweise an Scratch oder ähnliche Werkzeuge, wobei die sich ja ändern, wie sie wissen, relativ zügig. Aber dort geht es nicht so sehr um einen tieferen Einstieg in die Programmierung, sondern um das algorithmische Denken und das Gedanken in ein Programm. Und das Programm soll möglichst wenig Zusatzprobleme, nenne ich das mal, erzeugen, wie zum Beispiel syntaktische Probleme. Deswegen bieten sich grafische Programmierumgebungen natürlich an. Für Sie als Lehrkraft stellt sich da jetzt nicht wirklich die fachliche Seite als ein Problem dar. Sie brauchen sich da auch nicht allzu weit einarbeiten, denke ich, das kriegen Sie. relativ schnell geregelt, auch wenn Sie die grafische Programmierumgebung, die Ihre Schule besitzt, nur nicht kennen sollten. Das ist jetzt nicht das Problem. Da sind mehr didaktisch-methodische Fragestellungen relevant. Ich habe das hier mal unter dem Wort "kindgerecht" subsummiert. Sie dürfen nicht vergessen, dass in der Unterstufe 10 bis 12-jährige sitzen, den können Sie jetzt nicht mit fachwissenschaftlichen Überlegungen kommen. Das muss kindgerecht geschehen und das ist durchaus ein schwieriges Problem. Man kann sich als Erwachsener nicht wirklich in ein Kind hineinversetzen. Da müssen Sie ein bisschen auch ausprobieren, was wie ankommt und wie Sie selber rüberkommen und sich mit gewissen Inhalten identifizieren oder auch nicht. Okay, soweit kein großes Problem, was die fachliche Seite angeht. Die Mittelstufe, da ist momentan einiges in Veränderung begriffen, was die Lehrpläne und den Pflichtteil angeht. Bisher war es so, dass sie als Lehrkraft dort große Freiheiten genossen haben, was die Gestaltung des Wahlpflichtfaches, was es ja ist, immer noch ist, angeht und sie müssen bei der ganzen Planung bedenken, dass die Inhalte der Mittelstufe, weil es sich um ein Wahlpflichtfach handelt, nicht Voraussetzung sind und auch nicht vorausgesetzt werden dürfen. Vielen Dank für's Zuschauen. Für eine etwaige Wahl der Oberstufeninformatik. Das hat dann zur logischen Konsequenz, dass sie auf keinen Fall Java, die Unterrichtssprache in der Oberstufe, verwenden dürfen für ihren Mittelstufenunterricht. Können irgendwie Visual Basic oder C# oder sonst was nehmen, müssen dann aber bedenken, je näher sie an Java bleiben und an den Konzepten der Objektorientierung, die dort zugrunde liegen, desto mehr. Vorteile haben die Leute, die in der Mittelstufe dann schon Unterricht hatten. Die haben natürlich sowieso Vorteile, was ja auch kein Problem ist, nur müssen sie dann dafür Sorge tragen, dass die fachliche Schere a) nicht zu weit auseinander läuft und b) sich die mit Vorwissen ausgestatteten Schüler nicht langweilen. Da greift auch wieder vorausschauende Planung in hohem Maße. In die sinnvolle langfristige Gestaltung ihres eigenen Unterrichts. Da nach momentanem Stand aber die Inhalte selbst in großer Freiheit durch die Lehrkraft gestaltbar sind, können sie da auch ihre eigenen Interessen zum großen Teil umsetzen. Und das ist ein großer Vorteil in der Mittelstufeninformatik im Wahlpflichtfach. Wenn Sie sich zum Beispiel für technische Informatik interessieren, bilden Sie sich natürlich Mikrocontroller an und die doch recht nahe Programmierung, halbfern nahe Programmierung mit C. Da brauchen Sie dann auch nicht allzu viel vorwegnehmen für die Oberstufe oder ähnliche Ideen. Vielleicht nehmen Sie Lego Mindstorms her oder, oder, oder. Da gibt es viele Möglichkeiten. Da können Sie sich auch ein bisschen austoben, sofern die neuen Lehrpläne das nicht wieder unterwandern. Rein fachlich gesprochen sehe ich in der Mittelstufe jetzt führen Berufsanfänger auch nicht die Riesenschwierigkeit. Fachliche Überlegungen in dem Sinne, dass man sich vielleicht auch ein bisschen herausgefordert fühlt, die fangen in der Oberstufe an, da auch eher in der Kursphase. Denn die Oberstufe, wie Sie wissen, ist in die Einführungsphase und in die zwei Jahre Kursphase, die Abiturnoten relevant sind, unterteilt. Und für die Informatik heißt das, dass die Einführungsphase, also das erste Jahr der dreijährigen Oberstufe, voraussetzungslos zu betrachten ist. Wie ich gerade schon sagte, das Wahlpflichtfach Informatik wird nicht vorausgesetzt für die Oberstufen Informatik. Lernenden können ja das Fach oder generell viele Fächer in der Einführungsphase belegen und dann auch wieder abwählen. Das heißt, nicht jeder, der bei Ihnen in der Einführungsphase in Informatik sitzt, führt das Fach bis zum Ende der Einführungsphase als Klausurfach, was Unterschiede in der Motivation zufolge hat, als auch er muss es nicht zwangsweise in die Kursphase mit hineintragen. Die Einführungsphase, wenn Sie sich zurück erinnern, hat auch den Sinn, mal gewisse Fächer auszuprobieren, wo man noch nicht so richtig einen Einblick hat, wozu die Informatik zählt und dann zu entscheiden, ob das Fach etwas für einen ist in der dann notenrelevanten Kursphase. Soll also heißen, die Einführungsphase fängt doch recht gemächlich an. Java ist Lehrsprache. Und an Inhalten geht es primär darum, die imperativen Grundkonstrukte, also Sequenz, Wiederholung, Entscheidung, wirklich sattelfest zu vermitteln anhand von Java, elementare Datenstrukturen zu verstehen, vor allen Dingen die primitiven Datentypen, das variablen Konzept und eventuell kommen sie noch bis zum eindimensionalen R, je nach internem Lehrplan und Lerngruppe. Es geht auch darum, die grundlegenden Ideen der Objektorientierung zu vermitteln, also was ist ein Objekt, was ist eine Klasse, was sind Methoden und Attribute, wie hängen Klasse und Objekt zusammen und das ganze werden sie anhand von vielen kleinen Übungsaufgaben umsetzen und vermitteln. Und diese einzelnen Übungsaufgaben haben keine großartige Komplexität, weil sie es sehr mit Programmieranfängern zu tun haben. So dass ich behaupte, dass es auch da für jemanden, der nicht gerne programmiert, keine großartige fachliche Hürde darstellt. Es geht mehr darum, dass sie sicherstellen, dass möglichst viele, die dann auch dabei bleiben, wollen in der Kursphase die Grundlagen wirklich solide drauf haben, denn es ist ein klassisches, traditionelles Problem, könnte man schon sagen, in der Informatik, dass sie auch bei den Kursphaseschülern dann die typische Schere haben, ja, so praktisch die zwei Gruppen, die ich schon angesprochen habe, sind Leute, die interessieren sich zwar für Informatik, aber wollen oder können einfach nicht programmieren und dann gibt es die Leute, die programmieren schon seit 12, sind zu Hause und können das vielleicht besser als sie, falls sie nicht selber in die Gruppe gehören. Ja, und dann gibt es natürlich noch das Mittelfeld, das kommt mit der Programmierung klar, sieht da jetzt aber nicht sein Lebensinhalt drin. Das ist vielleicht die gesündeste Sichtweise. Für Sie als Lehrkraft gesagt sichern Sie die Grundlagen durch ganz viel Übung, verschiedene Übungsaufgaben zum gleichen Thema und behalten Sie die unvermeidliche Schere so weit im Auge, dass sie ihr möglichst tun und die zu verringern zumindest. In der Kursphase, da geht es damit dem los, was ich mal als fachliche Herausforderung jetzt in Anführungsstrichen bezeichnen möchte und da ist ihnen sicher geholfen, wenn sie einige Informationen vorab erhalten, die sie dann durchdenken und die sie sich vor allen Dingen vorbereitend erarbeiten müssen, damit sie vernünftig unterrichten können. Wie gesagt, Java ist die Lehrsprache und die Programmierung teilt sich doch im Wesentlichen auf in zwei Bereiche. Das sind einmal die Datenstrukturen und die objektorientierte Programmierung im weiteren Sinne mit den fortgeschrittenen Konzepten, auf die ich gleich noch eingehen werde. Wichtig ist, dass sie, auch wenn sie Lehrpläne studieren, zwischen zwei Dingen unterscheiden. Und das ist einmal das Nutzen und das selber machen. Gerade bei Datenstrukturen. Sie werden gleich eine ganze Menge an den klassischen Datenstrukturen sehen, die müssen sie aber nicht alle erstellen lassen durch ihre Lerngruppe. Gerade im Grundkurs ist es so, dass Datenstrukturen fast alle nur genutzt werden. Man hat dann eine fertige Datenstruktur. Die Dokumentation dazu muss man verständlich lesen und anwenden lernen und dann geht es aber in Anführungsstrichen nur noch darum, diese fertigen Datenstrukturen als solche zu nutzen, nicht sie selbst zu erstellen. An der Stelle sei auch gesagt, dass sie das auf keinen Fall davon abhalten sollte, mal die ein oder andere einfache Datenstruktur tatsächlich selber erstellen zu lassen. Das ist eine super Übung und Sie können anhand dieses neuen Inhaltsbereiches auch alte Techniken wieder üben. Das behalten Sie mal im Hinterkopf, aber rein von den Pflichtanforderungen kann man im Wesentlichen sagen, dass der Grundkurs fertige Datenstrukturen nutzt. Der Leistungskurs im Wesentlichen auch, aber erweitert um im Grundkurs nicht relevante Datenstrukturen. Ja, das ist wichtig, damit sie an der durchaus großen Masse an verschiedenen Aspekten bei den Datenstrukturen und bei der objektorientierten Programmierung nicht schlagen werden auf den ersten Blick, weil sie denken, sie müssten das jetzt alles grundständig selber machen. Ne, nutzen ist schon schwer genug. Welche Datenstrukturen... ...sind's denn jetzt laut Lehrplan? Sie haben AERAs im Grundkurs, eintimensionale AERAs und im Leistungskurs zusätzlich noch die zweidimensional. Selbstverständlich können Sie Leistungskursinhalte immer auch im Grundkurs machen. Da müssen Sie insgesamt nur vorsichtig sein, dass Sie da nicht in zeitliche Konflikte kommen. Aber... Wenn Sie mal ein bisschen länger im Job sind, dann können Sie zum Beispiel einige Ober-, also Leistungskursinhalte beispielsweise als Zusatzaufgaben für die schnellen, motivierten im Grundkurs stellen. Das bietet sich immer an. Neben den RS haben wir noch die Schlange, die Q und den Stapel, den Stack sowie die Verallgemeinerung der beiden Datenstrukturen zur Liste. Da liegt die einfach verkehrtete Liste zugrunde. wird dann erweitert um den Baum, insbesondere den Binärbaum und die Verallgemeinerung von Bäumen zum Graf. Die Grafen sind allerdings nur im Leistungskurs relevant. Zu den Datenstrukturen finden Sie eine Referenzimplementierung in der Standardsicherung NRW. Da finden Sie den kompletten Quellcode zum Runterladen. Mittlerweile sind die Referenzimplementierungen auch einigermaßen stabil, die ändern sich immer mal wieder im Detail. Da müssen sie besonders einen Blick drauf haben, wenn sie ältere Abiturarbeiten nutzen, beispielsweise als Klausuraufgaben, ja das ist auch gar ein Geheimnis, das macht hier jeder Lehrer, ist auch sinnvoll, denn dann haben sie halt genau die Anforderung des Abiturs in ihren Klausuren, weil sie halt eine alte Abiturarbeit nehmen. Also noch genauer geht es ja dann nicht mehr. Seien sie aber bei der Konzeption und vor allen Dingen bei dem Selberlösen, bevor sie sie stellen, vorsichtig, dass sie einen Blick darauf haben, welche Änderungen es in der Implementierung bei der aktuellen Version zu der alten gab. Das sind manchmal trickige Details, die sich da geändert haben, aber das ist ja auch in der Programmierung nun mal normal. Vielen Dank für's Zuschauen. Selbstverständlich bietet es sich dringend an, dass Sie die aktuelle Implementierung der jeweiligen Datenstruktur dann auch regelmäßig im Unterricht einführen und nutzen und auch genau die Signaturen verwenden, die in den Abitur-Dokumentationen von der Standardsicherung eben dokumentiert sind, dass die Prüflinge in der schriftlichen Prüfung nicht auf einmal eine andere Schnittstelle bei einer Schlange zum Beispiel sehen. Sie werden feststellen, dass die Sichtweise auf Datenstrukturen im Abitur ein bisschen gewöhnungsbedürftig ist. Wenn sie zum Beispiel Push und Pop bei einem Stack verwenden, dann wird das Element nicht entfernt. Das wird nur bei Popwitz nur zurückgegeben, also geholt praktisch vom Stapel. Es wird aber nicht entfernt. Das müssen wir erstmal wissen. Das ist ja nicht in allen Implementierungen so. Und solche Dinge müssen Sie sich als Lehrkraft vorher mal einlesen und bei dieser Sichtweise dann entweder bleiben. Oder aber das explizit thematisieren, dass es auch noch andere Sichtweisen gibt und man eben genau ... ... vorsichtig sein muss, wenn man Datenstrukturen anderer Quellen nutzt. Denn solche Fehler, wo sie eine logische Annahme tätigen, die sie in der Dokumentation nicht kontrolliert haben, sind ja kaum zu finden. Wenngleich in der Programmierung nichts selten ist. Da müssen Sie lernen, immer wieder darauf hinweisen und auch selber darauf achten, wenn Sie sich in neue Dinge einarbeiten und die ... ... anzupassen. Sichtweise der Lehrpläne, die in NRW oder sonst wo dann eingenommen werden, ist ja dann für Sie erst mal neu, wenn Sie im Job anfangen. Cool!