Osnova svakog programiranja na... slagalicama

Pozdrav, stanovnici Khabrovska!

U ovom članku želim da govorim o svom iskustvu kao profesor programiranja C++ na koledžu na tehničkom univerzitetu. Bilo je to iskustvo jednom u životu koje me je mnogo naučilo. Kada su u pitanju zanimljive činjenice iz vaše lične prošlosti, ovaj odlomak iz života jedan je od prvih koji vam pada na pamet.
Idi.

Prvo, malo o sebi.
Godine 2016. diplomirao sam na institutu sa odličnim uspehom na smeru Informaciona bezbednost automatizovanih sistema. Tokom studija više puta sam mogao da realizujem svoj potencijal u pisanju naučnih članaka, učešću na konkursima i grantovima. 2015. godine imao sam priliku da postanem pobednik Sveruskog takmičenja mladih naučnika „UMNIK“. 2016. godine, prije završetka studija, već je bio zaposlen u velikoj gradskoj organizaciji kao “Specijalac za sigurnost informacija, kriptografiju i šifriranje”.
Ukratko, ovako nešto. Možete zamisliti da sam još uvijek imao ideju o programiranju.

I evo je 2017. Postdiplomske studije. Zamolili su me da predajem C++ na koledžu jedan semestar, za šta su mi obećani dobri bonusi da olakšam teret postdiplomca i ništa više.

Da budem iskren, bio sam iskreno zainteresovan da se okušam u ovom kredu.

Prvi par
septembra. Prva sedmica škole. Dolazili su mi studenti. "Najnestašnija grupa" - tako su se zvali.
23 osobe. "Programeri".

Očekivano, prvo sam se predstavio. Diskretno sam im ispričao sadržaj dijela “Prvo, malo o sebi”...
Onda je počela strašna stvar. Na pitanje "Šta možete učiniti?" studenti (od sada ćemo ih tako zvati) odgovorili su da mogu malo više nego ništa (pa, to je značilo da neki od njih znaju kako izgleda MS VS i mogu napraviti projekat „Zdravo svijete“). .. Programeri. Poslednji kurs…

Nadalje, detaljno su objasnili, "u bojama", da ih ništa nisu učili i da su generalno razočarani programiranjem...

Skoro svi dani do mog sledećeg časa su protekli ovako:
Osnova svakog programiranja na... slagalicama

... ali dan ranije se javila ideja da se uloži napor u ispravljanje postojećeg stanja u glavama i svijesti ovih mladih ljudi. A onda se "Ostap zaneo."

Uvod u programiranje
Za sledeću lekciju sam doneo... slagalicu.
Da da. Puzzle. "Kako izdresirati zmaja." Pravila su bila jednostavna. Grupa je bila podijeljena u 3 tima. Svaki tim je sastavio svoj dio. Neki su šuma, drugi su zemlja, treći su zmaj u centru slike. Dok je cijeli par slagao slagalicu, ja sam im to rekao sastavljanje slagalice je takođe programiranjeda programeri često koriste tuđi kod, da svaki projekat ima nekoliko različitih timova, funkcija, modula...
Postepeno su se procesu uključivali i najletargičniji studenti.
Kada sam završio sa utrljavanjem ideje o programiranju u poslovne koncepte, procese i... zagonetke, došlo je vrijeme da uspostavim pravila obuke.
Za svaki čas svaki učenik je morao da zapiše 10 pojmova iz IT-a u svesku. Bilo koji. Svako ima svoje. Poenta je da sam uzeo jednu učeničku svesku i našao među svim pojmovima maksimalno primenjen i pitao drugog studenta o njima. Kada drugi učenik kaže: „Nisam zapisao taj termin“, nije bilo kazne (zbog zdravog razuma), ali je taj učenik morao da zapiše „nedostajuće“ pojmove (kao i svi ostali koji ih nisu imali) i pronađite njihova značenja prema sljedećem zanimanju.

To smo i uradili. Svaki čas je počinjao veselim slučajem u odnosu na dvoje ili troje učenika. Momci su imali entuzijazam za ovaj proces.

Teme lekcije
Pri započinjanju obuke veoma je važno da studentima pružite dobru literaturu. Po mom mišljenju, idealna knjiga je bila:
Osnova svakog programiranja na... slagalicama

