Die Grundlage jeder Programmierung
 besteht aus Puzzles.

Hallo, Habr-AnhÀnger!

In diesem Artikel möchte ich von meinen Erfahrungen als Programmierdozent fĂŒr C++ an einem technischen Hochschulkolleg berichten. Es war eine einmalige Erfahrung im Leben, die mir viel beigebracht hat. Wenn es um interessante Fakten aus der persönlichen Vergangenheit geht, kommt dieser Abschnitt aus meinem Leben als einer der ersten in den Sinn.
Los geht's.

Zuerst ein wenig ĂŒber mich.
2016 habe ich mein Studium mit rotem Diplom im Fach „Informationssicherheit automatisierter Systeme“ abgeschlossen. WĂ€hrend meines Studiums konnte ich immer wieder mein Potenzial in der Erstellung wissenschaftlicher Arbeiten, der Teilnahme an Wettbewerben und Stipendien ausschöpfen. Im Jahr 2015 hatte ich die Ehre, den landesweiten Wettbewerb fĂŒr junge Wissenschaftler „UMNIK“ zu gewinnen. 2016, noch vor dem Abschluss, wurde ich von einer großen Organisation in der Stadt als „Spezialist fĂŒr Informationssicherheit, Kryptographie und VerschlĂŒsselung“ eingestellt.
Kurz gesagt, so ist es ungefĂ€hr. Man kann sich vorstellen, dass ich doch ein gewisses VerstĂ€ndnis fĂŒr Programmierung hatte.

Und da war das Jahr 2017. Promotionsstudium. Man hatte mich gebeten, im Laufe des Semesters C++ am College zu unterrichten, wofĂŒr man mir gute Boni als Entlastung fĂŒr die Promotion in Aussicht stellte und sonst nichts.

Ehrlich gesagt, ich fand es wirklich interessant, mich in diesem Bereich zu versuchen.

Die erste Stunde
September. Die erste Unterrichtswoche. Die Studenten kamen zu mir. „Die ungehorsamste Gruppe“ – so wurden sie genannt.
23 Personen. „Programmierer“.

Wie es sich gehört, stellte ich mich zunĂ€chst vor. Ich erzĂ€hlte ihnen bescheiden ĂŒber den Teil „Zuerst ein bisschen ĂŒber mich“

Dann begann das Grauen. Auf die Frage „Was könnt ihr?“ antworteten die Studenten (nennen wir sie ab jetzt so), dass sie kaum mehr konnten als gar nichts (nun, das bedeutete, dass einige von ihnen wussten, wie MS VS aussieht und ein Projekt „Hallo Welt“ erstellen konnten)
 Programmierer. Letztes Jahr


Daraufhin erklĂ€rten sie ausfĂŒhrlich, „in Farben“, dass sie nichts gelernt hatten und dass sie ĂŒberhaupt in der Programmierung enttĂ€uscht waren


Fast alle Tage bis zur nÀchsten Stunde verliefen so:
Die Grundlage jeder Programmierung
 besteht aus Puzzles.


 aber einen Tag spĂ€ter kam die Idee auf, die Anstrengungen zu bĂŒndeln, um die Situation im Denken und Bewusstsein dieser Jugendlichen zu korrigieren. Und dann wurde «Ostap» unruhig.

EinfĂŒhrung in die Programmierung
Zum nÀchsten Unterricht brachte ich
 ein Puzzle.
Ja, genau. Ein Puzzle. „Wie man einen Drachen zĂ€hmt“. Die Regeln waren einfach. Die Gruppe wurde in 3 Teams aufgeteilt. Jedes Team fĂŒgte seinen Teil zusammen. Einige - den Wald, andere - das Land, die dritten - den Drachen in der Mitte des Bildes. WĂ€hrend sie das Puzzle zusammensetzten, erzĂ€hlte ich, dass das Zusammenstellen eines Puzzles ebenfalls Programmierung ist, dass Programmierer oft den Code anderer nutzen, dass es in jedem Projekt mehrere Teams, Funktionen, Module gibt

Langsam begannen auch die trÀgsten Studenten, sich am Prozess zu beteiligen.
Als ich damit fertig war, die Idee der Programmierung im Kontext von GeschÀftsprozessen und
 Puzzles zu vermitteln, war es an der Zeit, die Lernregeln festzulegen.
