Grunden för all programmering på... pussel

Hälsningar, Khabrovsk-bor!

I den här artikeln vill jag berätta om min erfarenhet som C++ programmeringslärare på en högskola vid ett tekniskt universitet. Det var en upplevelse en gång i livet som lärde mig mycket. När det kommer till intressanta fakta från ditt personliga förflutna, är denna passage från livet en av de första som kommer att tänka på.
Gå.

Först lite om mig själv.
2016 tog jag examen från institutet med utmärkelser med en examen i Information Security of Automated Systems. Under mina studier har jag gång på gång kunnat realisera min potential i att skriva vetenskapliga artiklar, delta i tävlingar och anslag. 2015 fick jag möjligheten att bli vinnaren av den allryska tävlingen för unga forskare "UMNIK". 2016, innan han avslutade sina studier, var han redan anställd i en stor organisation i staden som "specialist på informationssäkerhet, kryptografi och kryptering."
Kort sagt, något sånt här. Du kan tänka dig att jag fortfarande hade en idé om programmering.

Och här är det 2017. Forskarstudier. Jag blev ombedd att undervisa i C++ på en högskola under en termin, för vilken jag lovades bra bonusar för att lätta bördan för en doktorand och inget mer.

För att vara ärlig så var jag uppriktigt intresserad av att prova mig själv i detta credo.

Första paret
september. Första veckan i skolan. Studenter kom till mig. "Den styggaste gruppen" - det var vad de kallades.
23 personer. "Programmerare".

Som väntat presenterade jag mig först. Jag berättade diskret för dem innehållet i delen "Först, lite om mig själv"...
Sedan började det hemska. På frågan "Vad kan du göra?" eleverna (det ska vi kalla dem från och med nu) svarade att de kunde göra lite mer än ingenting alls (det här innebar att några av dem visste hur MS VS såg ut och kunde skapa ett ”Hello world”-projekt). .. Programmerare. Sista kursen…

Vidare förklarade de i detalj, "i färger", att de inte hade lärt sig någonting och att de i allmänhet var besvikna på programmering...

Nästan alla dagar till nästa lektion gick så här:
Grunden för all programmering på... pussel

... men dagen innan uppstod idén att satsa på att korrigera den nuvarande situationen i dessa ungas medvetande och medvetande. Och sedan "Ostap rycktes med."

Introduktion till programmering
Till nästa lektion tog jag med... ett pussel.
Jaja. Pussel. "Hur du tränar din drake." Reglerna var enkla. Gruppen var uppdelad i 3 lag. Varje lag samlade ihop sin del. Vissa är skogen, andra är jorden, andra är draken i mitten av bilden. Medan hela paret höll på att lägga pusslet sa jag det till dem Att lägga ett pussel är också programmeringatt programmerare ofta använder någon annans kod, att varje projekt har flera olika team, funktioner, moduler...
Efter hand anslöt sig de mest slöa eleverna till processen.
När jag var färdig med att gnugga in idén om programmering i affärskoncept, processer och... pussel, var det dags att fastställa reglerna för träning.
För varje lektion fick varje elev skriva ner 10 termer från IT i en anteckningsbok. Några. Alla har sina egna. Poängen är att jag tog en elevs anteckningsbok och hittade bland alla termer maximalt tillämpad och frågade en annan elev om dem. När en annan elev säger: "Jag skrev inte ner den termen" blev det ingen påföljd (på grund av sunt förnuft), men den eleven var tvungen att skriva ner de "saknade" termerna (som alla andra som inte hade dem) och hitta deras betydelser av nästa yrke.

Det var vad vi gjorde. Varje lektion började med en munter slumpmässighet i förhållande till två eller tre elever. Killarna hade entusiasm för denna process.

Lektionsämnen
När man börjar träna är det mycket viktigt att ge eleverna bra litteratur. Enligt min mening var den idealiska boken:
Grunden för all programmering på... pussel

