Wie bringe ich Kindern Python bei?

Wie bringe ich Kindern Python bei?

Meine Hauptarbeit bezieht sich auf Daten und Programmierung R, aber in diesem Artikel möchte ich über mein Hobby sprechen, das sogar einige Einnahmen bringt. Es hat mich schon immer interessiert, Freunden, Klassenkameraden und Kommilitonen Dinge zu erzählen und zu erklären. Es fiel mir auch immer leicht, mit Kindern eine gemeinsame Sprache zu finden, ich weiß nicht warum. Generell glaube ich, dass die Erziehung und das Unterrichten von Kindern eine der wichtigsten Aktivitäten überhaupt ist, und meine Frau ist Lehrerin. Also machte ich vor etwa einem Jahr Werbung in einer lokalen Facebook-Gruppe, gründete eine Gruppe und begann, einmal pro Woche Scratch und Python zu unterrichten. Mittlerweile habe ich fünf Gruppen, meine eigene Klasse zu Hause und Einzelunterricht. Wie ich zu diesem Lebensstil kam und wie ich Kinder genau unterrichte, erzähle ich dir in diesem Artikel.

Ich lebe in Calgary, Alberta, Kanada, daher sind einige Dinge lokale Besonderheiten.

Das Zimmer

Von Anfang an war die Verfügbarkeit von Platz zum Üben ein wichtiges Anliegen. Ich habe versucht, stundenweise nach Büros und Klassenzimmern zu suchen, hatte aber keinen großen Erfolg. Unsere Universität und SAIT, das lokale Äquivalent des MIT, bieten Kurse mit und ohne Computer an. Die Preise dort erwiesen sich als nicht sehr human und am Ende stellte sich heraus, dass die Universität keine Minderjährigen zulässt und SAIT in der Regel nur an eigene Studierende vermietet. Daher wurde diese Option abgeschafft. Es gibt viele Bürozentren, die Besprechungsräume und Büros stundenweise vermieten, es gibt ganze Unternehmen, die eine Reihe von Optionen anbieten, von einem kompletten Klassenzimmer bis hin zu einem Raum für vier Personen. Ich hatte Hoffnungen, da Alberta eine Ölprovinz ist, wir uns seit 2014 in einer schleppenden Krise befinden und viele Geschäftsflächen leer stehen. Ich hätte es nicht hoffen sollen; die Preise waren so unverschämt, dass ich ihnen zunächst nicht einmal glauben konnte. Für Eigentümer ist es einfacher, in leeren Büros zu sitzen und die Kosten zu bezahlen, als wegzuwerfen.

In diesem Moment fiel mir ein, dass ich regelmäßig meine Steuern bezahle und ob unser lieber Staat, oder besser gesagt die Stadt Calgary, dort etwas hat. Es stellte sich heraus, dass es das wirklich gibt. Die Stadt verfügt über Arenen für Hockey und andere Eiskunstlaufsportarten, und in diesen Arenen gibt es Räume, in denen robuste Eiskrieger Strategien für zukünftige Schlachten diskutieren. Kurz gesagt, jede Arena verfügt über ein paar Räume mit Tischen, Stühlen, einer weißen Tafel und sogar einem Waschbecken mit Wasserkocher. Der Preis ist wirklich göttlich – 25 kanadische Tugriks pro Stunde. Ursprünglich hatte ich beschlossen, anderthalb Stunden Unterricht zu nehmen, also habe ich den Preis für eine Unterrichtsstunde auf 35 Dollar pro Unterrichtsstunde in einer Gruppe von fünf Personen festgelegt, um die Miete zu kompensieren und etwas in meine Tasche zu stecken. Im Allgemeinen gefiel mir das Training in den Arenen, es löste eines der Probleme – die meisten russischsprachigen Menschen leben im Süden und ich lebe im Norden der Stadt, also habe ich eine Arena etwa in der Mitte gewählt. Aber es gab auch Unannehmlichkeiten. Die kanadische Bürokratie ist gut und freundlich, kann aber gelinde gesagt auch etwas ungeschickt sein. Es gibt keine Probleme, wenn man sich an den Rhythmus gewöhnt und im Voraus plant, aber manchmal entstehen unangenehme Momente. Auf der Website der Stadt können Sie beispielsweise bequem Zeit und Ort auswählen und ein Zimmer reservieren, zahlen können Sie jedoch in keiner Weise. Sie telefonieren selbst und akzeptieren Kartenzahlungen. Sie können ins Büro gehen und bar bezahlen. Es gab einen lustigen, aber nicht sehr angenehmen Moment, als ich auf ihren Anruf wartete, um die zweite Unterrichtsstunde zu bezahlen, dieser aber nicht kam, und am letzten Tag kam ich fünfzehn Minuten zu spät ins Büro. Ich musste mich mit unverschämter Miene an den Sicherheitsdienst wenden und lügen, dass das Zimmer ausgebucht sei. Wir Kanadier glauben mir beim Wort, sie haben mich ruhig reingelassen und nichts kontrolliert, aber das würde ich nicht tun, wenn die Leute nicht schon auf dem Weg zum Unterricht wären.