FĂŒr jede Unterrichtsstunde musste jeder Student 10 Begriffe aus der IT in sein Heft schreiben. Beliebige. Jeder hatte seine eigenen. Es ging darum, dass ich das Heft eines Studenten nahm und unter allen Begriffen die praktischsten fand. und fragte einen anderen Studenten danach. Wenn der andere Student sagt: „Ich habe diesen Begriff nicht aufgeschrieben“, war das nicht bestrafbar (aus gesundem Menschenverstand), aber der Student musste die „fehlenden“ Begriffe aufschreiben (wie alle, die sie nicht hatten) und deren Bedeutungen bis zur nĂ€chsten Sitzung finden.

So haben wir es gemacht. Jede Sitzung begann mit einem lebhaften Zufallsverfahren bei zwei oder drei Studenten. Die Teilnehmer waren begeistert von diesem Prozess.

Themen der Sitzungen
Um mit dem Lernen zu beginnen, ist es sehr wichtig, den Lernenden gutes Lesematerial zur VerfĂŒgung zu stellen. Meiner Meinung nach war das ideale Lehrbuch ein Buch:
Die Grundlage jeder Programmierung
 besteht aus Puzzles.

Damals musste ich es heimlich in engem Kontakt mit Microsoft Visual Studio lesen. So konnte ich Programmierung praktisch von Grund auf verstehen. Der ideale Weg.

Du gehst bescheiden zu den Studenten und sagst: „Um Programmierer zu werden, mĂŒsst ihr nur alles lesen und ausprobieren, was in diesem Buch steht“, und wirfst das Buch auf den Tisch. Wichtig ist, die BĂŒcher in deinem Rucksack nicht durcheinanderzubringen


Vor jedem Thema musste ich mich natĂŒrlich grĂŒndlich vorbereiten. Ich las denselben Lafore und noch einige interessante Quellen aus dem Internet.
Es war notwendig, fast von Grund auf zu erklĂ€ren. Dabei sollte man deduktiv herausfinden, wo bei den Studenten die grundlegenden WissenslĂŒcken lagen.
Arrays -> Arbeit mit dem Speicher (Konstruktoren) -> Verweise -> Wie der Speicher funktioniert -> Speichermedien -> Was ist ein physisches Speichermedium -> BinÀre DatenreprÀsentation

Die Grundlage jeder Programmierung
 besteht aus Puzzles.

Ein Ă€ußerst harter Crash-Test des Wissens ĂŒber fundamentale Programmierfakten. Ich bin nicht mehr Programmierer, ich bin Historiker!

Und so finden mehrere Paare historischer Schlachten hintereinander statt. Einmal schaut ein SekretĂ€r des Fachbereichs in unser Zimmer, sieht die Gruppe, weitet die Augen, mustert uns und schließt die TĂŒr. Wie mir spĂ€ter berichtet wurde, war sie schockiert, dass DIESE Gruppe so still und so aufmerksam mir zuhörte
 Tja, ganz einfach.

Laborarbeiten
Die ersten praktischen Kenntnisse – die ersten „Labs“. In einem Semester hat die Gruppe insgesamt 10 Laborarbeiten abgegeben. In den ersten haben sie einfachste Konsolenanwendungen erstellt. a+b, und in den letzten haben sie geschrieben, auch wenn es Konsolenanwendungen waren, aber dennoch ziemlich interessante Apps, wie zum Beispiel die Berechnung des Wertes eines Integrals einer beliebig definierten Funktion mit einer der drei Methoden – Ă€hnliche Aufgaben gab es bei der AbschlussprĂŒfung – im Seminararbeit.

Nur der Ansatz der Abnahme nicht war gewohnt. WĂ€hrend meines gesamten Studiums an der Hochschule stellte ich fest, dass es nicht dasselbe ist, intelligent zu sein und in der Lage zu sein, Bericht Arbeiten abzugeben – das hat mich grundsĂ€tzlich gestört.

„Leute, ich habe darĂŒber nachgedacht. Lasst uns ‚konzeptionelle‘ Beziehungen festlegen. Wenn einer von euch glaubt, dass Programmieren fĂŒr ihn nicht nötig ist – die TĂŒr ist da. Ich unterrichte euch kostenlos. Ich möchte hier nur neugierige, engagierte und interessierte Enthusiasten sehen. Alle anderen bitte ich, die gemeinsame Zeit nicht zu verschwenden“, sagte ich am ersten Tag der Abgabe der Laborarbeiten. Nach dieser Aussage hörten sofort 5 Personen auf, den Unterricht zu besuchen. Das war logisch und zu erwarten. Mit den anderen war es möglich, etwas VerstĂ€ndliches zu erreichen.

