"Pascal und noch weniger Basic werden definitiv nicht benötigt": ein Interview mit Trainern im Sportprogramm

In diesem Jahr startete VKontakte mit Unterstützung der Promsvyazbank das VK- Stipendienprogramm für Informatiklehrer. Zusammen haben wir 15 Lehrer aus russischen Regionen ausgewählt: Entwickler von urheberrechtlich geschützten Programmierkursen, Schullehrer, Direktoren von Weiterbildungszentren und Trainer, die Schüler auf internationale Programmierolympiaden vorbereiten. Sie erhielten Stipendien von VKontakte und Promsvyazbank und nehmen jetzt an unseren Feldschulen teil.



Alle Lehrer verfügen über umfangreiche Erfahrung und sind Autoren ihrer eigenen Kurse zu den Grundlagen der Programmierung. In diesem Beitrag haben wir drei Stipendiaten gebeten, unsere Fragen zum Unterrichten von Programmierung und Informatik im Allgemeinen zu beantworten.

- Lassen Sie uns zuerst kennenlernen.

Inessa Shuykova: Ich arbeite als Direktorin und Lehrerin für Informatik am GOAOU-Zentrum zur Unterstützung begabter Kinder "Strategie" der Stadt Lipezk. Ich unterrichte C ++ und Pascal in den Klassen 6-11.
Peter Kalinin: Ich lebe und arbeite in Nischni Nowgorod. Ich leite Kurse am Lyceum Nr. 40 auf der Grundlage von Lobachevsky UNN sowie aus der Ferne, ohne Bezug auf eine bestimmte Bildungseinrichtung. Meistens in Python, Pascal, C ++. Mit einigen Kindern lerne ich in Java, C # und exotischeren Sprachen. Die meisten von ihnen gehen in die Klassen 9-11, aber einige waren bereits in der 4. Klasse.
Sergey Belyaev: Ich lebe in Krasnojarsk. Ich arbeite als Lehrerin für zusätzliche Bildung im regionalen Pionierpalast von Krasnojarsk. Es gibt viele Sprachen in der Arbeit - C ++, Pascal, Python, Basic, Java Script, Perl. Das Alter der Schüler ist unterschiedlich - normalerweise zwischen 12 und 18 Jahren.

Über das Unterrichten von Programmierung


- Wie organisiert man Unterrichtsprogramme in Schulen?

Inessa: Jeder Schüler muss über grundlegende Kenntnisse im Umgang mit Allzweck-Softwareprodukten, unterrichtete digitale Hygiene, sicheres Arbeiten im Internet und die Grundlagen der Programmierung verfügen. Fügen Sie für Kinder mit relevanten Interessen und Fähigkeiten Algorithmen und Datenstrukturen hinzu. Fortgeschrittene Programmierkurse sollten in Form von Spezialkursen durchgeführt werden. Jeder Schüler im Informatikunterricht sollte für die Umsetzung des Schul-IT-Projekts in das Projektteam aufgenommen werden.

Peter: Ich betrachte mich nicht als Spezialist für die Massenbildung von Schulkindern an weiterführenden Schulen, aber ich glaube, dass die Ausbildung an die Bedürfnisse von Schulkindern angepasst werden sollte. Interessierte Studierende sollten fundierte Kenntnisse erhalten, der Rest hat genügend oberflächliche Vorstellungen zum Programmieren.

Sergey: Das allgemeine Programm im Rahmen des Fachs Informatik sollte das gleiche sein wie jetzt: oberflächlich und für Bildungszwecke programmieren. Ein aussagekräftigerer Kurs ist für Fachklassen mit einer physischen und mathematischen Ausrichtung. Eine Berufsausbildung ist nur im Rahmen der Weiterbildung sinnvoll.

- Die Hauptprobleme des Programmierunterrichts in Russland? Wie löse ich sie?

Inessa: Im Rahmen der allgemeinen Bildung wird der Informatik eine kleine Anzahl von Stunden zugewiesen (wenn es sich nicht um Fachklassen handelt) - dies ist nicht das Hauptfach, dem erhebliche Aufmerksamkeit gewidmet werden würde. Daher die Konsequenz: Informatiklehrer sind in diesem Fach nicht immer professionell, und für viele Schulkinder ist dieses Fach mit einem Prozess verbunden, der nicht so wichtig ist und vom System durchgesetzt wird.

Die Lösung könnte die Einführung einer Rechtsstaatlichkeit sein, die es ermöglicht, die zusätzliche Bildung als Disziplin der allgemeinen Bildung zu berücksichtigen. Kinder besuchen gerne Programmierkurse in Weiterbildungszentren. Die Fähigkeit, das Mastering eines Kurses als Ergebnis eines allgemeinbildenden Programms zu beginnen, wird noch mehr Studenten auf das Beherrschen von Programmierkenntnissen aufmerksam machen.