So habe ich den Winter und Frühling durchgearbeitet, und dann traten Veränderungen ein, die das Fass zum Überlaufen brachten. Erstens war das Büro für Besucher geschlossen und sie boten an, um die Ecke Zahlungen per Telefon anzunehmen. Ich saß mindestens eine halbe Stunde am Gang, bevor ich durchkam. Zweitens, wenn meine liebe Tante früher anderthalb Stunden von mir bezahlt hat, ging jetzt ein Mädchen ans Telefon und sagte, dass die Zahlung nur für eine Stunde sei. Damals bestand meine Gruppe entweder aus drei oder zwei Personen, und die zusätzlichen 12.5 Dollar waren keineswegs überflüssig. Natürlich bin ich ideologisch, aber wenn meine Frau mich auf die Straße wirft, gibt es niemanden, den ich unterrichten kann. Damals war ich noch arbeitslos.

Und ich beschloss, in die Bibliothek zu gehen. Bibliotheken vermieten wundervolle Räume völlig kostenlos, aber es gibt einen Haken: Sie können keine kommerziellen Aktivitäten durchführen. Selbst Wohltätigkeitsorganisationen dürfen dort kein Geld sammeln. Mir wurde gesagt, dass dies nicht besonders kontrolliert wird, die Hauptsache sei, am Eingang kein Geld zu nehmen, aber ich mag es wirklich nicht, gegen die Regeln zu verstoßen. Ein weiteres Problem besteht darin, dass die Räume häufig belegt sind und es schwierig ist, geplante Kurse gleichzeitig an einem Ort durchzuführen. Ich habe im Sommer und frühen Winter in Bibliotheken unterrichtet, ich musste diejenigen auswählen, die Platz hatten, und am Ende habe ich fünf oder sechs Bibliotheken gewechselt. Dann begann ich, zwei Monate im Voraus einen Platz zu reservieren, und selbst dann gelang mir dies nur in einer kleinen Bibliothek, in den übrigen Bibliotheken gab es regelmäßig keine Plätze für die benötigte Zeit. Und dann beschloss ich, zu Hause einen Computerkurs zu veranstalten. Ich habe die Tafel aufgehängt, einen zweiten Tisch und ein paar alte Monitore aus der Anzeige gekauft. Bei der Arbeit kaufte mir das Unternehmen einen neuen leistungsstarken Laptop, da die Analyse auf meinem Computer fast 24 Stunden dauerte. Also hatte ich einen neuen alten Computer, einen alten alten Computer, einen Laptop, bei dem mein Kleiner den Bildschirm zerschmettert hat, und ein altes Netbook, bei dem ich selbst den Bildschirm zerquetscht habe. Ich habe sie alle an die Monitore angeschlossen und überall Linux Mint installiert, mit Ausnahme des Netbooks, auf dem ich anscheinend ein sehr leichtes Distributionskit installiert habe, Pappy. Ich habe immer noch einen alten neuen Laptop, den ich für 200 Dollar gekauft habe und den ich an den Fernseher angeschlossen habe. Wichtig ist auch, dass unser Besitzer kürzlich unsere Fenster ausgetauscht hat und wir statt des schrecklichen, bröckelnden Elends im Zimmer jetzt neue weiße Rahmen haben. Meine Frau behält das Wohnzimmer, die Küche und das zweite Schlafzimmer für einen Kindergarten, sodass sich herausstellte, dass die gesamte Etage rein pädagogisch genutzt wurde. So, jetzt ist mit den Räumlichkeiten alles in Ordnung, lasst uns mit dem Unterrichten beginnen.

Kratzen

