Wie ich Kindern Python beibringe

Wie ich Kindern Python beibringe

Meine Hauptarbeit ist mit Daten und Programmierung verbunden R, aber in diesem Artikel möchte ich ĂŒber mein Hobby erzĂ€hlen, das sogar ein gewisses Einkommen generiert. Ich habe immer gerne Freunden, Klassenkameraden und Studienkollegen etwas erzĂ€hlt und erklĂ€rt. Ich hatte auch immer ein gutes GespĂŒr, um mit Kindern ins GesprĂ€ch zu kommen, ich weiß nicht, warum. Generell halte ich die Erziehung und Bildung von Kindern fĂŒr eine der wichtigsten TĂ€tigkeiten ĂŒberhaupt, und meine Frau ist auch Lehrerin. Vor etwa einem Jahr habe ich eine Anzeige in einer lokalen Facebook-Gruppe aufgegeben, eine Gruppe gegrĂŒndet und angefangen, einmal pro Woche Scratch und Python zu unterrichten. Jetzt habe ich fĂŒnf Gruppen, mein eigenes Klassenzimmer und individuelle Nachhilfestunden. Wie ich dazu gekommen bin und wie genau ich die Kinder unterrichte, werde ich in diesem Artikel erzĂ€hlen.

Ich lebe in Kanada, in der Stadt Calgary, Provinz Alberta, sodass einige Aspekte mit den örtlichen Gegebenheiten verbunden sein werden.

Raum

Die VerfĂŒgbarkeit von RĂ€umlichkeiten fĂŒr den Unterricht war von Anfang an das Hauptproblem. Ich habe versucht, BĂŒros und KlassenrĂ€ume stundenweise zu mieten, jedoch ohne großen Erfolg. Unsere UniversitĂ€t und SAIT – das lokale Pendant zum MIT – vermieten KlassenrĂ€ume sowohl mit als auch ohne Computer. Die Preise waren dort jedoch nicht gerade human, und letztendlich stellte sich heraus, dass die UniversitĂ€t MinderjĂ€hrige nicht auf das GelĂ€nde lĂ€sst, und dass SAIT ĂŒberhaupt nur an seine eigenen Studenten vermietet. Dieser Option fiel somit weg. Es gibt viele BĂŒrozentren, die BesprechungsrĂ€ume und BĂŒros stundenweise vermieten, es gibt ganze Firmen, die eine Menge Optionen von einem vollwertigen Klassenzimmer bis zu kleinen RĂ€umen fĂŒr vier Personen anbieten. Ich hatte Hoffnung, da Alberta eine ölreiche Provinz ist, wir seit 2014 eine langwierige Krise haben und viele GewerbeflĂ€chen leer stehen. Umsonst hatte ich gehofft, die Preise waren derartig horrend, dass ich anfangs nicht glauben konnte. Den EigentĂŒmern ist es lieber, auf leeren BĂŒros zu sitzen und ihre Kosten zu tragen, als zu dumpen.