Peter: Wenn Sie die verschiedenen bürokratischen Probleme nicht berücksichtigen, ist wahrscheinlich die Hauptsache das sehr veraltete Wissen (oder sogar das Fehlen davon) der meisten Lehrer.

Sergey: Ich denke, dass die Probleme des Informatikunterrichts mit den allgemeinen Bildungsproblemen in Russland verbunden sind, mit der Tatsache, dass der Lehrerberuf nicht prestigeträchtig ist. Und ein Lehrer, der Programmieren unterrichtet, ist keine Ausnahme.

- Lohnt es sich, vor der Schule zu programmieren? In welcher Form lohnt es sich umzusetzen?

Inessa: Vor der Schule ist es notwendig, allgemeine mathematische Fähigkeiten, ein Interesse am Lesen und eine Motivation für das Erkennen als solches zu entwickeln. Und ich halte es für unangemessen, Kindern etwas zu geben, für das sie psychisch nicht bereit sind.

Peter: Ich habe keine klare Antwort, aber ich glaube, dass die Entwicklung von Spielen und Aufgaben einer Programmiererrichtung das Recht hat zu existieren. Zum Beispiel habe ich meiner dreijährigen Tochter das Spiel "Taxi" von Mosigra gekauft.

Sergey: Ich denke, es ist zu früh, um vor der Schule Programmieren zu lernen. Vorher wäre es schön, zuerst lesen, schreiben und zählen zu lernen.

- Es ist allgemein bekannt, dass das Programmieren heutzutage ebenso eine notwendige Fähigkeit ist wie ein Führerschein und Englisch. Was sagst du

Inessa: Ja, das ist es! Selbst wenn Sie nicht bei der Arbeit programmieren, können Sie sich durch das Verständnis der Anordnung von Programmen und Informationssystemen in der zukünftigen digitalen Umgebung sicher fühlen.

Peter: Stimme überhaupt nicht zu. Erstens benötigen 90% der Menschen Rechte und Sprache (letztere in etwas geringerem Umfang) nicht nur für die Arbeit, sondern auch für das Privatleben. Das Programmieren außerhalb der Arbeit erfordert eine relativ kleine Anzahl von Personen, und in den allermeisten Fällen - nur als Hobby. Bei der Arbeit ist das Programmieren auch nicht für jedermann notwendig - es unterscheidet sich kaum von einem Führerschein oder einer Sprache.

Sergey: Natürlich nicht, sonst hätten sich viele ohne die nötigen Fähigkeiten unwohl gefühlt. Programmieren ist eine eher enge Spezialität, die nur wenige beherrschen. Die Leute lernen öfter Englisch und fahren Auto.

Über die Funktionen des Lernens von Programmiersprachen


- Was sind die schwierigsten und interessantesten Programmieraufgaben?

Inessa: Ich denke, das hängt in erster Linie von der Idee der Aufgabe ab und nicht vom Thema. Mit anderen Worten, wie elegant und schön die Idee ist, die der Aufgabe zugrunde liegt, wie viel später können Sie die Ungewöhnlichkeit der Aufgabe oder die Leichtigkeit der Idee bewundern, die die Grundlage war und den harten Weg gehen musste.

Peter: Das Interessanteste sind die schwierigen Aufgaben, die einen ungewöhnlichen Blick auf Standardalgorithmen oder Standardtheorie erfordern. Zum Beispiel ist Aufgabe "K" von hier.

Sergey : Es wird angenommen, dass die schwierigsten Themen Rekursion, Datenstrukturen (insbesondere Segmentbäume und ein kartesischer Baum) und Graphentheorie sind. Natürlich kann es in jedem Thema einfache Aufgaben geben. Wie in jedem einfachen Thema der Form „einfache Mathematik“ kann es überhaupt keine einfache Mathematik geben, wenn auch ohne Programmierung. Daher ist dies alles ziemlich subjektiv, es kann nicht argumentiert werden, dass alle Aufgaben eines der Themen notwendigerweise komplizierter sind als alle anderen. Für mich persönlich scheinen die Probleme aus der Spieltheorie die schwierigsten zu sein, insbesondere diejenigen, die die Minimax-Methode verwenden.

- Ist es möglich, C ++ unter Umgehung von Pascal und Basic zu lernen?

Inessa: Ja, definitiv möglich. Bestätigung ist meine Erfahrung mit Kindern.

Peter: Speziell in C ++ - es ist möglich, aber ich empfehle es nicht. Ich würde empfehlen, C ++ durch Python zu ersetzen. Pascal und noch mehr Basic werden definitiv nicht benötigt.

Sergey: Natürlich. Ich mache das seit 15 Jahren. Wenn das Hauptziel darin besteht, die Schüler in kurzer Zeit mit Programmierelementen vertraut zu machen und das Programmieren nicht gezielt zu unterrichten, ist Python besser.

- In welcher Reihenfolge müssen Sie mit dem Erlernen von C ++ beginnen, um sich nicht in der Wildnis zu verlieren?

Inessa: Ich rate Ihnen, sofort mit der Lösung einfacher Probleme zu beginnen. Ein Beispiel für einen guten Kurs ist „Einführung in die C ++ - Programmierung“ von Mikhail Gustakashin.

Peter: Ich glaube, dass Sie in jeder Sprache zuerst die grundlegenden Dinge lernen müssen, mit denen Sie einfache Programme schreiben können (Variablen, if, Schleifen, Arrays, Strings, reelle Zahlen). Mit ihnen ist es bereits möglich, fast jedes Olympiadenproblem zu lösen. Der Rest - nach Bedarf.

Sergey: Ich persönlich gehe erst nach vier Lektionen in die Sprache selbst, um mich mit der Programmierung anhand von Beispielen faszinierender Algorithmen vertraut zu machen - wie Spiele und Videos aus der jährlichen Kampagne "Code Hour". Dann stelle ich den Jungs die Vor- und Nachteile des Berufs eines Programmierers vor, einschließlich meiner langjährigen Erfahrung. Tatsächlich ist die für das Studium gewählte Programmiersprache nicht so grundlegend, da die Reihenfolge der Themen immer ungefähr gleich ist. Die Kenntnis der Syntax einer Sprache ist nicht das Wichtigste, jeder Humanist kann sie beherrschen. Das Wichtigste ist die Fähigkeit, klaren und fehlerfreien Code zu algorithmisieren und zu schreiben.

- Wie schreibe ich klaren C ++ - Code?

Inessa: Für Schüler ist der korrekte Name der Variablen, das Style-Design wichtig. Klarer Code ist strukturierter Code, der von anderen Personen in Ihrem Team gelesen werden kann.

Peter: Wie in jeder Sprache, Aufteilung des Codes in vernünftige Entitäten, Benennung von Variablen usw. Auf Schulebene wird jedoch fast nichts davon benötigt. Das Maximum besteht darin, eine angemessene Einrückung vorzunehmen.

Sergey : Dies ist besonders wichtig im Rahmen eines Projekts, an dem eine Gruppe von Programmierern arbeitet. Manchmal muss man die Programme anderer Leute verstehen, und dafür müssen einige Vereinbarungen beachtet werden. In jedem Fall gibt es jedoch allgemeine Grundsätze, die in Bezug auf ein Thema wahrscheinlich nicht von Bedeutung sind. Ich werde nur einige hervorheben:

  • Programmstruktur: Logische Einheiten müssen in separaten Blöcken zugeordnet werden (Einrückungen im Text von Programmen, Funktionen, Bibliotheken);
  • Die Namen der Variablen und Funktionen müssen für sich selbst sprechen, was sie enthalten.
  • Sie sollten auf jeden Fall Kommentare verwenden, wenn Sie Blöcke von Algorithmen beschreiben. Jede Funktion muss eine vollständige Spezifikation der Eingabeparameter und Rückgabewerte enthalten.

- Wie denkst du über die Verwendung von Boost für Bildungszwecke?

Inessa: Ich benutze es nicht bei der Arbeit

Peter: Im Prinzip positiv, aber das ist in der Schule nicht nötig.

Sergey: In der realen Programmierung habe ich nichts gegen diese Erweiterung. Aber ich unterrichte Kinder Olympiade-Programmierung, und dort können die Schüler sie nicht verwenden, da Boost nicht in den Standardbibliotheken eines der Standard-C ++ - Compiler enthalten ist. Sie müssen sich also mit beispielsweise STL (Standard Template Library) zufrieden geben.

- Haben Sie ein erfolgreiches Rezept, um Schüler auf das Programmieren von Olympiaden vorzubereiten?

Inessa: Theorie der Informatik sowie die Grundlagen der diskreten Mathematik und mathematische Methoden der Datenverarbeitung. Und auch ständiges Training, eingebaut in das System.

Peter: Grundlegende Theorie, Problemlösung, Verständnis des Formats der Olympiade, genaues Testen.

Sergey: Ich denke, dass nicht nur Erfahrung, Zeit, sondern auch Seele in den Programmierunterricht für Schüler investiert werden sollten. Nur der Lehrer, der sich für das Fach interessiert, kann die Schüler interessieren. Beim Unterrichten von Programmieren ist es wichtig, eine Gruppe talentierter Schüler auszuwählen, und innerhalb einer weiterführenden Schule ist dies sehr schwierig. Daher ist es effizienter, in Einrichtungen der zusätzlichen Bildung zu arbeiten, in denen es möglich ist, mit Kindern aus verschiedenen Schulen zu arbeiten

- Gibt es irgendetwas in Ihrem Programm, das es einzigartig macht?

Inessa: Ein Schlüsselmoment in der Technik selbst. Ich führe Gruppen von Kindern, die nach Ausbildungsniveau und Fähigkeiten gebildet werden, nicht nach Alter. Bildung ist nicht nur ein Lehrer-Schüler-Modell, sondern auch ein Schüler-Schüler-Modell. Die Ältesten helfen den Jüngeren: Sie analysieren die gelösten Probleme, überprüfen den Stil des Codes zum Schreiben von Programmen und unterstützen den Lehrer. Im Klassenzimmer bleibt das Umfeld der Kindergemeinschaft erhalten - eine Stimmung für Erfolg, Förderung, Ergebnisse. Wir machen olympische Veranstaltungen, externes Training zusammen, zusammen, mit Freude.

Peter: Erstens werden die Kurse vollständig online abgehalten. Es ist möglich, von überall auf der Welt aus der Ferne zu lernen. Zweitens, da kein Kalenderplan vorhanden ist, ist jeder Schüler in seinem eigenen Tempo beschäftigt. Drittens darauf achten, Fehler im Code zu testen und zu finden. Viertens eine kostenlose Lizenz für die Materialien, die ich entwickle.

Sergey: Erstens die Verwendung der Ressource "Programmer's School" des Autors. Zweitens die Verwendung von urheberrechtlich gedruckten Handbüchern. Drittens wird das gesamte theoretische Material in Präsentationen präsentiert, um die Materialien des Bildungsprogramms klarer zu veranschaulichen.



Über Selbstbildung


- Selbststudium und regelmäßiges Training. Wie kann man es besser kombinieren?

Inessa: Training mit einem Lehrer nach dem klassischen Schema - dieser Herbst ist wichtig, um die Basis zu meistern, ein Level zu entwickeln, „auf dem Flügel stehen“. Wenn ein Kind Preisträger wird, ist der Gewinner ernsthafter Olympiaden die Fortsetzung des klassischen Trainings, des Trainingsprozesses, der Feldschulen, der Selbstbildung (Fernkurse, persönliches regelmäßiges Training).

Peter: Kombiniere, wie ich zum Beispiel weiß. Schulkinder studieren das Material selbst, aber ich persönlich überprüfe die Lösungen für die Probleme, und die Jungs können sich immer mit mir beraten, wenn ihnen etwas nicht klar ist.

Sergey: Richtig, Selbsttraining ist besser mit regelmäßigem Training zu kombinieren. Auf diese Weise können Sie das Thema Programmieren schneller lernen, da ein talentierter Lehrer den Schüler korrekt in die richtige Richtung führen und ihm sagen kann, was, wo und wie.

- Sie sagen, dass es sich lohnt, bis zu einem bestimmten Alter Programmieren zu lernen, und dieses Alter beträgt weniger als 30 Jahre. Dann sinkt der Wirkungsgrad dramatisch. Wie stehen Sie zu solchen Altersbeschränkungen?

Inessa: Natürlich wäre es schön, bis zum Alter von 30 Jahren alles auf einmal zu lernen, aber das Leben ändert sich, das Wissen verbessert sich, die Sprachen entwickeln sich. Daher ist das Training ein Leben lang kontinuierlich. Olympiadenprogrammierung, die Geschwindigkeit, psychologische Konzentration und stundenlanges Training erfordert - dies ist für junge Leute. Programmieren lernen nach 30 Jahren - ich sehe hier keine Probleme, wenn es Motivation und eine mathematische Denkweise gibt.

Sergey: Grundsätzlich stimme ich zu. Aber vielleicht gibt es Ausnahmen. Nach 30 Jahren gibt es nicht nur Schwierigkeiten, etwas zu lernen, sondern auch die Programmierung selbst. Dies geschieht natürlich sehr reibungslos und es gibt keine klare Grenze. Früher konnte ich 10 Stunden am Tag programmieren, aber jetzt - Feuer. Deshalb wechsle ich systematisch vom Programmieren zum Programmierunterricht: Ich programmiere immer weniger und unterrichte mehr.

- Wie stehen Sie zu den vielen Kursen für Programmierer, die heute eröffnet werden? Denken Sie nicht, dass sie zu oberflächliches Wissen geben?

Inessa: Zwietracht. Bei der Auswahl des Kurses lohnt es sich immer, sich die ersten Vorlesungen anzusehen, um Ihr Niveau und das Niveau des Kurses zu korrelieren, den Nutzen von Wissen zu bewerten und so weiter. Daher glaube ich, dass eine vorläufige Kenntnis des Kurses erforderlich ist.

Peter: Ich glaube, dass es vernünftige und oberflächliche Kurse gibt. Außerdem hängt viel vom Schüler selbst ab.

Sergey: Ich sehe nichts falsch daran, dass es Kurse gibt, die nur oberflächliches Wissen vermitteln. Kinder müssen sich nur mit diesem Thema vertraut machen, bevor sie sich für einen ernsthaften Kurs anmelden, der darauf abzielt, professionelles Programmieren zu unterrichten. Und es kann nicht viele professionelle Kurse geben: Es gibt einfach nicht so viele fähige Kinder, die ernsthaftes Programmieren lernen, das ist eine ziemlich enge Richtung.

- Was war für dich während deines eigenen Trainings am schwierigsten? Welche Phasen können Sie herausgreifen?

Inessa: Die erste Phase ist die anfängliche Entwicklung, bei der alles neu und dunkel zu sein scheint. Die zweite Stufe ist eine gründliche Untersuchung des Materials, wenn alles zusammenpasst. In dieser Phase sind Konsultationen mit Kollegen wichtig und wenn möglich die Verfeinerung des Unterrichtsmaterials. Darüber hinaus halte ich es für wichtig, den Lehrprozess und die Motivation, neue Dinge zu lernen, ständig zu wiederholen.

Sergey: Wenn Sie sich erinnern, dass es 1989 war, als es kein Internet, keinen Heimcomputer und keine Lehrer gab und nur einen programmierbaren Taschenrechner mit Anweisungen, dann gab es gewisse Schwierigkeiten. Trotzdem konnte ich die Grundprinzipien der Programmierung beherrschen. Dann war ich in der neunten Klasse. Dies war die erste Stufe.

Die nächste Stufe ist die Schulung im Rahmen der Strafprozessordnung in den Klassen 10 bis 11 auf Computern ohne Festplatten. Aber dann mit einer Tastatur, einem Monitor (der ein Schwarzweißfernseher war) und einem Lehrer. Dann habe ich Basic und Pascal studiert. An der Universität haben sich meine Fähigkeiten und Kenntnisse auf dem Gebiet der Programmierung erheblich erweitert. Wir haben C ++, Lisp, Prolog und Assembler studiert. Und ab dem fünften Jahr begann ich, mich selbst zu unterrichten, und begann, Schulkindern Pascal beizubringen.

Die nächste wichtige Phase in meinem Leben hängt mit meiner Entwicklung der Richtung der Webprogrammierung beim Erstellen von Websites zusammen. Dieser Schritt hat vielleicht mein Leben auf den Kopf gestellt und eine große Anzahl von Arbeitgebern zu mir gezogen, gegen die ich mich immer noch wehre :)

Erst 2003 interessierte ich mich für das Programmieren von Olympiaden und wechselte dazu, dies Schulkindern beizubringen.

- Welche Fehler haben Sie während Ihres eigenen Trainings gemacht? Was können Sie diesbezüglich raten?

Inessa: Ein Fehler im Lernprozess - ein Versuch, unterschiedliche Informationen zu erfassen, eine bestimmte Menge von Informationen von schlechter Qualität. Ich rate Ihnen, qualitativ hochwertige Kurse mit guten Bewertungen und Empfehlungen von Kollegen zu verwenden. Es ist auch wichtig, die Zeit für das Training klar vorzusehen.

Sergey: Vielleicht ist mein Hauptfehler die falsche Wahl der Programmierwerkzeuge zum Erstellen von Websites. Ich verwende immer noch Technologie von Microsoft: Windows + IIS + ASP + MSSQL. Alle Entwicklungen erfordern nicht nur eine Lizenz, sondern auch große Rechenressourcen. Es ist viel besser, auf freier Software aufzubauen. Zu dieser Zeit und heute ist es immer noch wichtig, Programme zu erstellen und Websites für Unix mit Apache + PHP + MYSQL zu entwickeln.

Source: https://habr.com/ru/post/de433434/


All Articles