Ich fange an, die Grundlagen des Programmierens mit der Scratch-Sprache zu lehren. Dies ist eine Sprache, die vorgefertigte Blöcke verwendet, die einst am MIT erfunden wurden. Die meisten Kinder haben Scratch bereits in der Schule gesehen und erlernen es daher recht schnell. Es gibt fertige Programme und Unterrichtspläne, aber die gefallen mir überhaupt nicht. Manche sind seltsam – erfinden Sie zum Beispiel Ihre eigene Geschichte. Das gesamte Programm besteht aus unzähligen Blöcken say '<...>' for 2 seconds. Es ist ersichtlich, dass es von sehr kreativen Personen erfunden wurde, aber mit diesem Ansatz können Sie lernen, wie man klassischen indischen Spaghetti-Code schreibt. Von Anfang an spreche ich von Prinzipien wie DRY. Andere Aufgabensammlungen sind ganz gut, aber Kinder begreifen schnell das Wesentliche und beginnen, sie wie ein Maschinengewehr zu erledigen. Dadurch erledigen sie in einer Unterrichtsstunde das, was sie in fünf Unterrichtsstunden hätten tun sollen. Und das Suchen und Auswählen von Aufgaben nimmt viel persönliche Zeit in Anspruch. Im Allgemeinen erinnert Scratch eher nicht an eine Sprache, sondern an eine IDE, bei der Sie sich nur merken müssen, wo Sie klicken und wo Sie nach was suchen müssen. Sobald sich die Schüler mehr oder weniger wohl fühlen, versuche ich, sie auf Python zu übertragen. Sogar mein siebenjähriges Mädchen schreibt einfache Programme in Python. Den Vorteil von Scratch sehe ich darin, dass es grundlegende Konzepte enthält, die spielerisch erlernt werden. Aus irgendeinem Grund ist es ausnahmslos für alle sehr schwierig, die Idee einer Variablen zu verstehen. Zuerst habe ich das Thema schnell überflogen und weitergemacht, bis ich mit der Tatsache konfrontiert wurde, dass sie nicht einmal wussten, was sie dagegen tun sollten. Jetzt verbringe ich viel Zeit mit Variablen und kehre ständig zu ihnen zurück. Da muss man schon ein bisschen dumm hämmern. Ich verändere verschiedene Variablen auf dem Bildschirm und lasse sie ihre Werte aussprechen. Scratch verfügt außerdem über Kontrollstrukturen und Wertprüfungen, wie z while, for oder if in Python. Sie sind recht einfach, es gibt jedoch Probleme mit verschachtelten Schleifen. Ich versuche, mehrere Aufgaben mit einer verschachtelten Schleife zu versehen, damit ihre Aktion klar ist. Danach gehe ich zu den Funktionen über. Selbst für Erwachsene ist der Funktionsbegriff nicht offensichtlich, für Kinder umso mehr. Ich rede lange darüber, was eine Funktion im Allgemeinen ist, ich spreche von einer Fabrik, die Gegenstände als Input erhält und Waren ausgibt, von einem Koch, der Lebensmittel aus Rohzutaten zubereitet. Dann erstellen wir ein „Make a Sandwich“-Programm mit Produkten und erstellen daraus eine Funktion, an die die Produkte als Parameter übergeben werden. Ich beende das Erlernen von Funktionen mit Scratch.

Python

Mit Python ist alles einfacher. Es gibt ein gutes Buch „Python für Kinder“, nach dem ich unterrichte. Dort ist alles Standard - Linien, Reihenfolge der Operationen, print(), input() usw. In einfacher Sprache geschrieben, mit Humor, Kinder mögen es. Es weist einen Fehler auf, der vielen Programmierbüchern gemeinsam ist. Wie im berühmten Witz – Wie zeichnet man eine Eule? Oval - Kreis - Eule. Der Übergang von einfachen Konzepten zu eher komplexen Konzepten ist zu abrupt. Ich brauche mehrere Sitzungen, um das Objekt an die Punktmethode anzuhängen. Andererseits habe ich es nicht eilig, ich wiederhole das Gleiche auf unterschiedliche Weise, bis zumindest ein Bild zusammenkommt. Ich beginne mit Variablen und arbeite sie noch einmal aus, dieses Mal in Python. Variablen sind eine Art Fluch.

