Osnova vsakega programiranja na... ugankah

Pozdravljeni, prebivalci Khabrovsk!

V tem članku želim govoriti o svojih izkušnjah kot učitelj programiranja C++ na fakulteti tehnične univerze. To je bila enkratna življenjska izkušnja, ki me je veliko naučila. Ko gre za zanimiva dejstva iz vaše osebne preteklosti, vam ta odlomek iz življenja med prvimi pride na misel.
Pojdi.

Najprej malo o sebi.
Leta 2016 sem z odliko diplomiral na inštitutu iz informacijske varnosti avtomatiziranih sistemov. Med študijem sem lahko večkrat uresničil svoj potencial v pisanju znanstvenih člankov, sodelovanju na tekmovanjih in štipendijah. Leta 2015 sem imel priložnost postati zmagovalec vseruskega tekmovanja mladih znanstvenikov "UMNIK". Leta 2016, pred zaključkom študija, je bil že zaposlen v veliki organizaciji v mestu kot “strokovnjak za informacijsko varnost, kriptografijo in šifriranje”.
Skratka nekaj takega. Lahko si predstavljate, da sem še imel idejo o programiranju.

In tukaj je leto 2017. Podiplomski študij. Prosili so me, da en semester poučujem C++ na fakulteti, za kar so mi obljubili dobre bonuse, da bi olajšali breme podiplomskega študenta in nič več.

Če sem iskren, sem se iskreno želel preizkusiti v tem kredu.

Prvi par
septembra. Prvi teden šole. Študenti so prišli k meni. "Najbolj poredna skupina" - tako so jih imenovali.
23 ljudi. "Programerji".

Kot je bilo pričakovano, sem se najprej predstavil. Diskretno sem jim povedala vsebino dela “Najprej malo o sebi”...
Potem se je začelo grozno. Na vprašanje "Kaj lahko storiš?" študenti (odslej jih bomo tako imenovali) so odgovorili, da lahko naredijo malo več kot nič (no, to je pomenilo, da nekateri od njih vedo, kako izgleda MS VS in lahko ustvarijo projekt »Hello world«). .. Programerji. Zadnji tečaj…

V nadaljevanju so podrobno, “v barvah”, razložili, da jih niso nič naučili in da so nasploh nad programiranjem razočarani ...

Skoraj vsi dnevi do moje naslednje ure so potekali takole:
Osnova vsakega programiranja na... ugankah

... dan prej pa se je porodila ideja, da bi poskušali popraviti trenutno stanje v glavah in zavesti teh mladih. In potem je "Ostapa zaneslo."

Uvod v programiranje
Za naslednjo lekcijo sem prinesel ... uganko.
Da Da. Puzzle. "Kako izuriti svojega zmaja." Pravila so bila preprosta. Skupina je bila razdeljena na 3 ekipe. Vsaka ekipa je sestavila svoj del. Eni so gozd, drugi zemlja, tretji zmaj v središču slike. Medtem ko je ves par sestavljal sestavljanko, sem jima to povedala sestavljanje sestavljanke je tudi programiranjeda programerji pogosto uporabljajo kodo nekoga drugega, da ima vsak projekt več različnih ekip, funkcij, modulov ...
Postopoma so se v proces vključili najbolj letargični učenci.
Ko sem idejo programiranja končal z vtiranjem v poslovne koncepte, procese in ... uganke, je prišel čas za določitev pravil usposabljanja.
Pri vsaki učni uri je moral vsak učenec v zvezek zapisati 10 pojmov iz informatike. Kaj. Vsak ima svojega. Bistvo je, da sem vzel en dijakov zvezek in našel med vsemi izrazi maksimalno uporabljena in vprašal drugega študenta o njih. Ko drugi učenec reče: "Nisem zapisal tega izraza," ni bilo kazni (zaradi zdrave pameti), ampak je ta učenec moral zapisati "manjkajoče" izraze (kot vsi ostali, ki jih niso imeli) in poiščite njihove pomene do naslednjega poklica.

To smo storili. Vsaka lekcija se je začela z veselo naključnostjo v odnosu do dveh ali treh učencev. Fantje so bili nad tem procesom navdušeni.

Teme lekcij
Ob začetku usposabljanja je zelo pomembno, da študentom zagotovimo dobro literaturo. Po mojem mnenju je bila idealna knjiga:
Osnova vsakega programiranja na... ugankah

Nekoč sem jo moral skrivaj brati, medtem ko sem objemal Microsoft Visual Studio. Potem sem programiranje lahko razumel skoraj iz nič. Popolna možnost.

Skromno greš do študentov in rečeš: "Če želite postati programerji, morate samo prebrati in poskusiti vse v tej knjigi," in vržete knjigo na mizo. Glavna stvar je, da ne zamenjate knjig v nahrbtniku ...

Pred vsako temo sem se zagotovo moral temeljito pripraviti. Prebral sem istega Laforeta in več drugih zanimivih virov z interneta.
Razlaga je šla skoraj iz nič. Poleg tega je bilo treba razumeti, kje je bilo osnovno znanje študentov deduktivno odrezano.
Nizi -> Delo s pomnilnikom (konstruktorji) -> Povezave -> Kako deluje pomnilnik -> Pogoni -> Kaj je fizični pogon -> Binarna predstavitev podatkov...
Osnova vsakega programiranja na... ugankah

Zelo močan crash test poznavanja osnovnih dejstev o programiranju. Nisem več programer, sem zgodovinar!

In tako, to pomeni, da se zgodovinske bitke odvijajo za več parov zapored. Nekega dne v našo pisarno pogleda tajnik iz oddelka in, ko zagleda skupino, razširi oči, pogleda in zapre vrata. Kot so mi kasneje povedali, je bila šokirana, da je TA skupina tako tiho sedela in me tako pozorno poslušala... Eh, enostavno.

Laboratorijska dela
Prve uporabljene informacije so prvi »laboratoriji«. Skupaj je skupina v semestru opravila 10 laboratorijskih vaj. Sprva so naredili najpreprostejšo konzolo a + b, v slednji pa so pisali, sicer konzolne, a precej zanimive aplikacije, kot je na primer izračun vrednosti integrala neke poljubno podane funkcije z eno od treh metod - približno enake naloge so bile na končnem potrdilu - tečajno delo.

To je samo pristop sprejemanja ne je bilo znano. Ves čas študija na inštitutu sem se soočal s tem, da biti pameten in znati opraviti poročila ni isto. To mi sploh ni ustrezalo.

- Fantje, razmišljal sem. Zgradimo »konceptualni« odnos. Če kdo od vas misli, da programiranja ne potrebuje, so vrata tam. Učim te brezplačno. Tukaj želim videti samo radovedne, skrbne in skrbne navdušence. »Vse ostale prosim, naj ne izgubljajo časa vseh,« sem rekel prvi dan laboratorijskega dela. Po tem je 5 ljudi takoj prenehalo obiskovati pouk. To je bilo logično in pričakovano. Z ostalim je bilo mogoče poskusiti narediti nekaj razumljivega.

- ... Ne zanima me gledati, kako nekdo opravlja tvoje delo samo zato, da bi ga opravil. Morda niste programerji, vendar boste ljudje v mojih razredih moram.

Takole je izgledalo:

case отличник

Študent se usede k meni, da odda svoje delo.
— Ste to storili sami?
- Da.
- Kaj je to?
- *odgovarja pravilno*.
*Sprašujem še o nekaj točkah. Pravilni odgovori*
- sprejeto. Super.

case болтун

— Ste to storili sami?
- Da.
- Kaj je to?
- *odgovarja napačno / ne odgovarja*.
*Sprašujem še o nekaj točkah. Enak rezultat*
- Ni sprejeto. NEUSPEŠNO Čakam na ponovitev.

case хорошист

— Ste to storili sami?
- Da.
- Kaj je to?
- *odgovarja pravilno, vendar ne samozavestno, plava*.
*Sprašujem še o nekaj točkah. Enak rezultat*
- sprejeto. Globa.

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

— Ste to storili sami?
- Ne.
Zakaj?
- Težko. Pomagal mi je... *iskreno poimenuje odličnjaka iz skupine*
- Ali ste razumeli?
- Ja, razumel sem skoraj vse.

- Kaj je to?
- *odgovarja pravilno*.
*Sprašujem še o nekaj točkah. Odgovori bolj ali manj pravilni, včasih popolnoma napačni, tudi če je 50/50 pravilen in nepravilen*
- sprejeto. Globa.

Vseh drugih primerov nima smisla opisovati. Da, »dober študent« je lahko nezadovoljen, da študent »C« prejme enako oceno, ki temelji na poštenosti. Potem je vse odvisno od razpoloženja. Ali pa prosim »dobrega študenta«, naj pogleda v tla, ker »zdaj bom padel ščepec modrosti«, nato pa vam povem bistvo pristopa, opišem, kaj je v življenju večja vrednost in razložim. da je bilo za “C” študenta veliko težje opraviti kot za njega, “dobrega študenta.” itd…
... ali pa bom, kot je nekoč moj učitelj, nasproti tega nezadovoljneža v dnevnik narisal zobek in naslednjič osebno namesto njega opravil laboratorijsko nalogo. Samo. Da ne bi "pogasili" svojih tovarišev.

Osnova vsakega programiranja na... ugankah

Оценки
Izobraževalni proces se, tako kot ves svet, dobesedno utaplja v cenah in ocenah.
Tudi študentje smo ljudje, vendar bi bilo po mojem mnenju tudi tu treba "zamajati" "okvir".
Med semestrom je vsak dobil dodatno nalogo. Registrirajte se za Github.com, tja naložite prazen projekt C++, naredite 2 posodobitvi, jih potrdite in potisnite. Za ta dejanja je bilo dodeljenih 15. Da, da, ne 4, ne 5, ampak 15. Trije so ugotovili. To je bilo nekako razumljivo študentovemu psihotipu, potem pa je bil še en primer.
Enkrat so najin par premaknili tako, da je bila zadnja, pa še skozi par oken. Kljub temu je nanj prišlo 15 ljudi. Nisem hotel razlagati nove teme v čast takega junaštva, saj smo čisto pri temah že kar dobro napredovali + naslednja tema ni bila ravno enostavna za utrujene možgane (moje in študentove). Potem sem se odločil govoriti o filozofiji.

— Napovedujem atrakcijo brez primere velikodušnosti. Vsak mi pove, kakšno oceno naj mu dam za današnji par.
Vsi so želeli "A".
"Pomisli, da je že tam," sem rekel. Vsi so bili veseli.
Tišina.
- zakaj nihče ni hotel? 7-ku oz 10-ku?
Vsem so se razširile oči in začeli so se neumno smehljati.
- Boste stavili? V revijo?! - se je zaslišal glas iz zadnje mize.
- Da, enostavno! - sem rekel, - napovedujem blitz o pogojih, kdor odgovori na 10 mojih vprašanj - stavim na 20 v revijo, brez ulova, kdor ne odgovori, je tisti -10 (minus deset).

»Ekipa se je dvignila, začela se je debata,« vsi so pošteno zaslužili ocene. Dva sta se javila prostovoljno. Z manjšimi netočnostmi so se izmenjevali z 10 vprašanji o skladu, čakalni vrsti, konstruktorju, destruktorju, zbiralniku smeti, enkapsulaciji, polimorfizmu, zgoščevalnih funkcijah ...
Vsak je bil izžreban v reviji 20... vsem pa je padla v oči pomembnost revije in ocen. Zdaj mi je žal, da jih nisem vprašal, ali bi želeli s kom »deliti« svojo oceno. Zdi se mi, da bi delili ... Odslej so vsi predajali “laboratorij” z znanjem in poštenjem.

Od tega trenutka se je pojavila druga vrsta laboratorijske dostave:


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

— Ste to storili sami?
- Ne.
Zakaj?
- Težko. Pomagal mi je... *iskreno poimenuje odličnjaka iz skupine*
- Ali ste razumeli?
— Sergej Nikolajevič, po pravici povedano, ničesar ne razumem, zato sem ob vsaki vrstici napisal komentarje — no, to ni moja stvar, traktorist bom
- Kaj je to?
— *se glasi komentar nasproti vrstice*.
- ...
- ...
— Kakšna je razlika med beloruskim MTZ ter Donom 500 in K700?
- ??!.. Prvi je traktor na kolesih, izdelan v Minsku, ki se pogosto uporablja v lahkih in srednjih vrstah kmetijske proizvodnje. Ima tudi majhna kolesa spredaj in velika kolesa zadaj. Don 500 je v bistvu kombajn, K-700 Kirovets pa je sovjetski terenski traktor na kolesih za splošno uporabo, vlečni razred 5.
- sprejeto. Globa (!!!).
- Hvala, Sergej Nikolajevič!!!

