
Im vergangenen Jahr habe ich als Dozent an einem der provinziellen Ausbildungszentren (im Folgenden - AZ) gearbeitet, das auf Programmierausbildung spezialisiert ist. Ich werde diesen Ausbildungszentrum nicht nennen und generell versuchen, auf Firmennamen, Autorennamen usw. zu verzichten.
Ich habe also als Dozent für Python und Java gearbeitet. Dieses AZ bezog methodische Materialien für Java, und Python wurde erst eingeführt, als ich kam und ihnen dies anbot.
Das Lehrbuch für die Schüler (im Wesentlichen ein Lehrbuch oder Selbstlernguide) habe ich für Python geschrieben, aber das Unterrichten von Java und die dort verwendeten methodischen Materialien hatten einen nicht unerheblichen Einfluss.
Zu sagen, dass sie schrecklich waren, ist noch gelinde ausgedrückt. Das Lehrbuch für Java, das von einer sehr bekannten Firma in Russland geliefert wird, hat nicht das Ziel, den Menschen die Grundlagen dieser Sprache und die Objektorientierung beizubringen, sondern vielmehr, dass die Eltern, die zu den offenen Unterrichtsstunden kommen, sehen, wie ihr Sohn oder ihre Tochter ein Schlangen- oder Schachspiel vom Lehrbuch abschreiben. Warum sage ich «abschreiben»? Ganz einfach, denn im Lehrbuch fanden sich ganze Seiten (A4) Code, von denen einige Abschnitte nicht erklärt wurden. Am Ende bleibt dem Lehrer nichts anderes übrig, als zu kontrollieren, an welchem Punkt im Code jeder Schüler gerade ist und jede Zeile zu erklären, oder alles endet im Abschreiben.
Sie werden sagen: „Und was ist daran so schlimm? Soll der Lehrer lieber besser arbeiten, und das Schachspiel sowie das Schlangen-Spiel sind doch echt cool!“
Nun, alles wäre großartig, wenn die Anzahl der Personen in der Gruppe nicht bei 15 läge, und das ist schon erheblich, wenn man beabsichtigt, alle zu überwachen, indem man erklärt: „Aber was genau schreiben wir hier?“
Neben der Anzahl der Personen in der Gruppe gibt es ein weiteres Problem mit diesem Handbuch. Der Code ist… wie soll ich sagen, einfach furchtbar. Eine Ansammlung von Antipatterns, Veraltetem, da das Lehrbuch schon lange nicht mehr aktualisiert wurde, und unser Liebling, natürlich — der Styleguide. Daher, selbst wenn Sie all Ihre Schützlinge kontrollieren und ihnen schnell und verständlich erklären können, was kopierter Code bedeutet, ist der Code selbst so schrecklich, dass er, milde gesagt, nicht das Richtige lehrt.
Und das Finale, das dieses Lehrbuch buchstäblich zerstört — von Anfang an fehlt eine irgendwie adäquate Einführung, die erklärt, was Datentypen sind, dass es objektorientierte und primitive gibt, welches Kriterium eine Eigenschaft prüft, die diese Dichotomie erzeugt usw. Im ersten Kapitel wird Ihnen und Ihren Schülern vorgeschlagen, ein Programm zu schreiben, das ein Fenster öffnet und dort „Hallo!“ anzeigt, jedoch wird nicht erklärt, was dieser Code eigentlich bedeutet, es gibt nur Verweise auf weitere Lektionen, zum Beispiel wird „main“ erwähnt — der Einstiegspunkt, aber das Konzept „Einstiegspunkt“ wird nicht einmal besprochen.
Zusammenfassend lässt sich sagen, dass diese Materialien selbst unter Lehrern und der Schulleitung als Witz galten. Sie haben den Kindern praktisch nichts beigebracht. Einmal erwischte ich eine Gruppe, die bereits ein Jahr mit diesen Materialien arbeitete, und sie konnten nicht einmal eine Schleife programmieren, obwohl sie alle sehr intelligent waren und es bald besser wurde. Die meisten Kollegen versuchten, von den methodischen Materialien abzuweichen, um sicherzustellen, dass der Stoff verstanden wurde und nicht einfach in der Luft verpuffte, obwohl es auch weniger gewissenhafte Personen gab, die es in Ordnung fanden, dass ihre Schüler ohne jegliche Erklärungen abschrieben.
Als ich merkte, dass ich das UZ verlassen würde und das Python-Programm im nächsten Jahr irgendwie fortgesetzt werden musste, begann ich, mein Lehrbuch zu schreiben. Kurz gesagt, habe ich es in zwei Teile gegliedert. Im ersten Teil erklärte ich alles über Datentypen, deren Wesen, Operationen damit und die Sprachbefehle. Zwischen den Themen machte ich QnA, damit der zukünftige Lehrer verstehen konnte, wie der Schüler das Thema begriffen hat. Am Ende entwarf ich eine kleine Projektaufgabe. Der erste Teil erklärt somit die Grundlagen der Sprache und erläutert sie so gründlich, dass er etwa 12-13 Lektionen von 30-40 Minuten umfasst. Im zweiten Teil schrieb ich dann über OOP, beschrieb, wie sich die Umsetzung dieses Paradigmas in Python von den meisten anderen unterscheidet, und machte viele Verweise auf den Style Guide usw. Zusammenfassend versuchte ich, so wenig wie möglich dem zu ähneln, was im Java-Lehrbuch stand. Neulich schrieb ich meinem jetzigen Python-Lehrer und fragte nach Feedback zu den Materialien, und jetzt freue ich mich, dass alles gut ist und die Kinder wirklich Programmierung in Python verstehen.
Was ich aus dieser Geschichte mitnehmen möchte: meine lieben Eltern, wenn Sie sich entscheiden, Ihr Kind in ein Übungszentrum zu geben, dann achten Sie genau darauf, was dort gemacht wird, damit Ihr Kind seine Zeit nicht umsonst verliert und in Zukunft das Interesse am Programmieren nicht aufgibt.
UPD: Wie in den Kommentaren richtig angemerkt wurde, habe ich fast nichts über die Vermittlung des Materials gesagt. Ich sage gleich, dass ich der Meinung bin, dass es mehr praktische Übungen geben sollte, so viele wie möglich. Am Ende jeder Sitzung in der ersten Hälfte habe ich 4-5 kleine praktische Aufgaben zu den Themen des Kapitels gemacht. Zwischen den Kapiteln gab es QnA (Kontrollstunden), bei denen ebenfalls praktische, aber bewertbare Aufgaben gestellt wurden; außerdem gab es am Ende der ersten Hälfte ein Projekt zu einem der vorgeschlagenen Themen. In der zweiten Hälfte habe ich eine Einführung in die OOP durch die Erstellung eines kleinen Konsolenspiels gemacht, dessen Entwicklung die gesamte zweite Hälfte und die Einführung in die Paradigmen ausmachte.
Nur registrierte Benutzer können an der Umfrage teilnehmen. Sind Sie an Contour interessiert?
Lernt Ihr Kind Programmieren in einem Ausbildungzentrum?
4,6%Ja3
95,4%Nein62
65 Benutzer haben abgestimmt. 27 Benutzer haben sich enthalten.
Quelle: habr.com