Ein kluger Student, der vor ein paar Monaten geschickt auf Skratch Variablen geklickt hat, sieht am neuen Tor wie ein Widder aus und kann das X nicht mit dem Y addieren, was eine Zeile darüber deutlich an der Tafel steht. Wir wiederholen! Was hat eine Variable? Name und Bedeutung! Was bedeutet das Gleichheitszeichen? Abtretung! Wie prüfen wir die Gleichberechtigung? Doppeltes Gleichheitszeichen! Und das wiederholen wir immer wieder bis zur völligen Erleuchtung. Dann gehen wir zu den Funktionen über, bei denen die Erklärung der Argumente am längsten dauert. Benannte Argumente, nach Position, standardmäßig usw. Wir haben noch in keiner Gruppe den Unterricht erreicht. Zusätzlich zu Python untersuchen wir beliebte Algorithmen aus dem Buch, dazu später mehr.

Eigentlich Training

Mein Unterricht ist so aufgebaut: Ich gebe eine halbe Stunde lang Theorie, prüfe Wissen und festige das Gelernte. Es ist Zeit für Labore. Ich lasse mich oft mitreißen und rede bis zu einer Stunde, dann bleibt noch eine halbe Stunde zum Üben übrig. Als ich Python lernte, habe ich mir den Kurs angesehen Algorithmen und Datenstrukturen Khiryanova vom MIPT. Seine Präsentation und der Aufbau seiner Vorlesungen haben mir sehr gut gefallen. Seine Idee ist folgende: Frameworks, Syntax, Bibliotheken werden obsolet. Architektur, Teamarbeit, Versionskontrollsysteme – es ist noch früh. Dadurch bleiben Algorithmen und Datenstrukturen erhalten, die seit langem bekannt sind und immer in ähnlicher Form vorliegen werden. Ich selbst erinnere mich nur an ganze Zahlen aus dem Institut Pascal. Da meine Schüler größtenteils jung sind, im Alter von sieben bis fünfzehn Jahren, glaube ich, dass es für ihre Zukunft wichtiger ist, den Grundstein zu legen, als schnell ein Plattformspiel in Python zu schreiben. Obwohl sie sich mehr ein Plattformspiel wünschen, und ich verstehe sie. Ich gebe ihnen einfache Algorithmen – eine Blase, binäre Suche in einer sortierten Liste, umgekehrte polnische Notation mithilfe eines Stapels, aber wir analysieren jeden einzelnen sehr detailliert. Es stellte sich heraus, dass moderne Kinder im Prinzip nicht wissen, wie ein Computer funktioniert, das sage ich Ihnen auch. Ich versuche, in jeder Vorlesung mehrere Konzepte miteinander zu verknüpfen. Zum Beispiel ein Computer – Speicher/Prozentsatz – Speicher besteht aus Zellen (ich lasse Sie den Speicherchip halten und raten Sie, wie viele Zellen es gibt) – jede Zelle ist wie eine Glühbirne – es gibt zwei Zustände – wahr/falsch - und/oder - binär/dezimal - 8bit = 1 Byte - Byte = 256 Optionen - logischer Datentyp auf einem Bit - Ganzzahlen auf einem Byte - float auf zwei Bytes - string auf einem Byte – der größten Zahl auf 64 Bit – eine Liste und ein Tupel aus den vorherigen Typen. Ich mache einen Vorbehalt, dass in einem echten Computer alles etwas anders ist und die Speicherkapazität für diese Datentypen unterschiedlich ist, aber die Hauptsache ist, dass wir selbst dabei komplexere Datentypen aus einfacheren erstellen. Datentypen sind vielleicht am schwierigsten zu merken. Deshalb beginne ich jede Lektion mit einem kurzen Aufwärmtraining – ein Schüler nennt den Datentyp, der nächste nennt zwei Beispiele und so weiter im Kreis. Dadurch habe ich erreicht, dass schon die Kleinsten fröhlich schreien – schweben! boolesch! sieben, fünf! Pizza, Auto! Während einer Vorlesung ziehe ich ständig zuerst das eine oder andere, sonst fangen sie schnell an, in der Nase zu bohren und an die Decke zu schauen. Und der Wissensstand jedes Einzelnen muss von Zeit zu Zeit überprüft werden.

Meine Schüler überraschen mich immer wieder, sowohl mit ihrer Dummheit als auch mit ihrer unerwarteten Intelligenz. Zum Glück öfter mit Intelligenz.

Ich wollte mehr schreiben, aber es stellte sich heraus, dass es nur ein Blatt war. Gerne beantworte ich alle Fragen. Ich freue mich über jede Kritik in jeder Hinsicht, ich bitte Sie nur, in den Kommentaren toleranter miteinander umzugehen. Das ist ein guter Artikel.

Source: habr.com

Kommentar hinzufügen