V moji domovini je govoriti o TractorA skoraj kot govoriti o SOLID-u.

Genij
V moji skupini je bil Genij. Učenec je že od prve ure zelo zamujal in ni skupaj z vsemi rešil uganke. Nato sem ga prosila, naj za naslednjo uro naredi to, kar sem načrtovala za vse – sam sebi na list papirja napiše, kaj ga zanima, kaj ga zanima. Glede na rezultate je imel "Genius" 2-3 vrstice: nekaj takega kot "Zavedam se nesmiselnosti bivanja" ...

...O, bog, v moji skupini imam drugega Lao Tzuja in Kojimo v eni osebi...
Osnova vsakega programiranja na... ugankah

Na moje presenečenje je v prvih dveh razredih res odlično odgovarjal na vprašanja o izrazih, a učinek ni trajal dolgo. "Genij" je prenehal obiskovati pouk in naslednjič je prišel le opravit prvo laboratorijsko delo, ki ga je uspešno opravil. ni minilo iz objektivnih razlogov. Nato si zaradi absentizma seveda nakopali dolgove, ki kot je menil, Enostavno sem ga bil dolžan šteti tako rekoč »po bratsko«.
Neudeležba na parih + povišan srčni utrip je bila v nasprotju z ustaljenimi načeli obiskovanja mojih predavanj. "Genij" je imel samo 2 izhoda iz situacije - rehabilitirati se (pričakovana pot) ali opustiti pouk in upati na "C", ki ga je dal dekanat, da bi se znebil lenuha.
No, to je "Genij" ... takoj moraš delovati "briljantno". Ta mladenič ni mogel najti nič boljšega kot napisati v splošnem dialogu o VK (kjer sem bil jaz in vsi študentje v tej skupini) jezno tirado s psovkami in žaljivkami, naslovljenimi name.

Hmm... Razočaranje.
Najbolj presenetljivo je bilo to, da se je pred zaključkom kaznovalne akcije s strani vodstva fakultete odločil, da se mi opraviči. Za kaj? - Iskreno ne razumem. Takrat sem bil že dolgo neodvisen od kritike, še posebej od tako odkrito neumne kritike. Moja osebnost ni bila prizadeta, a procesi so procesi in kot učiteljica si nisem mogla kaj, da tega ne bi poročala. Kot se je izkazalo, se je proti njemu že med študijem nabralo toliko pritožb, da se je ta primer izkazal za zadnjega. Bil je izključen. Iz zadnjega letnika poklicne šole.
Morda me že dolgo opazuje skozi cilj ostrostrelke, ampak, če sem iskren, mi je vseeno.
Eh, genij, brezsrčen si...

Epilog
Zame osebno je bila izkušnja poučevanja ena najbolj razsvetljujočih. To mi je pomagalo utrditi temeljno znanje programiranja po študiju na inštitutu. Počutil sem se samozavestnega glede izbrane specialnosti (nabor razpoložljivih specialnosti). Posebej pomembno je dejstvo, da me je »naj porednejša skupina« prežela s spoštovanjem in prijaznostjo - to je veliko vredno. Uspelo mi je najti pot do njihovih notranjih inovatorjev, poskušal sem vnesti realnost, ne pa teh stereotipnih prioritet. Škoda, da nismo prišli do "uganke" pri kodiranju - ko bi moral vsak narediti del kode, s povezovanjem vseh delov v enega pa bi dobili velik delovni program ...
Upam, da bo nekega dne to občutil vsak od njih... a za zdaj so spodaj posnetki zaslona z ocenami več študentov po 2 letih.

Osnova vsakega programiranja na... ugankah

Prezgodaj je sklepati o uspešnosti kariere programerja za katerega koli od njih, saj zdaj večina te skupine študira na univerzi. Čas bo pokazal svoje.

Upam, da je bil članek koristen. Hvala za vašo pozornost!
Ustvarjalni uspeh in pozitivno razpoloženje, kolegi!

Vir: www.habr.com

Dodaj komentar