En gång var jag tvungen att smygläsa den medan jag kramade Microsoft Visual Studio. Då kunde jag förstå programmering nästan från början. Perfekt alternativ.

Du går blygsamt till eleverna och säger: "För att bli programmerare behöver du bara läsa och prova allt i den här boken", och kasta boken på bordet. Det viktigaste är att inte blanda ihop böckerna i ryggsäcken...

Inför varje ämne var jag verkligen tvungen att förbereda mig noggrant. Jag läste samma Laforet och flera andra intressanta källor från Internet.
Förklaringen gick nästan från början. Dessutom var det nödvändigt att förstå var elevernas grundläggande kunskaper var avskurna deduktivt.
Arrayer -> Arbeta med minne (konstruktörer) -> Länkar -> Hur minne fungerar -> Enheter -> Vad är en fysisk enhet -> Binär representation av data...
Grunden för all programmering på... pussel

Ett mycket starkt krocktest av kunskap om grundläggande fakta om programmering. Jag är inte längre en programmerare, jag är en historiker!

Och så betyder det att historiska strider äger rum för flera par i rad. En dag tittar en sekreterare från avdelningen in på vårt kontor och när han ser gruppen, vidgar han ögonen, kikar och stänger dörren. Som jag fick veta senare blev hon chockad över att DEN HÄR gruppen satt så tyst och lyssnade så uppmärksamt på mig... Eh, lätt.

Laboratoriearbeten
Den första tillämpade informationen är de första "labbet". Totalt klarade gruppen 10 laborationer under terminen. Först gjorde de den enklaste konsolen a + b, och i den sistnämnda skrev de, om än konsolbaserade, men ganska intressanta applikationer, som att beräkna värdet av integralen av någon godtyckligt given funktion med hjälp av en av tre metoder - ungefär samma uppgifter var på den slutliga certifieringen - kursarbete.

Det är bara acceptansmetoden ingen var bekant. Under hela mina studier på institutet ställdes jag inför att det inte är samma sak att vara smart och kunna klara rapporter. Det här passade mig inte alls.

- Killar, tänkte jag. Låt oss bygga en "konceptuell" relation. Om någon av er tror att ni inte behöver programmera så finns dörren där borta. Jag lär dig gratis. Jag vill bara se nyfikna, omtänksamma och omtänksamma entusiaster här. "Jag ber alla andra att inte slösa bort allas tid", sa jag den första dagen av laboratoriearbete. Efter detta slutade 5 personer omedelbart att gå på lektioner. Detta var logiskt och förväntat. Det gick att försöka göra något begripligt med resten.

- ... Jag är inte intresserad av att se någon göra ditt arbete bara för att klara det. Ni kanske inte är programmerare, men ni kommer att vara människor i mina klasser måste.

Det såg ut så här:

case отличник

En elev sätter sig ner med mig för att lämna in sitt arbete.
– Gjorde du det själv?
- Ja.
- Vad är detta?
- *svarar rätt*.
*Jag frågar om ett par punkter till. Svarar rätt*
- accepterat. Bra.

case болтун

– Gjorde du det själv?
- Ja.
- Vad är detta?
- *svarar fel / svarar inte*.
*Jag frågar om ett par punkter till. Samma resultat*
- Inte accepterad. MISLYCKADES Jag väntar på omtagningen.

case хорошист

– Gjorde du det själv?
- Ja.
- Vad är detta?
- *svarar rätt, men inte självsäkert, simmar*.
*Jag frågar om ett par punkter till. Samma resultat*
- accepterat. Bra.

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

– Gjorde du det själv?
- Nej.
- Varför?
- Svår. Han hjälpte mig... *nämner ärligt en utmärkt student från gruppen*
- Förstod du?
– Ja, jag förstod nästan allt.

- Vad är detta?
- *svarar rätt*.
*Jag frågar om ett par punkter till. Svarar mer eller mindre rätt, ibland helt fel, även om det är 50/50 rätt och felaktigt*
- accepterat. Bra.

Det är meningslöst att beskriva alla andra fall. Ja, en "bra student" kan vara missnöjd med att en "C"-student får samma betyg, baserat på ärlighet. Sedan beror allt på humöret. Eller så ber jag den "bra studenten" titta i golvet, för "nu ska jag tappa en nypa visdom" och sedan ska jag berätta kärnan i tillvägagångssättet, beskriva vad i livet som är av större värde och förklara att det var mycket svårare för "C"-eleven att klara än för honom, den "bra eleven." ", etc...
... eller, som min lärare en gång gjorde, jag ska rita en liten tand i journallådan mittemot den här missnöjda personen och nästa gång ska jag personligen slutföra laborationen åt honom. Bara. För att inte "släcka" dina kamrater.

Grunden för all programmering på... pussel

Оценки
Utbildningsprocessen, liksom hela världen, bokstavligen drunknar i prislappar och betyg.
Studenter är också människor, men enligt min mening borde ”ramverket” ha ”skakas” även här.
Under terminen fick alla en bonusuppgift. Registrera för github.com, ladda upp ett tomt C++-projekt dit, gör 2 uppdateringar, commit dem och push dem. För dessa åtgärder tilldelades 15. Ja, ja, inte 4, inte 5, utan 15. Tre kom på det. Detta var på något sätt förståeligt för elevens psykotyp, men sedan fanns det ett annat fall.
En gång flyttades vårt par så att hon var den sista, och även genom ett par fönster. Men 15 personer kom ändå till det. Jag ville inte förklara ett nytt ämne för att hedra ett sådant hjältemod, eftersom vi redan hade kommit ganska bra rent ämnen + nästa ämne var inte särskilt enkelt för trötta hjärnor (min och elevernas). Sedan bestämde jag mig för att prata om filosofi.

— Jag tillkännager en attraktion av oöverträffad generositet. Alla säger till mig vilket betyg jag ska ge honom för dagens par.
Alla ville ha ett "A".
"Tänk på det redan där," sa jag. Alla var glada.
Tystnaden.
– varför ville ingen? 7-ku eller 10-ku?
Allas ögon vidgades och de började le dumt.
- Kommer du att satsa? Till tidningen?! - en röst kom från skrivbordet bak.
- Ja lätt! - Jag sa, - Jag tillkännager en blixt på villkor, den som svarar på 10 av mina frågor - jag slår vad om den 20:e till tidningen, utan hake, den som inte svarar är den -10 (minus tio).

"Telaget piggnade till, en debatt började," alla hade ärligt tjänat poäng. Två anmälde sig frivilligt. Med mindre felaktigheter turades de om med 10 frågor om stacken, kö, konstruktör, destruktör, sophämtare, inkapsling, polymorfism, hashfunktioner...
Var och en ritades i en tidning 20... men tidningens och betygens betydelse föll i allas ögon. Nu ångrar jag att jag inte frågade om de skulle vilja "dela" sin bedömning med någon. Det verkar för mig att de skulle dela... Från och med nu lämnade alla över ”labbet” med kunskap och ärlighet.

Från och med detta ögonblick dök en annan typ av labbleverans upp:


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

– Gjorde du det själv?
- Nej.
- Varför?
- Svår. Han hjälpte mig... *nämner ärligt en utmärkt student från gruppen*
- Förstod du?
- Sergey Nikolaevich, ärligt talat, jag förstår ingenting, så jag skrev kommentarer bredvid varje rad - ja, det är inte min grej, jag ska bli traktorförare
- Vad är detta?
— *läser kommentaren mittemot raden*.
- ...
- ...
— Vad är skillnaden mellan Belarus MTZ och Don 500 och K700?
- ??!.. Den första är en hjultraktor tillverkad i Minsk, som ofta används i lätta och medelstora typer av jordbruksproduktion. Den har även små hjul fram och stora hjul bak. Don 500 är i grunden en skördare, och K-700 Kirovets är en sovjetisk offroad-hjultraktor för allmänt bruk, dragkraftsklass 5.
- accepterat. Bra (!!!).
- Tack, Sergey Nikolaevich!!!

I mitt hemland är att prata om TractorA nästan som att prata om SOLID här.

geni
Det fanns ett geni i min grupp. Eleven var väldigt sen från första klass och klarade inte pusslet tillsammans med alla andra. Sedan bad jag honom göra det jag planerat för alla till nästa lektion - skriva på ett papper till sig själv vad han är intresserad av, vad som intresserar honom. Enligt resultaten hade "Genius" 2-3 rader: något i stil med "Jag inser det meningslösa i att vara"...

...Åh, gud, i min grupp har jag den andra Lao Tzu och Kojima i en person...
Grunden för all programmering på... pussel

Till min förvåning svarade han i de två första klasserna verkligen på frågor om termer briljant, men effekten varade inte länge. "Snillet" slutade delta i klasserna och nästa gång kom han bara för att klara det första laboratoriearbetet, som han framgångsrikt slutförde. gick inte igenom av objektiva skäl. Sedan, på grund av frånvaro, samlade han naturligtvis på sig skulder, som, som han trodde, Jag var helt enkelt tvungen att räkna honom, så att säga, "på ett broderligt sätt".
Att inte delta i par + ökad puls stred mot de etablerade principerna för att gå på mina klasser. "Genius" hade bara två vägar ut ur situationen - att rehabilitera sig själv (den förväntade vägen) eller ge upp klasserna och hoppas på ett "C" från dekanusämbetet för att bli av med slackern.
Tja, det här är "genialt"... du måste agera "briljant" direkt. Den här unge mannen kunde inte hitta något bättre än att i den allmänna dialogen på VK (där jag och alla elever i denna grupp var) skriva en arg tirad med förbannelser och förolämpningar riktade till mig.

Hmm... Besvikelse.
Det som var mest slående var att han, innan den bestraffande operationen från högskoleledningens sida avslutades, bestämde sig för att be mig om ursäkt. För vad? – Jag förstår verkligen inte. På den tiden hade jag länge varit oberoende av kritik, särskilt sådan uppriktigt sagt dum kritik. Min personlighet påverkades inte, men processerna är processer och som lärare kunde jag inte låta bli att rapportera detta. Som det visade sig hade så många klagomål redan samlats på honom under hans studier att detta fall visade sig vara det sista. Han blev utvisad. Från sista året på yrkesskolan.
Kanske har han tittat på mig länge genom åsynen av ett prickskyttegevär, men för att vara ärlig bryr jag mig inte.
Äh, geni, du är hjärtlös...

Epilog
För mig personligen var undervisningsupplevelsen en av de mest upplysande. Detta hjälpte mig att befästa mina grundläggande kunskaper om programmering efter att ha studerat vid institutet. Jag kände mig säker på min valda specialitet (utbudet av tillgängliga specialiteter). Av särskild vikt är det faktum att den "styggaste gruppen" genomsyrade mig med respekt och vänlighet - det här är värt mycket. Jag lyckades hitta en väg till deras inre innovatörer, försökte ingjuta verkligheten och inte dessa stereotypa prioriteringar. Det är synd att vi inte kom till "pusslet" i kodning - när alla skulle behöva göra en del av koden, och genom att koppla alla delar till en, skulle vi få ett stort fungerande program...
Jag hoppas att var och en av dem en dag kommer att känna detta... men för nu, nedan är skärmdumpar med recensioner från flera studenter efter 2 år.

Grunden för all programmering på... pussel

Det är för tidigt att dra slutsatser om framgången för en programmerares karriär för någon av dem, för nu studerar de flesta i denna grupp på ett universitet. Tiden kommer att visa.

Jag hoppas att artikeln var användbar. Tack för din uppmärksamhet!
Kreativ framgång och positivt humör, kollegor!

Källa: will.com

Lägg en kommentar