In diesem Moment erinnerte ich mich daran, dass ich brav meine Steuern zahle, und ob es etwas von unserem lieben Staat gibt, genauer gesagt — von der Stadt Calgary. Es stellte sich heraus, dass es tatsĂ€chlich sehr viel gibt. Die Stadt hat Arenen fĂŒr Hockey und andere Eiskunstlaufarten, und in diesen Arenen gibt es RĂ€ume, in denen strenge Eiskrieger Strategien fĂŒr zukĂŒnftige Schlachten besprechen. Kurz gesagt, bei jeder Arena gibt es ein paar RĂ€ume mit Tischen, StĂŒhlen, einem Whiteboard und sogar einem Waschbecken mit Wasserkocher. Der Preis ist ziemlich human – 25 kanadische Dollar pro Stunde. Ich hatte ursprĂŒnglich entschieden, die Unterrichtsstunden anderthalb Stunden lang zu gestalten, deshalb setzte ich den Preis fĂŒr eine Stunde mit $35 pro Teilnehmer in einer Gruppe von fĂŒnf Personen fest, um die Miete zu decken und mir selbst etwas in die Tasche zu stecken. Insgesamt gefiel mir das Arbeiten in den Arenen, das löste eines der Probleme – die meisten Russischsprachigen leben im SĂŒden, und ich lebe im Norden der Stadt, deshalb wĂ€hlte ich eine Arena etwa in der Mitte. Aber es gab auch Unannehmlichkeiten. Die kanadische BĂŒrokratie ist gut und freundlich, aber, um es vorsichtig auszudrĂŒcken, manchmal etwas unbeweglich. Es gibt keine Probleme, wenn man sich an den Rhythmus gewöhnt und im Voraus plant, aber manchmal treten unangenehme Momente auf. Zum Beispiel kann man auf der Webseite der Stadt bequem die Zeit und den Ort auswĂ€hlen und einen Raum reservieren, aber bezahlen kann man nicht, gar nicht. Sie rufen selbst an und nehmen die Zahlung mit Karte entgegen. Man kann ins BĂŒro fahren und bar bezahlen. Es gab einen amĂŒsanten, aber nicht besonders angenehmen Moment, als ich auf ihren Anruf wartete, um fĂŒr die zweite Stunde zu bezahlen, aber nicht den Anruf erhielt und am letzten Tag fĂŒnfzehn Minuten zu spĂ€t ins BĂŒro kam. Ich musste mit dreistem Gesicht zur Sicherheit gehen und lĂŒgen, dass der Raum reserviert sei. Wir Kanadier glauben auf Wort, sie ließen mich einfach rein und prĂŒften nichts, aber ich wĂŒrde so etwas nicht machen, wenn die Leute nicht bereits zu der Stunde unterwegs wĂ€ren.

So habe ich den Winter und den FrĂŒhling verbracht, und dann gab es VerĂ€nderungen, die das Fass zum Überlaufen brachten. Erstens wurde das BĂŒro fĂŒr Besucher geschlossen und man schlug vor, die Zahlung telefonisch um die Ecke zu akzeptieren. Ich habe mindestens eine halbe Stunde im Flur gesessen, bevor ich durchgekommen bin. Zweitens, wenn zuvor eine nette Tante die Zahlung fĂŒr anderthalb Stunden entgegengenommen hat, dann nahm jetzt ein MĂ€dchen ab und erklĂ€rte, dass die Zahlung nur fĂŒr eine Stunde möglich sei. Zu diesem Zeitpunkt hatte ich eine Gruppe mit mal drei, mal zwei Personen, und die zusĂ€tzlichen $12,5 waren keineswegs ĂŒberflĂŒssig. Ich bin natĂŒrlich engagiert, aber wenn mich meine Frau auf die Straße setzt, wird niemand mehr unterrichten. Zu diesem Zeitpunkt war ich außerdem arbeitslos.