„
 ich finde es nicht interessant zu sehen, wie jemand anderes deine Arbeit gemacht hat, nur um sie abzugeben.“ Ihr mĂŒsst keine Programmierer sein, aber ihr sollt Menschen in meinem Unterricht sein. man wird mĂŒssen.

So sah das aus:

Fall ausgezeichnet

Ein Student setzt sich zu mir, um die Arbeit abzugeben.
— Hast du das selbst gemacht?
— Ja.
— Was ist das hier?
— *antwortet richtig*.
*Ich frage noch ein paar Punkte. Er antwortet korrekt*
— angenommen. Ausgezeichnet.

Fall SchwÀtzer

— Hast du das selbst gemacht?
— Ja.
— Was ist das hier?
— *antwortet NICHT richtig / antwortet nicht*.
*Ich frage noch ein paar Punkte. Das gleiche Ergebnis*
— NICHT angenommen. MANGELHAFT. Ich warte auf die NachprĂŒfung.

Fall guter SchĂŒler

— Hast du das selbst gemacht?
— Ja.
— Was ist das hier?
— *antwortet richtig, aber nicht sicher, schwankt*.
*Ich frage noch ein paar Punkte. Das gleiche Ergebnis*
— angenommen. Gut.

Fall DurchschnittsschĂŒler

— Hast du das selbst gemacht?
— Nein.
„Warum?“
— Es ist schwer. Mir hat geholfen
 *nennt ehrlich den ausgezeichneten SchĂŒler aus der Gruppe*
— Hast du es verstanden?
— Ja, ich habe fast alles verstanden.

— Was ist das hier?
— *antwortet richtig*.
*Ich frage noch ein paar Punkte. Er antwortet mehr oder weniger richtig, manchmal völlig daneben, selbst auf 50 zu 50 richtige und falsche Antworten*
— angenommen. Gut.

Es macht keinen Sinn, alle anderen FĂ€lle zu beschreiben. Ja, der „gute SchĂŒler“ kann unzufrieden sein, dass der „DurchschnittsschĂŒler“ die gleiche Note bekommt, indem er sich auf die Ehrlichkeit verlĂ€sst. Dann hĂ€ngt alles von der Stimmung ab. Entweder bitte ich den „guten SchĂŒler“, auf den Boden zu schauen, denn „jetzt werde ich eine Prise Weisheit fallen lassen“, und dann erklĂ€re ich den Ansatz, dass das, was im Leben wirklich wertvoll ist, und erlĂ€utere, dass es fĂŒr den „DurchschnittsschĂŒler“ viel schwieriger war, zu bestehen als fĂŒr ihn, dem „guten SchĂŒler“, usw


 oder, wie es mein Lehrer damals tat, zeichne ich einen kleinen Zahn in das KĂ€stchen der Zeitschrift gegenĂŒber diesem Unzufriedenen und werde beim nĂ€chsten Mal speziell fĂŒr ihn die Laborarbeit ergĂ€nzen. Einfach so. Damit er die anderen nicht "schadet".

Die Grundlage jeder Programmierung
 besteht aus Puzzles.

Noten
Der Bildungsprozess, wie die ganze Welt, ertrinkt regelrecht in Preisen und Bewertungen.
Studierende sind auch Menschen, dennoch sollten, meiner Meinung nach, die "Rahmenbedingungen" etwas "ins Wanken gebracht" werden.
Im Laufe des Semesters wurde allen eine Bonusaufgabe gegeben. Sich registrieren auf github.com, ein leeres Projekt in C++ hochladen, zwei Updates erstellen, diese committen und pushen. FĂŒr diese AktivitĂ€ten wurden 15 Punkte vergeben. Ja, nicht 4, nicht 5, sondern 15. Drei haben es verstanden. Das war dem Studententyp noch irgendwie nachvollziehbar, jedoch gab es danach einen anderen Fall.
Einmal wurde unsere Unterrichtsstunde so verschoben, dass sie die letzte wurde und zudem noch in eine Doppelstunde ohne Pause. Trotzdem kamen 15 Personen. Es fiel mir schwer, ein neues Thema in Anbetracht dieses Heldentums zu erklĂ€ren, da wir bereits thematisch gut vorangekommen waren + das nĂ€chste Thema war fĂŒr die mĂŒden Köpfe (meine und der Studierenden) nicht gerade einfach. Also entschied ich mich, ĂŒber Philosophie zu sprechen.

