La base de toute programmation sur... les puzzles

Salutations, habitants de Khabrovsk !

Dans cet article, je souhaite parler de mon expérience en tant que professeur de programmation C++ dans un collège d'une université technique. C’était une expérience unique qui m’a beaucoup appris. Lorsqu’il s’agit de faits intéressants de votre passé personnel, ce passage de la vie est l’un des premiers qui vous vient à l’esprit.
Allez.

Tout d’abord, un peu de moi.
En 2016, j'ai obtenu avec mention un diplôme en sécurité de l'information des systèmes automatisés de l'institut. Au cours de mes études, j'ai pu à plusieurs reprises réaliser mon potentiel en rédigeant des articles scientifiques, en participant à des concours et à des subventions. En 2015, j'ai eu l'opportunité de devenir lauréat du concours panrusse pour jeunes scientifiques « UMNIK ». En 2016, avant de terminer ses études, il était déjà employé dans une grande organisation de la ville en tant que « spécialiste de la sécurité de l'information, de la cryptographie et du cryptage ».
Bref, quelque chose comme ça. Vous pouvez imaginer que j'avais encore une idée sur la programmation.

Et nous voilà en 2017. Études supérieures. On m'a demandé d'enseigner le C++ dans une université pendant un semestre, pour lequel on m'a promis de bonnes primes pour alléger le fardeau d'un étudiant diplômé et rien de plus.

Pour être honnête, j'étais sincèrement intéressé à m'essayer à ce credo.

Première paire
Septembre. Première semaine d'école. Les étudiants sont venus vers moi. "Le groupe le plus méchant" - c'est ainsi qu'on les appelait.
23 personnes. "Programmeurs".

Comme prévu, je me suis d’abord présenté. Je leur ai discrètement raconté le contenu de la partie « D'abord, un peu sur moi »...
C’est alors que les choses terribles ont commencé. À la question « Que pouvez-vous faire ? » les étudiants (nous les appellerons ainsi désormais) ont répondu qu'ils pouvaient faire un peu plus que rien du tout (enfin, cela signifiait que certains d'entre eux savaient à quoi ressemblait MS VS et pouvaient créer un projet « Hello world »). .. Programmeurs. Dernier cours…

De plus, ils ont expliqué en détail, « en couleurs », qu'on ne leur avait rien appris et qu'en général ils étaient déçus par la programmation...

Presque tous les jours jusqu'à mon prochain cours se sont déroulés comme ceci :
La base de toute programmation sur... les puzzles

... mais la veille est née l'idée de s'efforcer de corriger la situation actuelle dans l'esprit et la conscience de ces jeunes. Et puis "Ostap s'est laissé emporter."

Introduction à la programmation
Pour la prochaine leçon, j'ai apporté... un puzzle.
Oui oui. Puzzle. "Comment entraîner son dragon." Les règles étaient simples. Le groupe était divisé en 3 équipes. Chaque équipe a assemblé sa pièce. Certains représentent la forêt, d’autres la terre, d’autres encore le dragon au centre de l’image. Pendant que tout le couple assemblait le puzzle, je leur ai dit que assembler un puzzle, c'est aussi programmerque les programmeurs utilisent souvent le code de quelqu'un d'autre, que chaque projet a plusieurs équipes, fonctionnalités, modules différents...
Peu à peu, les étudiants les plus léthargiques se sont joints au processus.
Quand j'ai fini d'appliquer l'idée de la programmation aux concepts métiers, aux processus et... aux énigmes, il était temps d'établir les règles de la formation.
Pour chaque cours, chaque élève devait noter 10 termes d'informatique dans un cahier. N'importe lequel. Chacun a le sien. Le fait est que j’ai pris le cahier d’un élève et j’ai trouvé parmi tous les termes appliqué au maximum et j'ai interrogé un autre étudiant à leur sujet. Lorsqu'un autre élève dit : « Je n'ai pas écrit ce terme », il n'y a pas eu de pénalité (en raison du bon sens), mais cet élève a dû écrire les termes « manquants » (comme tous les autres qui ne les avaient pas). et trouvez leur signification par le suivant.

C'est ce que nous avons fait. Chaque cours commençait dans un joyeux hasard par rapport à deux ou trois élèves. Les gars étaient enthousiasmés par ce processus.

Sujets de cours
Au début de la formation, il est très important de fournir aux étudiants une bonne littérature. Selon moi, le livre idéal était :
La base de toute programmation sur... les puzzles