Svojevremeno sam morao da ga krišom čitam grleći Microsoft Visual Studio. Tada sam mogao razumjeti programiranje gotovo od nule. Savršena opcija.

Skromno odete do učenika i kažete: „Da biste postali programeri, samo trebate pročitati i isprobati sve što je u ovoj knjizi“, i bacite knjigu na sto. Glavna stvar je da ne pobrkate knjige u svom rancu...

Prije svake teme svakako sam se morao temeljno pripremiti. Čitao sam istog Laforeta i nekoliko drugih zanimljivih izvora sa interneta.
Objašnjenje je krenulo gotovo od nule. Štaviše, bilo je potrebno razumjeti gdje je osnovno znanje učenika deduktivno prekinuto.
Nizovi -> Rad sa memorijom (konstruktori) -> Veze -> Kako memorija radi -> Diskovi -> Šta je fizički disk -> Binarni prikaz podataka...
Osnova svakog programiranja na... slagalicama

Vrlo snažan crash test znanja o osnovnim činjenicama o programiranju. Nisam više programer, ja sam istoričar!

Dakle, to znači da se istorijske bitke vode za nekoliko parova zaredom. Jednog dana u našu kancelariju zaviri sekretar iz odjela i, ugledavši grupu, raširi oči, proviri i zatvori vrata. Kako su mi kasnije rekli, bila je šokirana što je OVA grupa tako tiho sjedila i slušala me tako pažljivo... Eh, polako.

Laboratorijski radovi
Prva primijenjena informacija je prva “laboratorija”. Grupa je u toku semestra odradila ukupno 10 laboratorijskih radova. U početku su napravili najjednostavniju konzolu a + b, a u potonjem su napisali, doduše konzolne, ali prilično zanimljive aplikacije, poput izračunavanja vrijednosti integrala neke proizvoljno zadane funkcije pomoću jedne od tri metode - približno isti zadaci su bili i na završnoj certifikaciji - predmetnom radu.

To je samo pristup prihvatanja ne bio poznat. Tokom studija na institutu, bio sam suočen s činjenicom da biti pametan i moći položiti izvještaje nije isto. Ovo mi nikako nije odgovaralo.

- Ljudi, razmišljao sam. Hajde da izgradimo “konceptualni” odnos. Ako neko od vas misli da vam ne treba programiranje, vrata su tu. Učim te besplatno. Ovdje želim vidjeti samo radoznale, brižne i brižne entuzijaste. “Molim sve ostale da ne gube vrijeme svima”, rekao sam prvog dana rada u laboratoriji. Nakon toga, 5 osoba je odmah prestalo da pohađa nastavu. Ovo je bilo logično i očekivano. Bilo je moguće pokušati učiniti nešto razumljivo sa ostatkom.

- ... Nisam zainteresovan da gledam kako neko radi tvoj posao samo da bi prošao. Možda niste programeri, ali ćete biti ljudi na mojim časovima morati.

Izgledalo je ovako:

case отличник

Student sjeda sa mnom da preda svoj rad.
— Jesi li to sam uradio?
- Da.
- Šta je ovo?
- *odgovara tačno*.
*Pitam za još par tačaka. Tačan odgovor*
- prihvaćeno. Odlično.

case болтун

— Jesi li to sam uradio?
- Da.
- Šta je ovo?
- *odgovara pogrešno / ne odgovara*.
*Pitam za još par tačaka. Isti rezultat*
- Nije prihvaćeno. FAILED Čekam ponovni ispit.

case хорошист

— Jesi li to sam uradio?
- Da.
- Šta je ovo?
- *odgovara tačno, ali ne samouvereno, pliva*.
*Pitam za još par tačaka. Isti rezultat*
- prihvaćeno. U redu.

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

— Jesi li to sam uradio?
- Ne.
- Zašto?
- Teško. Pomogao mi je... *iskreno imenuje jednog odličnog učenika iz grupe*
- Jesi li razumeo?
- Da, razumeo sam skoro sve.

- Šta je ovo?
- *odgovara tačno*.
*Pitam za još par tačaka. Odgovori manje-više tačno, ponekad potpuno pogrešni, čak i ako su 50/50 tačni i netačni*
- prihvaćeno. U redu.

Nema smisla opisivati ​​sve druge slučajeve. Da, „dobar učenik“ može biti nezadovoljan što učenik „C“ dobije istu ocenu, na osnovu poštenja. Onda sve zavisi od raspoloženja. Ili zamolim „dobrog učenika“ da pogleda u pod, jer „sad ću baciti prstohvat mudrosti“, a onda ću vam reći suštinu pristupa, opisati šta je u životu veće vrednosti i objasniti da je učeniku "C" bilo mnogo teže da položi nego njemu, "dobrom studentu".", itd...
... ili ću, kao što je to jednom uradio moj učitelj, nacrtati mali zub u kutiji za dnevnik naspram ove nezadovoljne osobe i sljedeći put ću lično za njega završiti laboratorijski rad. Samo. Da ne bi "ugasili" svoje drugove.

Osnova svakog programiranja na... slagalicama

Evaluacije
Obrazovni proces, kao i cijeli svijet, bukvalno se utapa u cijenama i ocjenama.
I studenti su ljudi, međutim, po mom mišljenju, i ovdje je trebalo “protresti” “okvir”.
Tokom semestra svi su dobili bonus zadatak. Registrujte se za Github.com, otpremite prazan C++ projekat tamo, napravite 2 ažuriranja, urezujte ih i gurnite ih. Za ove akcije je bilo dodeljeno 15. Da, da, ne 4, ne 5, nego 15. Trojica su shvatila. Ovo je bilo nekako razumljivo studentovom psihotipu, ali onda je bio još jedan slučaj.
Jednom je naš par premješten tako da je ona bila posljednja, i to kroz par prozora. Međutim, na njega je ipak došlo 15 ljudi. Nisam htio objašnjavati novu temu u čast takvog junaštva, jer smo već sasvim dobro napredovali samo na temama + sljedeća tema nije bila baš jednostavna za umorne mozgove (moje i studente). Onda sam odlučio da pričam o filozofiji.

— Najavljujem atrakciju neviđene velikodušnosti. Svi mi govore koju ocenu da mu dam za današnji par.
Svi su htjeli "A".
"Razmatrajte to već tamo", rekao sam. Svi su bili sretni.
Tišina.
- zašto niko nije hteo? 7-ku ili 10-ku?
Svi su se razrogačili i počeli su se glupo smiješiti.
- Hoćeš li se kladiti? U časopis?! - čuo se glas sa zadnjeg stola.
- Da Lako! - Rekao sam, - najavljujem blitz po uslovima, ko odgovori na 10 mojih pitanja - kladim se dana 20 časopisu, bez ulova, ko ne odgovori taj je -10 (minus deset).

"Ekipa se oporavila, počela je debata", pošteno su svi zaradili ocjene. Dvojica su se prijavila. Uz manje nepreciznosti, izmjenjivali su se sa 10 pitanja o steku, redu čekanja, konstruktoru, destruktoru, sakupljaču smeća, enkapsulaciji, polimorfizmu, hash funkcijama...
Svaki je nacrtan u časopisu 20...ali važnost časopisa i ocjena svima je pala u oči. Sada mi je žao što nisam pitao da li bi željeli s nekim “podijeliti” svoju ocjenu. Čini mi se da bi podijelili... Od sada su svi predavali “laboratoriju” znanjem i poštenjem.

Od ovog trenutka pojavila se još jedna vrsta laboratorijske isporuke:


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

— Jesi li to sam uradio?
- Ne.
- Zašto?
- Teško. Pomogao mi je... *iskreno imenuje jednog odličnog učenika iz grupe*
- Jesi li razumeo?
— Sergej Nikolajeviču, iskreno, ništa ne razumem, pa sam napisao komentare pored svake linije — pa, to nije moja stvar, ja ću biti traktorista
- Šta je ovo?
— *čita komentar nasuprot redu*.
- ...
- ...
— Koja je razlika između Bjeloruskog MTZ-a i Don 500 i K700?
- ??!.. Prvi je traktor na točkovima proizveden u Minsku, koji se često koristi u lakim i srednjim vrstama poljoprivredne proizvodnje. Takođe ima male točkove napred i velike točkove pozadi. Don 500 je u osnovi kombajn, a K-700 Kirovets je sovjetski terenski traktor na točkovima opšte namene, vučne klase 5.
- prihvaćeno. Fino (!!!).
- Hvala Sergeju Nikolajeviču!!!

U mojoj domovini, pričati o TractorA je skoro kao da ovdje pričam o SOLID-u.

Genije
U mojoj grupi je bio genije. Učenik je zakasnio već na prvom času i nije zajedno sa ostalima riješio slagalicu. Onda sam ga zamolio da uradi ono što sam svima planirao za sledeću lekciju - napiše sebi na komad papira šta ga zanima, šta ga zanima. Prema rezultatima, “Genije” je imao 2-3 stiha: nešto poput “Shvatam uzaludnost postojanja”...

...Bože, u mojoj grupi imam drugog Lao Cea i Kojimu u jednoj osobi...
Osnova svakog programiranja na... slagalicama

Na moje iznenađenje, u prva dva časa je zaista sjajno odgovarao na pitanja o pojmovima, ali efekat nije dugo trajao. „Genije“ je prestao da pohađa nastavu i sledeći put je došao samo da položi prvi laboratorijski rad, koji je uspešno završio. nije prošao iz objektivnih razloga. Tada je, zbog izostanka, prirodno nagomilao dugove, koji su, kako je vjerovao, Jednostavno sam bio dužan da ga ubrojim, da tako kažem, "po bratski".
Nepohađanje parova + povećan broj otkucaja srca bilo je u suprotnosti sa utvrđenim principima pohađanja mojih časova. “Genije” je imao samo 2 izlaza iz situacije – da se rehabilituje (očekivani put) ili odustane od nastave i nada se “C” dekanata kako bi se riješio ljenčare.
Pa, ovo je "Genije"... morate odmah "briljantno" glumiti. Ovaj mladić nije mogao da nađe ništa bolje nego da u opštem dijalogu na VK (gde smo bili ja i svi učenici ove grupe) napiše ljutitu tiradu sa psovkama i uvredama upućenim meni.

Hmm... Razočarenje.
Ono što je najviše upadalo u oči je to što je prije završetka kaznene akcije od strane uprave fakulteta odlučio da mi se izvini. Za što? - Iskreno ne razumem. U to vrijeme sam dugo bio nezavisan od kritike, posebno takve iskreno glupe kritike. Na moju ličnost to nije uticalo, ali procesi su procesi i ja kao nastavnik nisam mogao a da to ne prijavim. Kako se ispostavilo, već se tokom studija na njega nakupilo toliko pritužbi da je ovaj slučaj bio posljednji. On je izbačen. Od zadnje godine stručne škole.
Možda me već dugo posmatra kroz prizor snajperske puške, ali, da budem iskren, nije me briga.
Eh, genije, ti si bezdušan...

Epilog
Za mene lično, nastavno iskustvo je bilo jedno od najprosvetljujućih. To mi je pomoglo da konsolidujem svoja osnovna znanja o programiranju nakon studija na institutu. Osjećao sam samopouzdanje u izabranoj specijalnosti (ponuda dostupnih specijaliteta). Od posebnog značaja je činjenica da me je „najnestašnija grupa“ prožela poštovanjem i druželjubljem – ovo mnogo vredi. Uspio sam da pronađem put do njihovih unutrašnjih inovatora, pokušao sam da ubacim stvarnost, a ne ove stereotipne prioritete. Šteta što nismo došli do "zagonetke" u kodiranju - kada bi svi morali da rade dio koda, a spajanjem svih dijelova u jedan, dobili bismo veliki radni program...
Nadam se da će jednog dana svako od njih osjetiti ovo... ali za sada, ispod su screenshotovi sa recenzijama nekoliko studenata nakon 2 godine.

Osnova svakog programiranja na... slagalicama

Prerano je donositi zaključke o uspjehu karijere programera za bilo koga od njih, jer sada većina ove grupe studira na fakultetu. Vrijeme će pokazati.

Nadam se da je članak bio koristan. Hvala vam na pažnji!
Kreativni uspjeh i pozitivno raspoloženje, kolege!

izvor: www.habr.com

Dodajte komentar