Und ich habe entschieden, in die Bibliothek zu gehen. Bibliotheken stellen wunderschöne RĂ€ume völlig kostenlos zur VerfĂŒgung, aber es gibt ein Aber – man darf dort keine kommerziellen AktivitĂ€ten durchfĂŒhren. Sogar gemeinnĂŒtzige Organisationen haben dort nicht das Recht, Geld zu sammeln. Man hat mir gesagt, dass das nicht besonders kontrolliert wird, das Wichtigste ist, dort am Eingang kein Geld zu verlangen, aber ich mag es ĂŒberhaupt nicht, Regeln zu brechen. Ein weiteres Problem ist, dass die RĂ€ume oft belegt sind und es schwierig ist, Unterricht nach Zeitplan zur gleichen Zeit am gleichen Ort abzuhalten. Ich habe in Bibliotheken im Sommer und zu Beginn des Winters unterrichtet und musste die Orte wĂ€hlen, wo Platz vorhanden war; letztendlich habe ich fĂŒnf oder sechs Bibliotheken gewechselt. Dann habe ich angefangen, zwei Monate im Voraus zu reservieren, und nur in einer kleinen Bibliothek hat das geklappt; in den anderen war regelmĂ€ĂŸig zu der gewĂŒnschten Zeit kein Platz. Und dann habe ich beschlossen, einen Computerraum zu Hause einzurichten. Ich habe eine Tafel aufgehĂ€ngt, habe am Markt einen zweiten Tisch und ein paar alte Monitore gekauft. FĂŒr die Arbeit hat mir die Firma einen neuen leistungsstarken Laptop gekauft, da die Analyse auf meinem Computer fast 24 Stunden dauerte. Insgesamt hatte ich einen neuen alten Computer, einen alten alten Computer, ein Laptop, dessen Bildschirm mein Kleiner zerdrĂŒckt hat, und ein uraltes Netbook, dessen Bildschirm ich selbst zerstört habe. Ich habe alle an die Monitore angeschlossen und ĂŒberall Linux Mint installiert, außer auf dem Netbook, auf das ich ein ganz leichtes Betriebssystem installiert habe, glaube ich, Puppylinux. Ich habe auch ein alten neuen Laptop, den ich fĂŒr 200 $ gekauft habe, an den Fernseher angeschlossen. Und was auch nicht unwichtig ist: Unser Vermieter hat uns kĂŒrzlich die Fenster gewechselt, und im Raum gibt es jetzt anstelle des schrecklichen zerfallenen Elends neue weiße Rahmen. Das Wohnzimmer, die KĂŒche und das zweite Schlafzimmer hĂ€lt meine Frau als Kindergarten, weshalb die gesamte Etage rein pĂ€dagogisch geworden ist. So, jetzt ist der Raum gut, lassen Sie uns direkt zum Unterrichten ĂŒbergehen.

Scratch

Ich beginne, die Grundlagen der Programmierung mit der Sprache Scratch zu lehren. Es handelt sich um eine Sprache, die fertige Blöcke verwendet und zu seiner Zeit am MIT entwickelt wurde. Die meisten Kinder haben Scratch bereits in der Schule gesehen, daher wird es relativ schnell erlernt. Es gibt vorgefertigte Programme und UnterrichtsplĂ€ne, aber die gefallen mir ĂŒberhaupt nicht. Einige sind seltsam – erstelle deine eigene Geschichte zum Beispiel. Das gesamte Programm besteht aus unzĂ€hligen Blöcken say '' for 2 seconds. Es ist offensichtlich, dass sie von sehr kreativen Persönlichkeiten erfunden wurde, aber mit diesem Ansatz kann man lernen, klassischen indischen Spaghetticode zu schreiben. Ich hingegen erlĂ€utere von Anfang an Prinzipien wie D.R.Y. Andere Übungshefte sind durchaus gut, aber die Kinder verstehen schnell den Kern und fangen an, sie wie am Fließband zu erledigen. Am Ende machen sie in einer Stunde das, was sie in fĂŒnf Stunden hĂ€tten tun sollen. Auch die Suche und Auswahl der Aufgaben kostet viel persönliche Zeit. Im Grunde erinnert Scratch mehr an eine IDE als an eine Programmiersprache, wo man nur lernen muss, wo man klicken und wo man suchen muss. Sobald die SchĂŒler sich einigermaßen eingearbeitet haben, versuche ich, sie auf Python umzustellen. Ich habe sogar ein siebenjĂ€hriges MĂ€dchen, das einfache Programme in Python schreibt. Den Nutzen von Scratch sehe ich darin, dass es grundlegende Konzepte vermittelt, die spielerisch erlernt werden. Irgendwie haben alle ohne Ausnahme große Schwierigkeiten, das Konzept einer Variablen zu verstehen. Anfangs bin ich schnell ĂŒber dieses Thema hinweggegangen und weitergezogen, bis ich merkte, dass sie ĂŒberhaupt nicht wissen, was sie damit anfangen sollen. Jetzt widme ich den Variablen viel Zeit und gehe stĂ€ndig darauf zurĂŒck. Man muss sich intensiv mit den Grundlagen beschĂ€ftigen. Ich Ă€ndere verschiedene Variablen auf dem Bildschirm und lasse sie deren Werte aussprechen. Auch in Scratch gibt es Kontrollstrukturen und WertĂŒberprĂŒfungen, wie while, for oder if in Python. Diese werden relativ leicht vermittelt, nur mit verschachtelten Schleifen gibt es Probleme. Ich versuche, mehrere Aufgaben mit einer verschachtelten Schleife zu stellen, und darauf zu achten, dass die AusfĂŒhrung anschaulich ist. Danach gehe ich zu den Funktionen ĂŒber. Selbst fĂŒr Erwachsene ist das Konzept einer Funktion oft nicht offensichtlich, und fĂŒr Kinder erst recht nicht. Ich erklĂ€re lange, was eine Funktion ĂŒberhaupt ist, spreche von einer Fabrik, die Objekte entgegennimmt und Produkte ausgibt, oder von einem Koch, der aus rohen Zutaten Essen zubereitet. Dann erstellen wir das Programm „Mache ein Sandwich“ mit den Zutaten, und danach machen wir daraus eine Funktion, in die die Zutaten als Parameter ĂŒbergeben werden. Mit dem Studium der Funktionen beende ich die Arbeit mit Scratch.