— Ich erklĂ€re die Attraktion unvorstellbarer GroßzĂŒgigkeit. Alle sagen mir, welche Note ich ihm fĂŒr die heutige Stunde geben soll.
Alle wollten eine „fĂŒnf“.
— ZĂ€hlt es schon, — sagte ich. Alle waren erleichtert.
Stille.
— Aber warum wollte niemand 7-eine oder 10-eine?
Alle starrten mit großen Augen und begannen dumm zu lĂ€cheln.
— Und geben Sie die Note? Ins Heft?! — ertönte eine Stimme von der hinteren Bank.
— Kein Problem! — sagte ich, — ich erklĂ€re einen Blitztest zu den Begriffen, wer auf 10 meiner Fragen antwortet, bekommt eine 20 ins Heft, ohne Trick, wer nicht antwortet — bekommt -10 (minus zehn).

„Die Klasse lebte auf, es begann eine Diskussion“, jeder hatte ehrlich verdiente Noten. Zwei meldeten sich freiwillig. Mit kleinen Ungenauigkeiten beantworteten sie abwechselnd 10 Fragen zu Stack, Queue, Konstruktor, Destruktor, Garbage Collector, Kapselung, Polymorphismus, Hash-Funktionen

Jeder bekam eine 20ins Heft,

aber die Bedeutung des Hefts und der Noten verlor fĂŒr jeden an Wert. Jetzt bedaure ich, dass ich nicht gefragt habe, ob sie ihre Note mit jemandem „teilen“ wollen. Ich glaube, sie hĂ€tten es gemacht
 Von nun an gab jeder das „Labor“ mit Wissen und Ehrlichkeit ab.


Fall ehrlich gesagt, ich verstehe nichts, das habe ich selbst ohne Kommentar neben jeder Zeile geschrieben - das ist nicht meins, ich werde Traktorfahrer.

— Hast du das selbst gemacht?
— Nein.
„Warum?“
— Es ist schwer. Mir hat geholfen
 *nennt ehrlich den ausgezeichneten SchĂŒler aus der Gruppe*
— Hast du es verstanden?
— Sergei Nikolajewitsch, ganz ehrlich - ich verstehe nichts, ich habe die Kommentare selbst neben jede Zeile geschrieben - das ist nicht meins, ich werde Traktorfahrer.
— Was ist das hier?
— *liest den Kommentar neben der Zeile*.
— 

— 

— Was unterscheidet den Belarus MTZ von Don 500 und von K700?
— ??!.. Der erste ist ein Radtraktor aus Minsk, der hĂ€ufig in leichten und mittleren landwirtschaftlichen Betrieben verwendet wird. Er hat vorne kleine und hinten große RĂ€der. Don 500 ist hauptsĂ€chlich eine Erntemaschine, wĂ€hrend der K-700 "Kirovec" ein sowjetischer Radtraktor fĂŒr den allgemeinen Einsatz mit erhöhter GelĂ€ndegĂ€ngigkeit ist, Zugkraftklasse 5.
— Verstanden. Gut (!!!).
— Danke, Sergei Nikolajewitsch!!!

In meiner Heimat ist es, sich ĂŒber Traktoren zu unterhalten, fast so wie hier ĂŒber SOLID.

Genie
Ich hatte ein Genie in meiner Gruppe. Ein Student, der von der ersten Stunde an stark verspĂ€tet war und nicht zusammen mit allen das Puzzle zusammensammeln wollte. Dann bat ich ihn, das zu tun, was ich fĂŒr alle fĂŒr die nĂ€chste Stunde geplant hatte - auf einem Blatt ĂŒber sich selbst zu schreiben, was ihn interessiert und was seine Hobbys sind. Am Ende hatte das "Genie" 2-3 Zeilen: sowas wie „ich erforsche die Nichtigkeit des Daseins“...

Oh Gott, in meiner Gruppe gibt es gleichzeitig zwei Laozi und Kojima in einer Person...
Die Grundlage jeder Programmierung
 besteht aus Puzzles.

Zu meiner Überraschung hat er in den ersten beiden Sitzungen tatsĂ€chlich glĂ€nzend auf Fragen zu den Begriffen geantwortet, doch der Effekt hielt nicht lange an. Der „Genie“ hörte auf, am Unterricht teilzunehmen, und kam das nĂ€chste Mal nur zur Abgabe der ersten Laborarbeit, die er erfolgreich nicht bestanden hat aus objektiven GrĂŒnden. Dann kamen ihm durch die Fehlzeiten zwangslĂ€ufig Schulden zustande, die er, wie er dachte, ich ihm einfach anrechnen mĂŒsste, sozusagen „brĂŒderlich“.
Das Fernbleiben vom Unterricht und ein ĂŒbertriebenes SelbstwertgefĂŒhl widersprachen den festgelegten GrundsĂ€tzen meiner Kurse. Der „Genie“ hatte nur zwei Möglichkeiten — sich rehabilitieren (der erwartete Weg) oder den Unterricht ignorieren und auf die Note „3“ hoffen, die vom Dekanat vergeben wurde, um den Faulpelz loszuwerden.
Nun, das ist ja der „Genie“... da musste man „genial“ handeln. Dieser junge Mann fand nichts Besseres, als in einem allgemeinen Dialog in VK (wo ich und alle Studenten dieser Gruppe waren) eine wĂŒtende Tirade mit Beschimpfungen und Beleidigungen gegen mich zu schreiben.

Naja... EnttÀuschung.
Am meisten hat mich ĂŒberrascht, dass er, bevor der Prozess der disziplinarischen Maßnahmen durch die Hochschulleitung abgeschlossen war, beschloss, sich bei mir zu entschuldigen. WofĂŒr? — Das ist mir aufrichtig unklar. Zu diesem Zeitpunkt war ich schon lange unabhĂ€ngig von Kritik, besonders von so offensichtlich dummer. Meine Persönlichkeit war nicht betroffen, aber es sind nun mal Prozesse — als Dozent konnte ich das nicht ignorieren. Wie sich herausstellte, hatten sich wĂ€hrend seiner Studienzeit bereits so viele Beschwerden angesammelt, dass dieser Vorfall der letzte war. Er wurde exmatrikuliert. Vom letzten Jahrgang der Berufsschule.
Vielleicht beobachtet er mich schon lange durch das Zielsichtglas eines ScharfschĂŒtzengewehrs, aber ehrlich gesagt, ist es mir egal.
Ach, GenialitÀt, du bist ja wirklich herzlos


Epilog
FĂŒr mich persönlich war die Erfahrung des Unterrichtens eine der lehrreichsten. Sie half mir, die grundlegenden Kenntnisse in der Programmierung nach dem Studium zu festigen. Ich fĂŒhlte mich in meinem gewĂ€hlten Berufsfeld (der verfĂŒgbaren Fachrichtungen) sicher. Besonders wichtig ist, dass die "unglaublich widerspenstige Gruppe" mir Respekt und Freundlichkeit entgegenbrachte – das ist viel wert. Ich konnte einen Zugang zu ihren inneren Innovatoren finden und versuchte, RealitĂ€t zu vermitteln, anstatt in diesen Schablonen-Denken zu verharren. Schade, dass wir nicht zu den "Puzzlen" im Coding gekommen sind – bei denen jeder einen Teil des Codes erstellen hĂ€tte mĂŒssen, und, indem wir alle Teile zusammenfĂŒhrten, hĂ€tten wir ein großes, funktionierendes Programm erhalten

Ich hoffe, dass jeder von ihnen das irgendwann spĂŒren wird
 aber hier sind zunĂ€chst Screenshots mit den RĂŒckmeldungen einiger Studenten nach 2 Jahren.

Die Grundlage jeder Programmierung
 besteht aus Puzzles.

Es ist noch zu frĂŒh, um RĂŒckschlĂŒsse auf den Erfolg der Programmierkarriere von jemandem zu ziehen, denn derzeit studiert der Großteil dieser Gruppe an einer Hochschule. Die Zeit wird es zeigen.

Ich hoffe, der Artikel war hilfreich. Vielen Dank fĂŒr Ihre Aufmerksamkeit!
Kreative Erfolge und gute Laune, Kollegen!

Quelle: habr.com

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster