La base de tout programme informatique repose sur
 des puzzles.

Bonjour, chers Habraviens !

Dans cet article, je souhaite partager mon expérience en tant qu'enseignant de programmation en C++ dans un collÚge d'une université technique. Cela a été une expérience unique dans ma vie, qui m'a beaucoup appris. Quand il s'agit de faits intéressants de mon passé personnel, ce passage de ma vie me vient à l'esprit en premier.
C'est parti.

D'abord un peu sur moi.
En 2016, j'ai terminĂ© mes Ă©tudes avec un diplĂŽme rouge en « SĂ©curitĂ© des systĂšmes informatisĂ©s ». Pendant mes Ă©tudes, j'ai eu l'occasion de rĂ©aliser mon potentiel en Ă©criture d'articles scientifiques, en participant Ă  des concours et Ă  des bourses. En 2015, j'ai eu l'honneur de remporter un concours national pour jeunes chercheurs, « UMNIK ». En 2016, avant mĂȘme d'achever ma formation, j'avais dĂ©jĂ  Ă©tĂ© embauchĂ© dans une grande organisation de la ville en tant que « SpĂ©cialiste en sĂ©curitĂ© de l'information, cryptographie et chiffrement ».
En résumé, c'est à peu prÚs ça. On peut supposer que j'avais une certaine idée de la programmation.

Et voilà, l'année 2017. Doctorat. On m'a demandé d'enseigner C++ dans un collÚge pendant un semestre, pour quoi on me promettait de bons bonus pour alléger le fardeau de mon doctorat et rien de plus.

Pour ĂȘtre honnĂȘte, j'Ă©tais vraiment curieux d'essayer cela.

Premier cours
Septembre. La premiÚre semaine de cours. Des étudiants sont venus me voir. « Le groupe le plus indiscipliné », comme ils les appelaient.
23 personnes. « Programmes ».

Comme il se doit, je me suis d'abord prĂ©sentĂ©. Je leur ai sobrement expliquĂ© le contenu de la partie « D'abord un peu sur moi » 
Ensuite, ça a commencĂ©. À la question « Qu'est-ce que vous savez faire ? », les Ă©tudiants (appelons-les ainsi) ont rĂ©pondu qu'ils savaient un peu plus que rien du tout (ce qui signifiait que certains d'entre eux savaient Ă  quoi ressemblait MS VS et pouvaient crĂ©er un projet « Hello World »)
 Des programmeurs. DerniĂšre annĂ©e


Puis, ils ont dĂ©taillĂ©, « en couleur », qu'on ne leur avait appris absolument rien et qu'en fait, ils Ă©taient déçus par la programmation


La plupart des jours précédant le prochain cours se sont déroulés ainsi :
La base de tout programme informatique repose sur
 des puzzles.


 mais un jour avant celui-ci, j'ai eu l'idĂ©e de faire des efforts pour corriger la situation dans les esprits et la conscience de cette jeunesse. Et lĂ , « Ostap s'est emportĂ© ».

Introduction Ă  la programmation
Pour le prochain cours, j'ai apporté  un puzzle.
Oui, oui. Un puzzle. «Comment dresser un dragon». Les rĂšgles Ă©taient simples. Le groupe Ă©tait divisĂ© en 3 Ă©quipes. Chaque Ă©quipe assemblait sa partie. L'une s'occupait de la forĂȘt, l'autre de la terre, la troisiĂšme du dragon au centre de l'image. Pendant qu'ils assemblaient le puzzle, je leur expliquais que assembler un puzzle, c'est aussi de la programmation, que les programmeurs utilisent souvent du code d'autres personnes, que dans chaque projet, il y a plusieurs Ă©quipes, fonctionnalitĂ©s, modules

Progressivement, les étudiants les plus apathiques se sont également impliqués dans le processus.
Quand j'ai fini d'expliquer l'idée de la programmation dans les concepts d'affaires, de processus et
 de puzzles, il était temps d'établir les rÚgles d'enseignement.
À chaque cours, chaque Ă©tudiant devait noter 10 termes IT dans son carnet. N'importe lesquels. Chacun avait les siens. L'idĂ©e Ă©tait que je prenais le carnet d'un Ă©tudiant, je trouvais parmi tous les termes les plus applicables et je demandais Ă  un autre Ă©tudiant. Lorsque l'autre Ă©tudiant disait «Je n'ai pas notĂ© ce terme», ce n'Ă©tait pas sanctionnĂ© (pour des raisons de bon sens), mais cet Ă©tudiant devait noter les termes «manquants» (comme tous ceux qui ne les avaient pas) et trouver leurs significations pour le cours suivant.

C'est ainsi que nous avons procédé. Chaque cours commençait par un tirage au sort dynamique concernant deux ou trois étudiants. Les garçons étaient motivés par ce processus.

Sujets des cours
Lorsqu'il s'agit d'enseigner, il est trĂšs important de fournir aux apprenants de bons livres. À mon avis, le manuel idĂ©al Ă©tait le livre :
La base de tout programme informatique repose sur
 des puzzles.

À une Ă©poque, j'ai dĂ» le lire discrĂštement en l'embrassant avec Microsoft Visual Studio. Cela m'a permis de comprendre la programmation pratiquement depuis le dĂ©but. C'Ă©tait l'option idĂ©ale.

Tu enters modestement devant les Ă©tudiants et tu dis : «Pour devenir programmeurs, il vous suffit de lire et d'essayer tout ce qui est dans ce livre», et tu laisses le livre sur la table. L'essentiel est de ne pas confondre les livres dans ton sac


Avant chaque sujet, je devais bien sûr me préparer. Je lisais Lafore et plusieurs autres sources intéressantes sur Internet.
Il fallait expliquer presque depuis les bases. De plus, comprendre oĂč se trouvent les lacunes de connaissances des Ă©tudiants devait se faire de maniĂšre dĂ©ductive.
Tableaux -> Gestion de la mémoire (constructeurs) -> Références -> Comment la mémoire fonctionne -> Stockages -> Qu'est-ce qu'un stockage physique -> Représentation binaire des données

La base de tout programme informatique repose sur
 des puzzles.

Un test de connaissances fondamentales en programmation. Je ne suis plus programmeur, je suis historien !

Et donc, des batailles historiques se déroulent pendant plusieurs paires d'affilée. Un jour, une secrétaire du département entre dans la salle et, voyant le groupe, écarquille les yeux, scrute et ferme la porte. Comme on m'a dit plus tard, elle était choquée de voir que CE groupe restait si silencieux et écoutait attentivement ce que je disais
 Facile.

Travaux pratiques
Les premiĂšres informations appliquĂ©es - les premiers « labs ». Au total, en un semestre, le groupe a soumis 10 travaux pratiques. Dans les premiers, ils rĂ©alisaient de simples programmes console a+b, et dans les derniers, ils Ă©crivaient, mĂȘme si c'Ă©tait des applications console, mais assez intĂ©ressantes, comme le calcul de la valeur d'une intĂ©grale d'une fonction donnĂ©e arbitrairement par l'un des trois mĂ©thodes - Ă  peu prĂšs les mĂȘmes problĂšmes qui Ă©taient Ă  l'examen final - le travail de cours.

Cependant, l'approche d'Ă©valuation ne Ă©tait habituelle. Tout au long de mes Ă©tudes Ă  l'universitĂ©, j'ai rencontrĂ© le fait qu'ĂȘtre intelligent et savoir soumettre des travaux de rapport ne sont pas la mĂȘme chose. Cela ne me convenait pas du tout.

— Les gars, j'ai rĂ©flĂ©chi. Établissons des relations « conceptuelles ». Si l'un d'entre vous pense que la programmation lui est inutile — la porte est lĂ -bas. Je vous enseigne gratuitement. Je veux ici seulement des passionnĂ©s curieux et concernĂ©s. Tous les autres, je vous prie de ne pas perdre notre temps commun — dis-je le premier jour de remise des travaux pratiques. AprĂšs ça, 5 personnes ont immĂ©diatement cessĂ© de venir aux cours. C'Ă©tait logique et prĂ©visible. Avec les autres, il Ă©tait possible d'essayer de faire quelque chose de raisonnable.

— 
 je ne suis pas intĂ©ressĂ© Ă  voir quelqu'un faire le travail pour vous, tant que c'est rendu. Vous n'ĂȘtes peut-ĂȘtre pas des programmeurs, mais vous devez ĂȘtre des gens obligatoirement.

Cela se présentait comme suit :

case étudiant modÚle

Un étudiant vient pour soumettre son travail.
— Tu l'as fait toi-mĂȘme ?
— Oui.
— Qu'est-ce que c'est ?
— *rĂ©pond correctement*.
*Je pose encore quelques questions. Il répond correctement*
— acceptĂ©. Excellent.

case bavard

— Tu l'as fait toi-mĂȘme ?
— Oui.
— Qu'est-ce que c'est ?
— *rĂ©pond INCORRECTEMENT / ne rĂ©pond pas*.
*Je pose encore quelques questions. MĂȘme rĂ©sultat*
— NON acceptĂ©. Insuffisant. J'attends pour la reprise.

case bon élÚve

— Tu l'as fait toi-mĂȘme ?
— Oui.
— Qu'est-ce que c'est ?
— *rĂ©pond correctement, mais de maniĂšre incertaine, hĂ©sitante*.
*Je pose encore quelques questions. MĂȘme rĂ©sultat*
— acceptĂ©. Bien.

case élÚve moyen

— Tu l'as fait toi-mĂȘme ?
— Non.
— Pourquoi ?
— C'est difficile. On m'a aidé  *nomme honnĂȘtement un Ă©lĂšve modĂšle du groupe*
— Tu t'es dĂ©brouillĂ© ?
— Oui, j'ai presque tout compris.

— Qu'est-ce que c'est ?
— *rĂ©pond correctement*.
*Je pose encore quelques questions. Il rĂ©pond plus ou moins correctement, parfois complĂštement Ă  cĂŽtĂ©, mĂȘme si c'est 50-50 entre vrai et faux.*
— acceptĂ©. Bien.

Il n'est pas nĂ©cessaire de dĂ©crire tous les autres cas. Oui, un « bon Ă©lĂšve » peut ĂȘtre mĂ©content que le « mĂ©diocre » ait la mĂȘme note, en s'appuyant sur l'honnĂȘtetĂ©. À ce moment-lĂ , tout dĂ©pend de l'humeur. Soit je demande au « bon Ă©lĂšve » de regarder le sol, car « je vais partager une pincĂ©e de sagesse maintenant », puis j'expliquerai l'essence de l'approche, dĂ©crirai ce qui a plus de valeur dans la vie et prĂ©ciserai que le « mĂ©diocre » a eu beaucoup plus de mal Ă  rĂ©ussir que lui, le « bon Ă©lĂšve », etc.

 soit, comme Ă  l'Ă©poque, mon professeur, je dessinerai une petite dent dans la case du journal en face de cet insatisfait et la prochaine fois, je complĂ©terai personnellement son travail de laboratoire. Juste comme ça. Pour ne pas « Ă©teindre » ses camarades.

La base de tout programme informatique repose sur
 des puzzles.

Notes
Le processus d'apprentissage, comme le reste du monde, est littéralement noyé dans des prix et des notes.
Les étudiants sont aussi des humains, cependant, je pense qu'il fallait « secouer » les « cadres » ici aussi.
Au cours du semestre, une tùche supplémentaire a été donnée à tous. S'inscrire sur github.com, y téléverser un projet vide en C++, faire 2 mises à jour, les committer et les pousser. 15 points ont été attribués pour ces actions. Oui, oui, pas 4, pas 5, mais 15. Trois se sont débrouillés. Cela semblait compréhensible pour le psychotype étudiant, mais il y avait un autre cas par la suite.
Un jour, notre cours a Ă©tĂ© dĂ©placĂ© de telle maniĂšre qu'il est devenu le dernier, encore Ă  travers la fenĂȘtre. Pourtant, 15 personnes sont quand mĂȘme venues. Je n'avais pas envie d'expliquer un nouveau sujet en l'honneur de ce hĂ©ros, car nous avions dĂ©jĂ  suffisamment progressĂ© dans les sujets + le prochain sujet n'Ă©tait pas trĂšs simple pour des cerveaux fatiguĂ©s (les miens et ceux des Ă©tudiants). Alors, j'ai dĂ©cidĂ© de parler de philosophie.

— J'annonce une attraction de gĂ©nĂ©rositĂ© sans prĂ©cĂ©dent. Tout le monde me dit quelle note lui attribuer pour ce cours.
Tout le monde a voulu un « 5 ».
— ConsidĂ©rez que c'est dĂ©jĂ  fait, — dis-je. Tout le monde Ă©tait ravi.
Silence.
— Mais pourquoi personne n'a-t-il voulu un 7- ou un 10- ?
Tout le monde a Ă©carquillĂ© les yeux et a commencĂ© Ă  sourire bĂȘtement.
— Et vous allez le mettre ? Dans le journal ?! — une voix s'est fait entendre du fond de la classe.
— Facile ! — dis-je, — j'annonce un blitz sur les termes, celui qui rĂ©pondra Ă  10 de mes questions — je mets 20 points dans le journal, sans trucage, celui qui ne rĂ©pond pas — aura -10 (-10).

«L'Ă©quipe s'est animĂ©e, la polĂ©mique a commencé», chacun avait des notes honnĂȘtement gagnĂ©es. Deux se sont portĂ©s volontaires. Avec quelques inexactitudes, ils ont chacun rĂ©pondu Ă  10 questions sur la pile, la file, le constructeur, le destructeur, le ramasse-miettes, l'encapsulation, le polymorphisme, les fonctions de hachage

Un dessin a Ă©tĂ© fait Ă  chacun dans le journal 20
 mais l'importance du journal et des notes a chutĂ© aux yeux de chacun. Maintenant, je regrette de ne pas avoir demandĂ© s'ils voulaient «partager» leur note avec quelqu'un. Je pense qu'ils auraient partagé  DĂšs lors, chacun a passĂ© le «TP» avec des connaissances et de l'honnĂȘtetĂ©.

À partir de ce moment, un autre type de rendu de TP est apparu :


case honnĂȘtePasLuiMaisIlAessayĂ©

— Tu l'as fait toi-mĂȘme ?
— Non.
— Pourquoi ?
— C'est difficile. On m'a aidé  *nomme honnĂȘtement un Ă©lĂšve modĂšle du groupe*
— Tu t'es dĂ©brouillĂ© ?
— Sergey NikolaĂŻevitch, honnĂȘtement — je ne comprends rien, j'ai Ă©crit mes commentaires Ă  cĂŽtĂ© de chaque ligne — ce n'est pas pour moi, je vais devenir tracteuriste.
— Qu'est-ce que c'est ?
— *lit le commentaire Ă  cĂŽtĂ© de la ligne*.
— 

— 

— Quelle est la diffĂ©rence entre un Belarus MTZ, un Don 500 et un K700 ?
— ??!.. Le premier est un tracteur Ă  roues de production minçoise, souvent utilisĂ© dans les types de production agricole lĂ©gers et moyens. Il a des petites roues Ă  l'avant et des grandes Ă  l'arriĂšre. Le Don 500 est principalement une moissonneuse-batteuse, tandis que le K-700 «Kirovets» est un tracteur Ă  roues soviĂ©tique polyvalent Ă  haute capacitĂ© de franchissement, de classe de traction 5.
— compris. Bien (!!!).
— Merci, Sergey Nikolaïevitch !!!

Dans ma patrie, discuter de tracteurs est presque comme ici discuter de SOLID.

Génie
J'ai eu dans ma classe un GĂ©nie. Un Ă©tudiant qui est arrivĂ© trĂšs en retard dĂšs le premier cours et n'a pas voulu rassembler le puzzle avec tout le monde. Alors, je lui ai demandĂ© de faire ce que j'avais prĂ©vu pour tous Ă  la prochaine leçon — Ă©crire sur une feuille Ă  propos de lui, de ses hobbies, ce qui l'intĂ©resse. En rĂ©sultat, le «GĂ©nie» avait 2-3 lignes : quelque chose comme «je perçois la vanitĂ© de l'existence» 


 Oh, mon Dieu, j'avais dans ma classe en une seule personne les deuxiùme Lao Tseu et Kojima

La base de tout programme informatique repose sur
 des puzzles.

À ma grande surprise, il rĂ©pondait brillamment aux questions sur les termes lors des deux premiers cours, mais l'effet a durĂ© peu de temps. Le «GĂ©nie» a cessĂ© d'assister aux cours et est venu seulement pour rendre son premier travail pratique, qu'il n'a pas rĂ©ussi pour des raisons objectives. Ensuite, Ă  cause des absences, il a accumulĂ© des dettes, qu'il pensait je devais lui accorder, disons, «fraternellement». je devais simplement lui valider, disons, «fraternellement».
Le fait de ne pas assister aux cours + une estime de soi exagĂ©rĂ©e allaient Ă  l'encontre des principes Ă©tablis pour ma participation aux cours. «Genius» n'avait que deux options — se rĂ©habiliter (le chemin attendu) ou abandonner les cours et espĂ©rer un «passable» attribuĂ© par le dĂ©partement pour se dĂ©barrasser d'un paresseux.
Eh bien, c'est «Genius»... il fallait agir de maniĂšre «gĂ©niale». Ce jeune homme n'a rien trouvĂ© de mieux que d'Ă©crire dans le chat gĂ©nĂ©ral sur VK (oĂč j'Ă©tais et tous les Ă©tudiants de ce groupe) un tirade pleine de colĂšre avec des insultes Ă  mon encontre.