À un moment donné, j'ai dû le lire furtivement tout en serrant Microsoft Visual Studio dans mes bras. Ensuite, j’ai pu comprendre la programmation presque à partir de zéro. Option parfaite.

Vous allez modestement vers les étudiants et leur dites : « Pour devenir programmeurs, il vous suffit de tout lire et d'essayer tout ce qui est dans ce livre », et vous jetez le livre sur la table. L'essentiel est de ne pas confondre les livres dans votre sac à dos...

Avant chaque sujet, je devais certainement me préparer minutieusement. J'ai lu le même Laforet et plusieurs autres sources intéressantes sur Internet.
L’explication est partie presque de zéro. De plus, il était nécessaire de comprendre où les connaissances de base des étudiants étaient coupées de manière déductive.
Tableaux -> Travailler avec la mémoire (constructeurs) -> Liens -> Comment fonctionne la mémoire -> Lecteurs -> Qu'est-ce qu'un lecteur physique -> Représentation binaire des données...
La base de toute programmation sur... les puzzles

Un crash test très solide de connaissance des faits fondamentaux sur la programmation. Je ne suis plus programmeur, je suis historien !

Cela signifie donc que des batailles historiques se déroulent pour plusieurs couples d'affilée. Un jour, un secrétaire du département regarde dans notre bureau et, voyant le groupe, écarquille les yeux, scrute et ferme la porte. Comme on me l'a dit plus tard, elle a été choquée que CE groupe soit assis si tranquillement et m'écoute si attentivement... Eh, doucement.

Travaux de laboratoire
Les premières informations appliquées sont les premiers « laboratoires ». Au total, le groupe a réussi 10 travaux de laboratoire au cours du semestre. Au début, ils fabriquaient la console la plus simple a + b, et dans ce dernier, ils ont écrit, bien que basés sur une console, des applications assez intéressantes, telles que le calcul de la valeur de l'intégrale d'une fonction arbitrairement donnée en utilisant l'une des trois méthodes - à peu près les mêmes tâches étaient sur la certification finale - les travaux de cours.

C'est juste l'approche d'acceptation aucun était familier. Tout au long de mes études à l'institut, j'ai été confronté au fait qu'être intelligent et être capable de passer des rapports n'est pas la même chose. Cela ne me convenait pas du tout.

- Les gars, je pensais. Construisons une relation « conceptuelle ». Si l’un d’entre vous pense qu’il n’a pas besoin de programmation, la porte est là-bas. Je vous enseigne gratuitement. Je souhaite ne voir ici que des passionnés curieux, bienveillants et bienveillants. «Je demande à tout le monde de ne pas faire perdre de temps à tout le monde», ai-je dit le premier jour de travail en laboratoire. Après cela, 5 personnes ont immédiatement arrêté de suivre les cours. C'était logique et attendu. On pouvait essayer de faire quelque chose d'intelligible avec le reste.

- ... Cela ne m'intéresse pas de regarder quelqu'un faire votre travail juste pour le réussir. Vous n'êtes peut-être pas des programmeurs, mais vous serez des gens dans mes classes devra.

Ça ressemblait à ça :

case отличник

Un étudiant s'assoit à mes côtés pour me rendre son travail.
- Avez-vous fait vous-même?
- Oui.
- Qu'est-ce que c'est?
- *répond correctement*.
*Je pose des questions sur quelques points supplémentaires. Répond correctement*
- accepté. Super.

case болтун

- Avez-vous fait vous-même?
- Oui.
- Qu'est-ce que c'est?
- *répond mal / ne répond pas*.
*Je pose des questions sur quelques points supplémentaires. Même résultat*
- Pas accepté. ÉCHOUÉ J'attends la reprise.

case хорошист

- Avez-vous fait vous-même?
- Oui.
- Qu'est-ce que c'est?
- *répond correctement, mais pas avec confiance, nage*.
*Je pose des questions sur quelques points supplémentaires. Même résultat*
- accepté. Bien.

case ровныйТроечник

- Avez-vous fait vous-même?
- non
- Pourquoi pas?
- Difficile. Il m'a aidé... *nomme honnêtement un excellent élève du groupe*
- Avez-vous compris?
- Oui, j'ai presque tout compris.

- Qu'est-ce que c'est?
- *répond correctement*.
*Je pose des questions sur quelques points supplémentaires. Réponses plus ou moins correctes, parfois complètement fausses, même si elles sont 50/50 correctes et incorrectes*
- accepté. Bien.

Cela n’a aucun sens de décrire tous les autres cas. Oui, un « bon élève » peut être mécontent qu’un élève « C » reçoive la même note, sur la base de son honnêteté. Après, tout dépend de l'humeur. Ou je demande au « bon élève » de regarder le sol, car « maintenant je vais laisser tomber une pincée de sagesse », puis je vais vous expliquer l'essence de l'approche, décrire ce qui a plus de valeur dans la vie et expliquer qu'il était beaucoup plus difficile pour l'élève « C » de réussir que pour lui, le « bon élève ». », etc…
... ou, comme mon professeur l'a fait autrefois, je dessinerai une petite dent dans la boîte du journal en face de cette personne insatisfaite et la prochaine fois, je terminerai personnellement le travail de laboratoire pour elle. Juste. Pour ne pas « éteindre » vos camarades.

La base de toute programmation sur... les puzzles

Оценки
Le processus éducatif, comme le monde entier, est littéralement noyé dans les étiquettes de prix et les notes.
Les étudiants sont aussi des personnes, cependant, à mon avis, le « cadre » aurait dû être « ébranlé » ici aussi.
Au cours du semestre, chacun s'est vu confier une tâche bonus. S'inscrire à Github.com, téléchargez-y un projet C++ vide, effectuez 2 mises à jour, validez-les et poussez-les. Pour ces actions, 15 ont été assignées. Oui, oui, pas 4, pas 5, mais 15. Trois l'ont compris. Cela était en quelque sorte compréhensible pour le psychotype de l’étudiant, mais il y a eu un autre cas.
Une fois, notre couple a été déplacé pour qu'elle soit la dernière, ainsi que par quelques fenêtres. Cependant, 15 personnes y sont quand même venues. Je ne voulais pas expliquer un nouveau sujet en l'honneur d'un tel héroïsme, car nous avions déjà assez bien progressé uniquement sur des sujets + le sujet suivant n'était pas très simple pour les cerveaux fatigués (le mien et celui des étudiants). Ensuite, j'ai décidé de parler de philosophie.

— J'annonce une attraction d'une générosité sans précédent. Tout le monde me dit quelle note lui donner pour la paire du jour.
Tout le monde voulait un « A ».
"Considérez-le déjà là", dis-je. Tout le monde était heureux.
Silence.
- pourquoi personne ne voulait-il ? 7-ku ou 10-ku ?
Les yeux de tout le monde s'écarquillèrent et ils commencèrent à sourire bêtement.
- Tu parieras ? Au magazine ?! - une voix est venue de l'arrière du bureau.
- Oui Facile ! - J'ai dit, - J'annonce un blitz selon les conditions, celui qui répond à 10 de mes questions - je parie le 20 au magazine, sans prise, celui qui ne répond pas est celui-là - 10 (moins dix).

« L'équipe s'est réveillée, un débat a commencé », tout le monde avait honnêtement gagné des notes. Deux se sont portés volontaires. Avec des imprécisions mineures, ils se sont relayés avec 10 questions sur la pile, la file d'attente, le constructeur, le destructeur, le garbage collector, l'encapsulation, le polymorphisme, les fonctions de hachage...
Chacun a été dessiné dans un magazine 20... mais l'importance du magazine et des notes est tombée aux yeux de tous. Maintenant, je regrette de ne pas leur avoir demandé s'ils aimeraient « partager » leur évaluation avec quelqu'un. Il me semble qu'ils partageraient... Désormais, chacun remit le « labo » avec connaissance et honnêteté.

A partir de ce moment, un autre type de prestation de laboratoire apparaît :


case честноНеЕгоНоОнПытался

- Avez-vous fait vous-même?
- non
- Pourquoi pas?
- Difficile. Il m'a aidé... *nomme honnêtement un excellent élève du groupe*
- Avez-vous compris?
— Sergueï Nikolaïevitch, honnêtement, je ne comprends rien, alors j'ai écrit des commentaires à côté de chaque ligne — eh bien, ce n'est pas mon truc, je serai conducteur de tracteur
- Qu'est-ce que c'est?
— *lit le commentaire en face de la ligne*.
- ...
- ...
— Quelle est la différence entre Belarus MTZ et Don 500 et K700 ?
- ??!.. Le premier est un tracteur à roues fabriqué à Minsk, souvent utilisé dans les productions agricoles légères et moyennes. Il dispose également de petites roues à l'avant et de grandes roues à l'arrière. Le Don 500 est essentiellement une moissonneuse et le K-700 Kirovets est un tracteur à roues tout-terrain soviétique à usage général, classe de traction 5.
- accepté. Bien (!!!).
- Merci, Sergueï Nikolaïevitch !!!

Dans mon pays, parler de TractorA, c'est presque comme parler de SOLID ici.

Génie
Il y avait un génie dans mon groupe. L'élève était très en retard dès le premier cours et n'a pas terminé le puzzle avec tous les autres. Ensuite, je lui ai demandé de faire ce que j'avais prévu pour tout le monde pour la prochaine leçon : s'écrire sur un morceau de papier ce qui l'intéresse, ce qui l'intéresse. D'après les résultats, « Genius » comportait 2-3 lignes : quelque chose comme « Je me rends compte de la futilité d'être »...

...Oh, mon Dieu, dans mon groupe, j'ai le deuxième Lao Tseu et Kojima en une seule personne...
La base de toute programmation sur... les puzzles

À ma grande surprise, au cours des deux premiers cours, il a vraiment répondu avec brio aux questions sur les termes, mais l'effet n'a pas duré longtemps. Le «génie» a cessé d'assister aux cours et la fois suivante, il est venu seulement pour réussir le premier travail de laboratoire, qu'il a terminé avec succès. N'a pas passé pour des raisons objectives. Puis, à cause de l'absentéisme, il a naturellement accumulé des dettes qui, selon lui, J'étais simplement obligé de le compter, pour ainsi dire, « de manière fraternelle »..
Le fait de ne pas fréquenter les couples + l'augmentation de la fréquence cardiaque était contraire aux principes établis pour assister à mes cours. "Génie" n'avait que 2 moyens de sortir de la situation - se réhabiliter (le chemin attendu) ou abandonner les cours et espérer un "C" donné par le doyen afin de se débarrasser du fainéant.
Eh bien, c'est "Génie"... vous devez agir "avec brio" tout de suite. Ce jeune homme n'a rien trouvé de mieux que d'écrire dans le dialogue général sur VK (où moi et tous les étudiants de ce groupe étions) une tirade de colère avec des malédictions et des insultes qui m'ont été adressées.

Hmm... Déception.
Ce qui a été le plus frappant, c'est qu'avant la fin de l'opération punitive de la part de la direction du collège, il a décidé de me présenter ses excuses. Pour quoi? - Je ne comprends sincèrement pas. À cette époque, j’étais depuis longtemps indépendant de la critique, en particulier des critiques franchement stupides. Ma personnalité n'a pas été affectée, mais les processus sont des processus, et en tant qu'enseignant, je ne pouvais m'empêcher de le signaler. Il s'est avéré qu'au cours de ses études, tant de plaintes s'étaient déjà accumulées contre lui que cette affaire s'est avérée être la dernière. Il a été expulsé. Dès la dernière année d'école professionnelle.
Peut-être qu'il m'observe depuis longtemps à travers le fusil de sniper, mais, pour être honnête, je m'en fiche.
Eh, génie, tu es sans cœur...

Le final
Pour moi personnellement, l’expérience d’enseignement a été l’une des plus enrichissantes. Cela m'a permis de consolider mes connaissances fondamentales en programmation après mes études à l'institut. Je me sentais en confiance dans la spécialité que j'avais choisie (l'éventail des spécialités disponibles). Le fait que le «groupe le plus méchant» m'a imprégné de respect et de convivialité est particulièrement important - cela vaut beaucoup. J'ai réussi à trouver un chemin vers mes innovateurs intérieurs, j'ai essayé d'inculquer la réalité et non ces priorités stéréotypées. C'est dommage que nous n'ayons pas abordé le "puzzle" du codage - alors que tout le monde devrait faire une partie du code, et en connectant toutes les parties en une seule, nous obtiendrions un grand programme de travail...
J'espère qu'un jour chacun d'eux ressentira cela... mais pour l'instant, vous trouverez ci-dessous des captures d'écran avec les avis de plusieurs étudiants après 2 ans.

La base de toute programmation sur... les puzzles

Il est trop tôt pour tirer des conclusions sur le succès de la carrière d’un programmeur pour l’un d’entre eux, car la plupart d’entre eux étudient désormais dans une université. Le temps nous montrera.

J'espère que l'article a été utile. Merci pour votre attention!
Succès créatif et humeur positive, collègues !

Source: habr.com

Ajouter un commentaire