Jeder kann seine eigenen Aufgaben zur Datenbank hinzufügen , und es ist nicht schwieriger , Kiddo in Ihre Website einzubetten als ein YouTube-Player. Denis Tsyplakov, DataArt Solution Architect, der Projektinspirator, sprach über die Idee einer Bildungsplattform für Kinder und deren Umsetzung während der Quarantäne.
Was ist Kiddo?
Kiddo ist eine Plattform für Kinder, auf der sie lernen, wie man in Python programmiert, indem sie Probleme mit schnellem Feedback lösen. Ein einfaches Programm, das vom Benutzer über die API geschrieben wird, steuert die Szenen, in denen der Code sofort gerendert wird. Jetzt gibt es zwei solche Szenen: Die erste ist ein Labyrinth, durch das beim Sammeln von Keksen und der Flucht vor Monstern ein kleiner Waschbär läuft, die zweite ist eine Hardcore-Konsole, eine klassische Umgebung zur Lösung von Programmierproblemen.
Die Aufgabe des Benutzers ist es, den Waschbären mit einer Flagge zum Ziel zu bringen, Kekse zu sammeln und nicht vom Monster erwischt zu werden.
Kiddo gibt nicht vor, ein Lehrbuch zu sein, und hier ist noch ein erstes Verständnis der Programmierung erforderlich. Es gibt jedoch bereits genügend Tutorials für Anfänger, um Python im Internet von Grund auf neu zu lernen: Nebenbei können Sie den Python Books- Kanal oder die Website aufrufenpythonworld.ru . Unsere Plattform kann eher als Ergänzung zu ihnen dienen, als Sammlung praktischer Aufgaben. Es scheint mir jedoch, dass jeder Schüler in ein paar Tagen und höchstwahrscheinlich herausfinden wird, wie man Probleme viel schneller löst. Außerdem haben wir genug Tipps.
Wir haben jetzt 20-30 Aufgaben für jede der beiden Szenen. Grundsätzlich sind sie recht einfach, insbesondere in der Variante mit einem Waschbären: Zuerst müssen Sie ihn nur bewegen - geben Sie Befehle, um zwei Zellen nach rechts zu bewegen, dann drei Zellen nach unten usw.
Allmählich werden die Aufgaben komplizierter, es erscheinen sich bewegende Monster, die mit Hilfe bekämpft werden können Bei Bomben und Kanonen beginnen die Tracks selbst, ihre Konfiguration zu ändern, wenn das Level generiert wird
Die Konsole macht keinen großen Spaß, sie ist nur ein Emulator für Computerterminals. Es gibt jedoch nicht triviale Aufgaben, bei denen Sie im Allgemeinen codieren müssen. Obwohl sie keine titanischen Anstrengungen erfordern, kann der Schüler mit ihnen fertig werden. Vor allem aber kann zumindest ein ganzes Handbuch mit Aufgaben, beispielsweise für das erste Jahr einer Universität, leicht auf diese Bühne gestellt werden. Sie können sie selbst hinzufügen - für ein bestimmtes eigenes Projekt.
Für die Version mit der Konsole gibt es jetzt 24 Aufgaben auf der Kiddo-Website.
Um Kiddo in Ihre Website einzubetten, müssen Sie nur den Einbettungscode kopieren - genau wie im YouTube-Player.
Wir bei DataArt sind der Meinung, dass die Plattform bei Konferenzen oder beispielsweise an Tagen der offenen Tür (wenn die Konferenzen beginnen und die Türen sich endlich öffnen) verwendet werden kann. Ein Spiel für Programmierer setzt einerseits eine minimale Eintrittsbarriere, andererseits ist dies immer noch kein völlig trivialer Schachzug, es nervt mich persönlich nicht, im Gegensatz zu einigen Formen traditioneller Werbung. Ich verstehe, dass Werbung für eine Konferenz ein notwendiges Übel ist :-) Aber es gibt eine Möglichkeit, diese Werbung lustig und interessant zu machen. Natürlich zählen wir auch auf die Zusammenarbeit mit Kinderprogrammschulen - jetzt verhandeln wir mit einer von ihnen, wir werden sehen, was wir gemeinsam tun können.
Wie unterscheidet sich Kiddo?
Wenn wir uns einen Schulungsort ansehen, sehen wir drei Komponenten:
- , — , . , , .
- — , - , , . , - .
- LMS — Learning Management System — , , , , , , .
An Schulungsorten werden diese drei Komponenten normalerweise zu einem Ganzen zusammengeführt. Dies ist verständlich, da jedes von ihnen ein Produkt mit einem bestimmten Geschäftsziel ist, dessen Erreichung eine maximale Beteiligung der Benutzer erfordert. Aus dem gleichen Grund sehen die Elemente der Gameification in LMS solcher Projekte oft sehr schwierig aus: Quests mit interplanetaren Flügen, Inventar, Level-Charakterfähigkeiten. Es ist klar, dass viele Bildungsprojekte versuchen, sie näher an Online-Spiele heranzuführen, um sie so attraktiv wie möglich zu gestalten. Aber es scheint mir unpraktisch, dass solche Produkte schwierig oder unmöglich anzupassen sind und es definitiv unmöglich ist, sie in Teilen zu verwenden - entweder ganz zu nehmen oder nach einem anderen zu suchen. In dieser Hinsicht hat der Benutzer wenig Auswahl.
Es gibt noch ein anderes Problem - die Lücke zwischen sehr kindischen Programmen, bei denen Sie beispielsweise nur die Würfel über den Bildschirm bewegen müssen, und der IDE, bei der Sie sich befinden, funktioniert ganz wie bei einem Erwachsenen. Obwohl die Zwischennische teilweise durch Programmierspiele gefüllt ist, die auf demselben Steam verfügbar sind, zum Beispiel TIS-100. Sie ähneln normalerweise denen, an denen ich selbst vor 30 Jahren auf Heimcomputern studiert habe. Die Hauptsache in ihnen ist ein schneller Feedback-Zyklus: Sie schreiben ein normales Programm in einer mehr oder weniger ausgereiften Programmiersprache und erhalten sofort eine Visualisierung: Etwas oder jemand dreht sich, läuft, springt usw. Solche Spiele können jedoch nur als verwendet werden ein integrales, unabhängiges Produkt - es ist unmöglich, Aufgaben zu isolieren, um sie in Ihren eigenen Bildungszyklus zu integrieren.
Einmal habe ich gesehen, wie meine jüngste Tochter Programmierprobleme auf einem russischen Bildungsportal gelöst hat. Sie hat dann auf ungefähr 90 davon geklickt: Fairerweise muss ich sagen, dass die Aufgaben selbst recht einfach sind, aber mit der Visualisierung und der Geschwindigkeit des Feedbacks ist dort nicht alles schlecht. Dabei kam mir die Idee, eine universelle Komponente zu erstellen, die wiederverwendet oder in Projekte von Drittanbietern eingebettet werden kann - machen Sie damit, was Sie wollen, und erstellen Sie komplexere Aufgaben. Es kann als Open Source verbessert werden und auf dieser Basis verschiedene Lernzyklen aufbauen. Die Hauptsache ist, dass der Benutzer - zum Beispiel ein Schüler - einen einfachen Code schreiben sollte, der sofort ausgeführt wird, und dass etwas, das ziemlich lustig aussieht, auf dem Bildschirm passieren würde.
Wie haben wir Kiddo gemacht?
Die Idee einer Plattform oder vielmehr einer Komponente, die Sie direkt in Ihren Browser einbetten können, kam mir vor über einem Jahr. Ich wünschte, jeder, der daran interessiert wäre, könnte es erweitern. Damit Sie am Ende tiefe und komplexe Probleme aufbauen können, beginnend mit einfachen. Zuerst entwickelte sich alles langsam, dann ging es mit Hilfe einer internen Initiative des Talent Lab, bei der wir Hypothesen testen und kleine Projekte für uns selbst erstellen, schneller.
Aber natürlich hat die Selbstisolation den Trick getan. Es bleibt mehr Zeit, außerdem hat das Interesse der Ingenieurkollegen an Projekten für Kinder spürbar zugenommen. Wahrscheinlich waren viele aus eigener Erfahrung oder aus der Erfahrung geliebter Menschen davon überzeugt, wie schwierig es ist, ein Kind zu Hause zu halten.
Insgesamt haben wir nur 350 Produktionsstunden erreicht. Es stimmt, irgendwo haben uns Kollegen geholfen, die vorübergehend außerhalb von Kundenprojekten waren. Wir sind in Iterationen umgezogen und hatten fast ein Dutzend interne Alpha-Releases. Nun, da wir diskret und durch die Kräfte derer gehandelt haben, die zu einem bestimmten Zeitpunkt frei waren, hatten wir eine titanische technische Schuld. Wir haben also fast einen Monat lang umgestaltet.
Einige Funktionen sind noch nur im Entwurf enthalten, das Projekt kann jedoch skaliert werden. Die Aufgaben wurden hauptsächlich von den Entwicklern selbst erfunden, aber Sie können die Datenbank fast unbegrenzt weiter füllen. Es gab keine Probleme mit der Visualisierung: Wir haben uns mit dem Konzept eines verallgemeinerten Arcade-Spielzeugs befasst, das beispielsweise vielen aus den späten 1980er Jahren nahe kommt. Ich selbst habe einmal drei davon in Assembler gemacht.
Was weiter?
Jetzt lokalisieren wir die Plattform für verschiedene Länder und ihr Quellcode wurde auf GitHub veröffentlicht . Sie können die Datenbank mit Aufgaben jedoch jederzeit auffüllen und Kiddo zu Ihren Websites bringen. Probleme sind in JavaScript geschrieben, ihre Komplexität ist nur durch die Vorstellungskraft des Autors begrenzt. Wir haben eine Reihe von vorgefertigten Bildern für Aufgaben mit einem Grafikfeld, aber wenn Sie möchten, können Sie Ihre eigenen zeichnen.
Wenn jemand Kiddo etwas Eigenes hinzufügen möchte, um es beispielsweise als Element auf einer bestimmten Website organischer aussehen zu lassen, können Sie uns einfach unter kiddo@dataart.com schreiben . Ich denke, wir werden uns etwas einfallen lassen. Oder Sie können den Code an GitHub weitergeben und selbst ausführen.