Python

Mit Python ist alles einfacher. Es gibt ein gutes Buch 'Python for Kids', nach dem ich unterrichte. Dort ist alles standardmĂ€ĂŸig – Zeichenfolgen, Reihenfolge der Operationen, print(), input() und so weiter. Es ist in einfacher Sprache, mit Humor verfasst, und Kinder mögen es. Sie hat einen Nachteil, der vielen ProgrammierbĂŒchern eigen ist. Wie in dem bekannten Witz – wie zeichnet man eine Eule. Oval – Kreis – Eule. Der Übergang von einfachen Konzepten zu ziemlich komplizierten Konzepten ist zu abrupt. Ich brauche mehrere Sitzungen, um zu erklĂ€ren, dass ein Objekt mit einer Methode durch einen Punkt verbunden ist. Auf der anderen Seite habe ich es nicht eilig, ich wiederhole das Gleiche auf unterschiedliche Weise, bis sich ein gewisses Bild ergibt. Ich beginne mit Variablen und beschĂ€ftige mich wieder damit, bereits in Python. Variablen sind ein gewisser Fluch.

Ein aufgeweckter SchĂŒler, der vor ein paar Monaten geschickt mit Variablen in Scratch umging, schaut wie ein Schaf auf neue Tore und kann x und y, die eindeutig eine Zeile höher an der Tafel geschrieben stehen, nicht zusammenbringen. Wiederholen wir! Was hat eine Variable? Name und Wert! Was bedeutet das Gleichheitszeichen? Zuweisung! Und wie ĂŒberprĂŒfen wir die Gleichheit? Doppeltes Gleichheitszeichen! Und so wiederholen wir es immer wieder, bis zur vollstĂ€ndigen Erleuchtung. Dann gehen wir zu den Funktionen ĂŒber, wobei die ErklĂ€rung der Argumente am lĂ€ngsten dauert. Benannte Argumente, positionale, Standardargumente und so weiter. Zu Klassen sind wir in keiner Gruppe bisher gekommen. Neben Python aus dem Buch lernen wir beliebte Algorithmen, dazu spĂ€ter mehr.

Eigentlich das Lernen

Meine Lektion ist so strukturiert – eine halbe Stunde gebe ich Theorie, ĂŒberprĂŒfe das Wissen, festige das Gelernte. Eine Stunde – Laborarbeiten. Oft verliere ich mich und rede bis zu einer Stunde, dann bleiben entsprechend nur noch eine halbe Stunde fĂŒr die Praxis. Als ich Python lernte, habe ich einen Kurs durchgesehen. Algorithmen und Datenstrukturen Khiryjanova von der MFTI. Mir hat seine PrĂ€sentation und die Struktur der Vorlesungen sehr gefallen. Seine Idee ist, dass Frameworks, Syntaxe und Bibliotheken veralten. Architektur, Teamarbeit, Versionskontrollsysteme — das ist noch frĂŒh. Am Ende bleiben die Algorithmen und Datenstrukturen, die schon lange bekannt sind und immer in Ă€hnlicher Form bleiben werden. Ich erinnere mich aus dem Institutspascal nur an Integers. Da meine SchĂŒler hauptsĂ€chlich jung sind, zwischen sieben und fĂŒnfzehn Jahren, halte ich es fĂŒr wichtiger, ihnen Grundlagen zu vermitteln, als schnell ein Plattformspiel in Python zu programmieren. Auch wenn sie mehr ein Plattformspiel möchten, und ich verstehe sie. Algorithmen gebe ich ihnen einfache — Blasensortierung, binĂ€re Suche in einer sortierten Liste, umgekehrte polnische Notation mit einem Stack, aber wir besprechen jedes sehr detailliert. Es stellte sich heraus, dass moderne Kinder im Prinzip nicht wissen, wie ein Computer funktioniert, das erzĂ€hle ich ihnen auch. Ich versuche, in jeder Vorlesung mehrere Konzepte miteinander zu verknĂŒpfen. Zum Beispiel: Computer — Speicher/Prozessor — Speicher aus Zellen (ich lasse sie eine Speichermodul halten, schĂ€tzen Sie, wie viele Zellen hier sind) — jede Zelle wie eine GlĂŒhbirne — es gibt zwei ZustĂ€nde — true/false — und/oder — binĂ€r/dezimal — 8 Bits = 1 Byte — Byte = 256 Möglichkeiten — logischer Datentyp auf einem Bit — ganze Zahlen auf einem Byte — float auf zwei Bytes — string auf einem Byte — die grĂ¶ĂŸte Zahl auf 64 Bit — Liste und Tupel aus den vorherigen Typen. Ich weise darauf hin, dass in einem realen Computer alles etwas anders ist und eine andere Speichermenge fĂŒr diese Datentypen benötigt wird, aber das Wichtige ist, dass wir selbst im Prozess komplexere Datentypen aus einfacheren erstellen. Datentypen sind wohl das Schwierigste, was man sich merken muss. Daher beginne ich jede Einheit mit einem schnellen AufwĂ€rmen — ein SchĂŒler nennt einen Datentyp, der nĂ€chste bringt zwei Beispiele, und das geht im Kreis weiter. Am Ende habe ich erreicht, dass selbst die jĂŒngsten Kinder fröhlich rufen — float! boolean! sieben, fĂŒnf! pizza, auto! WĂ€hrend der Vorlesung ziehe ich stĂ€ndig einen SchĂŒler nach dem anderen auf, sonst fangen sie schnell an, in der Nase zu bohren und an die Decke zu starren. Außerdem muss man zwischendurch den Wissensstand jedes Einzelnen ĂŒberprĂŒfen.

Meine SchĂŒler hören nicht auf, mich sowohl durch ihre Dummheit als auch durch ihre unerwartete Cleverness zu ĂŒberraschen. GlĂŒcklicherweise ist die Cleverness hĂ€ufiger.

Ich wollte mehr schreiben, aber es ist schon ein langer Text geworden. Ich beantworte gerne alle Fragen. Jede Kritik ist herzlich willkommen, nur die Bitte – seien wir in den Kommentaren einander gegenĂŒber tolerant. Dies ist ein freundlicher Artikel.

Quelle: habr.com

60GB SSD 8Gb DDR4