Ah... Quelle déception.
Ce qui m'a le plus frappĂ©, c'est qu'avant la fin du processus d'opĂ©ration punitive de la part de la direction de l'Ă©tablissement, il a dĂ©cidĂ© de s'excuser auprĂšs de moi. Pour quoi ? — cela m'est sincĂšrement incomprĂ©hensible. À ce moment-lĂ , j'Ă©tais dĂ©jĂ  largement indĂ©pendant des critiques, surtout d'une telle bĂȘtise. Ma personnalitĂ© n'Ă©tait pas affectĂ©e, mais les processus — ce sont des processus, en tant qu'enseignant, je ne pouvais pas ne pas le signaler. Il s'est avĂ©rĂ© qu'il avait accumulĂ© tant de plaintes au cours de sa formation que ce cas Ă©tait le dernier. Il a Ă©tĂ© expulsĂ©. Depuis la derniĂšre annĂ©e du collĂšge ptu.
Peut-ĂȘtre qu'il m'observe dĂ©jĂ  depuis longtemps avec la lunette d'un tireur d'Ă©lite, mais pour ĂȘtre honnĂȘte, cela m'est Ă©gal.
Ah, la génialité, tu es si impitoyable...

Épilogue
Pour moi personnellement, l'expĂ©rience d'enseignement a Ă©tĂ© l'une des plus enrichissantes. Cela m'a aidĂ© Ă  consolider mes connaissances fondamentales en programmation aprĂšs mes Ă©tudes Ă  l'institut. J'ai ressenti une confiance en moi dans ma spĂ©cialitĂ© choisie (le spectre des spĂ©cialitĂ©s disponibles). Il est particuliĂšrement important que «la groupe la plus indisciplinĂ©e» ait dĂ©veloppĂ© un respect et une amitiĂ© Ă  mon Ă©gard — cela a beaucoup de valeur. J'ai rĂ©ussi Ă  trouver un chemin vers leurs novateurs intĂ©rieurs, j'ai essayĂ© d'inculquer la rĂ©alitĂ©, plutĂŽt que ces prioritĂ©s stĂ©rĂ©otypĂ©es. Il est dommage que nous n'ayons pas atteint les «puzzles» en codage — quand chacun aurait dĂ» rĂ©aliser une partie du code, et, en rĂ©unissant toutes les parties, nous aurions obtenu un grand programme fonctionnel...
J'espÚre qu'un jour chacun d'eux ressentira cela... en attendant, ci-dessous se trouvent des captures d'écran avec les avis de quelques étudiants deux ans plus tard.

La base de tout programme informatique repose sur
 des puzzles.

Il est encore tÎt pour tirer des conclusions sur le succÚs de la carriÚre de programmeur pour l'un d'eux, car la plupart de ce groupe est actuellement en études supérieures. Le temps le dira.

J'espÚre que l'article a été utile. Merci de votre attention!
Je vous souhaite succÚs créatif et bonne humeur, collÚgues !

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster