Grundlaget for al programmering er
 puslespil.

Hej, Habrovskere!

I denne artikel vil jeg dele mine erfaringer som underviser i programmering i C++ pÄ et teknisk universitets college. Det var en enestÄende oplevelse i mit liv, som lÊrte mig meget. NÄr jeg tÊnker pÄ interessante fakta fra min fortid, kommer denne episode til at minde mig om det fÞrst.
Lad os komme i gang.

FĂžrst lidt om mig selv.
I 2016 dimitterede jeg fra universitetet med rĂždt diplom i specialet "Informationssikkerhed for automatiserede systemer". I lĂžbet af mit studium fik jeg flere gange mulighed for at realisere mit potentiale ved at skrive videnskabelige artikler, deltage i konkurrencer og ansĂžgninger om legater. I 2015 blev jeg vinder af den landsdĂŠkkende konkurrence for unge forskere "UMNIK". I 2016, fĂžr jeg afsluttede mit uddannelse, fik jeg et job i en stor organisation i byen som "Specialist i informationssikkerhed, kryptografi og kryptering".
Kort sagt, sÄdan var det. Man kan forestille sig, at jeg stadig havde en vis forstÄelse for programmering.

Og sÄ er det 2017. Ph.d.-studier. Jeg blev bedt om at undervise i C++ pÄ college i lÞbet af et semester, og de lovede mig gode bonuser for at lette byrden for ph.d.-studerende og ikke mere.

Ærligt talt var jeg oprigtigt interesseret i at prþve mig selv i denne rolle.

FĂžrste time
September. Fþrste skoleuge. Mine studerende kom til mig. "Den mest ustyrlige gruppe" — som de blev kaldt.
23 personer. "Programmerere".

Som det hþr og bþr, présenterede jeg mig selv. Jeg fortalte dem kort om indholdet af afsnittet "Fþrst lidt om mig selv"

SÄ begyndte det skrÊkkelige. Da jeg spurgte "Hvad kan I?", svarede studerende (som vi i fremtiden vil kalde dem), at de kunne lige lidt mere end ingenting (det betÞd, at nogle af dem vidste, hvordan MS VS sÄ ud, og kunne oprette et "Hello world"-projekt)
 Programmerere. Sidste Ärgang


Derefter forklarede de detaljeret, "i farver", at de ikke havde lért noget, og at de i det hele taget var skuffede over programmering


NÊsten alle dage indtil den nÊste undervisning forlÞb sÄledes:
Grundlaget for al programmering er
 puslespil.


 men dagen fÞr den opstod ideen om at lÊgge krÊfter i at rette op pÄ den nuvÊrende situation i disse unges sind og bevidsthed. Og sÄ "tog Ostap af sted".

Introduktion til programmering
Til néste time bragte jeg
 et puslespil.
Ja, ja. Puzzle. "SĂ„dan tĂŠmmer du en drage". Reglerne var enkle. Gruppen blev delt op i 3 hold. Hver gruppe samlede deres del. Nogle — skov, andre — jord, tredje — dragen i midten af billedet. Mens de samlede puslespillet hele parret igennem, fortalte jeg, at at samle et puslespil ogsĂ„ er programmering, at programmĂžrer ofte bruger andres kode, at hvert projekt har flere forskellige hold, funktioner, moduler

Langsomt begyndte selv de mest dovne studerende at deltage i processen.
Da jeg var férdig med at indprente ideen om programmering i virksomhedens, processernes og
 puslespillets koncepter, var det tid til at fastsétte reglerne for undervisningen.
Til hver lektion skulle hver studerende skrive 10 IT-termer i deres notesbog. Hvilke som helst. Hver havde deres egne. Pointen var, at jeg tog en studerendes notesbog, fandt blandt alle termerne de mest praktiske og spurgte en anden studerende om dem. NÄr den anden studerende sagde "Jeg har ikke skrevet det begreb ned", blev det ikke straffet (i kraft af sund fornuft), men den studerende skulle skrive "de manglende" begreber (ligesom alle der ikke havde dem) og finde deres betydninger til nÊste lektion.

SÄdan gjorde vi det. Hver lektion begyndte med en hurtig tilfÊldig udvÊlgelse af to-tre studerende. Drengene havde entusiasme for denne proces.

Emner for lektionerne
NÄr man begynder undervisningen, er det meget vigtigt at give de studerende godt litteratur. Efter min mening var den ideelle lÊrebog:
Grundlaget for al programmering er
 puslespil.

Engang mÄtte jeg forsigtigt lÊse den i armene pÄ Microsoft Visual Studio. Der fik jeg nÊsten forstÄelse for programmering fra bunden. Den perfekte mulighed.

Du gÄr beskedent hen til studerende og siger: "For at blive programmÞrer skal I bare lÊse og prÞve alt det, der stÄr i denne bog", og smider bogen pÄ bordet. Det vigtigste er ikke at forvirre bÞgerne i din rygsÊk


FÞr hvert emne mÄtte jeg selvfÞlgelig forberede mig grundigt. LÊste Lafore og flere interessante kilder fra nettet.
Jeg mÄtte forklare nÊsten fra bunden. Og man skulle deduktivt finde ud af, hvor studenterne havde huller i deres grundlÊggende viden.
Arrays -> Arbejde med hukommelse (konstruktþrer) -> Referencer -> Hvordan hukommelse fungerer -> Lagringsenheder -> Hvad er en fysisk lagringsenhed -> Binért datasyn

Grundlaget for al programmering er
 puslespil.

En meget udfordrende test af viden om grundlĂŠggende fakta om programmering. Jeg er ikke lĂŠngere programmĂžr, jeg er historiker!

Og sÄ, se, de historiske slag fortsÊtter i flere par. En dag kigger sekretÊren fra afdelingen ind i vores kontor, ser gruppen og buldrer med Þjnene, mens hun stirrer og lukker dÞren. Som jeg senere fik at vide, var hun chokeret over, at DENNE gruppe sad sÄ stille og lyttede sÄ opmÊrksomt til mig
 Tjah, let.

Laboratoriearbejde
De fĂžrste anvendelige oplysninger – de fĂžrste 'labs'. I lĂžbet af semesteret afleverede gruppen 10 laboratoriearbejder. I de fĂžrste udfĂžrte de de enkleste konsolprojekter, a+b, og i de sidste skrev de, selvom det stadig var konsolprogrammer, temmelig interessante applikationer, sĂ„som at beregne vĂŠrdien af et integral af en vilkĂ„rlig funktion ved hjĂŠlp af en af de tre metoder – omtrent de samme opgaver som pĂ„ den afsluttende bedĂžmmelse – kursusarbejdet.

Men tilgangen til modtagelsen ikke var almindelig. Hele mit studieforlÞb pÄ universitetet stÞdte jeg pÄ, at det at vÊre klog og at kunne aflevere rapporter ikke var det samme. Det generede mig dybt.

— Venner, jeg har ténkt lidt. Lad os etablere 'begrebsforhold'. Hvis nogen af jer mener, at programmering ikke er nþdvendigt for dem – dþren er der. Jeg underviser jer gratis. Jeg vil kun se nysgerrige, engagerede og interesserede entusiaster her. Alle andre beder jeg om ikke at spilde vores félles tid – sagde jeg den fþrste dag, vi modtog laboratoriearbejder. Efter dette stoppede 5 personer straks med at deltage i undervisningen. Det var logisk og forventeligt. Det var muligt at forsþge at gþre noget fornuftigt med de resterende.

— 
 jeg er ikke interesseret i at se, hvordan nogen har lavet arbejdet for jer, bare for at aflevere. I mĂ„ ikke vĂŠre programmĂžrer, men I mĂ„ vĂŠre mennesker.

Det sÄ sÄdan ud:

case fremragende

En studerende sĂŠtter sig ned for at aflevere arbejdet.
— Lavede du det selv?
— Ja.
— Hvad er det her?
— *svarer korrekt*.
*Jeg spĂžrger om et par flere ting. Svarer korrekt*
— accepteret. Fremragende.

case snakkesalig

— Lavede du det selv?
— Ja.
— Hvad er det her?
— *svarer INCORREKT / svarer ikke*.
*Jeg spĂžrger om et par flere ting. Samme resultat*
— IKKE accepteret. IKKE BESTÅET. Jeg venter pĂ„ genaflevering.

case dygtig

— Lavede du det selv?
— Ja.
— Hvad er det her?
— *svarer korrekt, men usikkert, famlende*.
*Jeg spĂžrger om et par flere ting. Samme resultat*
— accepteret. Godt.

case jĂŠvn 3-tal

— Lavede du det selv?
— Nej.
— Hvorfor?
— Det er svért. Jeg fik hjélp af
 *névner érligt en studerende fremragende fra gruppen*
— Forstod du det?
— Ja, jeg forstod nésten alt.

— Hvad er det her?
— *svarer korrekt*.
*Jeg spĂžrger om et par ting mere. Han svarer mere eller mindre korrekt, nogle gange helt forkert, selv med 50 procent korrekte og forkerte svar.*
— accepteret. Godt.

Det giver ikke mening at beskrive alle andre tilfÊlde. Ja, en 'god studerende' kan vÊre utilfreds med, at en 'middelmÄdig studerende' fÄr samme karakter, ved at udnytte Êrligheden. SÄ afhÊnger det af humÞret. Enten beder jeg den 'gode studerende' om at se pÄ gulvet, for jeg vil 'give et strejf af visdom' nu, og sÄ forklarer jeg essensen af tilgangen, beskriver hvad der har stÞrre vÊrdi i livet, og forklarer, at det var meget svÊrere for 'middelmÄdig studerende' at bestÄ end for ham, 'den gode studerende', osv...

 eller som engang, min underviser, tegner jeg en lille tand i kolonnen i dagbogen over for denne utilfredse, og nÊste gang tilfÞjer jeg personligt laboratoriearbejdet for ham. Bare sÄdan. For at ikke 'nedgÞre' mine kammerater.

Grundlaget for al programmering er
 puslespil.

Karakterer
Uddannelsesprocessen, ligesom hele verden, er bogstaveligt talt oversvĂžmmet af priser og karakterer.
Studerende er ogsÄ mennesker, men 'rammerne', efter min mening, burde vÊre 'rystet' her.
I lÞbet af semesteret fik alle en bonusopgave. At registrere sig pÄ github.com, uploade et tomt projekt i C++, lave 2 opdateringer, committe dem og pushe dem. For disse handlinger blev der tildelt 15. Ja, ikke 4, ikke 5, men 15. Tre klarede det. Den studerendes psykologiske type var forstÄelig, men der var et andet tilfÊlde.
PÄ et tidspunkt blev vores undervisning flyttet, sÄ den blev sidste time, og ovenikÞbet var der et par-tidsvindue. Men der kom stadig 15 personer. At forklare et nyt emne i Êre af sÄdan held var ikke noget, jeg Þnskede, da vi allerede var godt videre med emnerne + det nÊste emne var ikke sÄ nemt for de trÊtte hjerner (mine og de studerendes). SÄ jeg besluttede at tale om filosofi.

— Jeg erklérer en uset generþsitet. Alle fortéller mig, hvilken karakter de vil have for dagens undervisning.
Alle ville have en 'femmer'.
— Ténk, det er allerede givet, — sagde jeg. Alle blev glade.
Tavshed.
— hvorfor er der ingen der ville have 7-er eller 10-er?
Alle stirrede og begyndte at smile dumt.
— Vil du virkelig sétte den i? I dagbogen?! — lþd stemmen fra bageste rékke.
— SelvfĂžlgelig! — sagde jeg, — jeg erklĂŠrer blitz i termer, den der kan svare pĂ„ mine 10 spĂžrgsmĂ„l — fĂ„r 20 i dagbogen, uden trick, den der ikke svarer — fĂ„r (minus ti). -10 (minus ti).

«Holdet blev livligt, debatten begyndte», alle havde flittigt fortjente vurderinger. To meldte sig. Med smĂ„ unĂžjagtigheder svarede de skiftevis pĂ„ 10 spĂžrgsmĂ„l om stak, kĂž, konstruktor, destruktor, affaldsindsamler, indkapsling, polymorfi, hash-funktioner

Hver fik tegnet ind i logbogen 20’ere
 men vigtigheden af logbogen og vurderingerne faldt i alles Ăžjne. Nu fortryder jeg, at jeg ikke spurgte, om de ville «dele» deres vurdering med nogen. Jeg tror, de ville have delt... Fra nu af afleverede alle «laboratoriet» med viden og ĂŠrlighed.

Fra dette Ăžjeblik opstod der en ny type aflevering af laboratoriet:


case ĂŠrligtIkkeHamMenHanForsĂžgte

— Lavede du det selv?
— Nej.
— Hvorfor?
— Det er svért. Jeg fik hjélp af
 *névner érligt en studerende fremragende fra gruppen*
— Forstod du det?
— Sergey Nikolaevich, helt ĂŠrligt — jeg forstĂ„r ingenting, jeg har selv skrevet kommentarer ved siden af hver sĂŠtning — det er bare ikke mig, jeg vil vĂŠre traktorist
— Hvad er det her?
— *léser kommentaren ved siden af sétningen.*
— 

— 

— Hvad er forskellen pĂ„ BelAZ MTZ og Don 500 og K700?
— ??!.. Den fĂžrste er en hjultraktor fra Minsk, ofte brugt i lette og mellemstore typer landbrugsproduktion. Den har smĂ„ hjul foran og store hjul bagpĂ„. Don 500 er primĂŠrt en hĂžstmaskine, mens K-700 «Kirovets» er en sovjetisk hjultraktor til generelt brug med hĂžj fremkommelighed, trĂŠkkraft klasse 5.
— forstĂ„et. Godt (!!!).
— Tak, Sergey Nikolaevich!!!

I mit hjemland at tale om traktorer er nĂŠsten som at tale om SOLID her.

Geni
Jeg havde en Geni i min gruppe. En student, der var meget forsinket fra fĂžrste gang og ikke samlede det puslespil, som alle andre gjorde. SĂ„ bad jeg ham om at gĂžre det, som jeg havde planlagt for alle til nĂŠste gang - at skrive pĂ„ et papir om sig selv, hvad han interesserede sig for, og hvad der fangede hans interesse. I resultaterne havde «Geniet» 2-3 linjer: noget i stil med «Jeg sĂžger meningen med livet» 


 Åh Gud, jeg har i min gruppe en, der samtidigt er bĂ„de den anden Laozi og Kojima 

Grundlaget for al programmering er
 puslespil.

Til min overraskelse svarede han virkelig strÄlende pÄ spÞrgsmÄl om termerne i de fÞrste to timer, men effekten varede ikke lÊnge. «Geniet» stoppede med at komme til timerne og dukkede kun op til afleveringen af det fÞrste laboratoriearbejde, som han med succes ikke bestod af objektive grunde. Derefter akkumulerede han, ret logisk, gÊld pÄ grund af fravÊr, som han mente, jeg simpelthen burde godkende ham, sÄ at sige, «broderligt».
At absence of classes + inflated self-esteem contradicting the established principles of attending my lectures. The 'Genius' had only two ways out of the situation — to rehabilitate (the expected path) or to skip classes and hope for a 'three' given by the dean's office to get rid of the slacker.
Well, this is the 'Genius'... it had to be done in a 'genius' way. This young man found nothing better than to write an angry tirade with insults directed at me in the general VK dialogue (where I and all the students of this group were).

Yeah... Disappointment.
What surprised me the most was that, before the completion of the punitive operation by the college administration, he decided to apologize to me. For what? — I honestly don't understand. By that time, I had long been independent of criticism, especially such blatantly foolish criticism. My personality was not affected, but processes — are processes; as a teacher, I couldn't help but report this. It turned out that he had accumulated so many complaints during his studies that this case became the last straw. He was expelled from the last year of vocational school.
Maybe he has been watching me through the scope of a sniper rifle for a long time, but to be honest, I don't care.
Oh, genius, you are so heartless...

Epilog
Personally, my teaching experience has been one of the most educational. It helped me solidify fundamental programming knowledge after studying at the university. I felt confident in my chosen specialty (range of available specializations). It is particularly significant that the 'most disobedient group' developed respect and friendliness towards me — that is priceless. I managed to find a way to their inner innovators, tried to instill reality, not these stereotypical priorities. It’s a pity that we didn't get to the 'puzzles' in coding — when everyone would have to write a part of the code, and, combining all parts into one, we would get a large working program...
I hope that someday each of them will feel this... but for now, below are screenshots of feedback from several students two years later.

Grundlaget for al programmering er
 puslespil.

It’s too early to draw conclusions about the success of anyone's programming career, as most of this group is currently studying at a university. Time will tell.

I hope the article was helpful. Thank you for your attention!
Ønsker jer alle kreative succeser og et positivt humÞr, kollegaer!

Kilde: habr.com

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster