Osnova svakog programiranja na... zagonetkama

Pozdrav, stanovnici Khabrovsk!

U ovom članku želim govoriti o svom iskustvu kao nastavnik C++ programiranja na koledžu tehničkog sveučilišta. Bilo je to iskustvo koje se događa jednom u životu koje me mnogo naučilo. Kada je riječ o zanimljivostima iz vaše osobne prošlosti, ovaj odlomak iz života jedan je od prvih koji vam pada na pamet.
Ići.

Prvo malo o sebi.
Godine 2016. diplomirao sam na institutu s počastima s diplomom iz informacijske sigurnosti automatiziranih sustava. Tijekom studija više puta sam mogao ostvariti svoj potencijal u pisanju znanstvenih članaka, sudjelovanju na natječajima i stipendijama. Godine 2015. imao sam priliku postati pobjednik Sveruskog natjecanja mladih znanstvenika „UMNIK“. 2016. godine, prije završetka studija, već je bio zaposlen u velikoj organizaciji u gradu kao “Specijalist za informacijsku sigurnost, kriptografiju i enkripciju”.
Ukratko, ovako nešto. Možete zamisliti da sam još uvijek imao ideju o programiranju.

I evo 2017. Poslijediplomski studij. Zamolili su me da jedan semestar predajem C++ na fakultetu, za što su mi obećani dobri bonusi da olakšam teret studenta diplomskog studija i ništa više.

Da budem iskren, bio sam iskreno zainteresiran okušati se u ovom kredu.

Prvi par
Rujan. Prvi tjedan škole. Dolazili su mi studenti. "Najzločestija grupa" - tako su ih zvali.
23 osobe. "Programeri".

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

Nadalje, detaljno su, “u bojama”, objasnili da ih ništa nisu naučili i da su općenito razočarani programiranjem...

Gotovo svi dani do moje sljedeće lekcije tekli su ovako:
Osnova svakog programiranja na... zagonetkama

... ali dan ranije javila se ideja da se uloži napor da se u glavama i svijesti ovih mladih ljudi popravi postojeće stanje. A onda se “Ostap zanio”.

Uvod u programiranje
Za sljedeću lekciju donio sam... zagonetku.
Da da. Puzzle. "Kako izdresirati zmaja." Pravila su bila jednostavna. Skupina je bila podijeljena u 3 ekipe. Svaki tim je sastavio svoj dio. Jedni su šuma, drugi zemlja, treći zmaj u središtu slike. Dok je cijeli par slagao slagalicu, ja sam im to rekla slaganje slagalice također je programiranjeda programeri često koriste tuđi kod, da svaki projekt ima nekoliko različitih timova, značajki, modula...
Postupno su se u taj proces uključili i najletargičniji studenti.
Kada sam završio utrljavanje ideje programiranja u poslovne koncepte, procese i... zagonetke, došlo je vrijeme da uspostavim pravila obuke.
Svaki je učenik za svaku lekciju u bilježnicu trebao napisati 10 pojmova iz informatike. Bilo koje. Svatko ima svoje. Poanta je da sam uzeo jednu đačku bilježnicu i našao među svim pojmovima maksimalno primijenjena i pitao drugog učenika o njima. Kada drugi učenik kaže: "Nisam zapisao taj pojam", nije bilo kazne (zbog zdravog razuma), već je taj učenik morao zapisati pojmove koji "nedostaju" (kao i svi ostali koji ih nisu imali) a do sljedećeg pronaći njihova značenja.zanimanje.

To smo i učinili. Svaka lekcija započinjala je veselom nasumičnošću u odnosu na dva ili tri učenika. Dečki su imali entuzijazam za ovaj proces.

Teme lekcija
Na početku obuke vrlo je važno studentima osigurati dobru literaturu. Po mom mišljenju, idealna knjiga je bila:
Osnova svakog programiranja na... zagonetkama

Svojedobno sam ga krišom morao čitati 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 stol. Glavna stvar je ne brkati knjige u ruksaku ...

Prije svake teme svakako sam se morala temeljito pripremiti. Čitao sam isti Laforet i nekoliko drugih zanimljivih izvora s interneta.
Objašnjenje je išlo gotovo od nule. Štoviše, bilo je potrebno razumjeti gdje je osnovno znanje učenika deduktivno odsječeno.
Nizovi -> Rad s memorijom (konstruktori) -> Linkovi -> Kako radi memorija -> Pogoni -> Što je fizički pogon -> Binarna reprezentacija podataka...
Osnova svakog programiranja na... zagonetkama

Vrlo jak crash test poznavanja temeljnih činjenica o programiranju. Nisam više programer, ja sam povjesničar!

I tako, to znači da se povijesne bitke odvijaju za nekoliko parova zaredom. Jednog dana u našu kancelariju uleti tajnik iz odjela i, ugledavši skupinu, razrogači oči, viri i zatvara vrata. Kako su mi kasnije rekli, bila je šokirana što je OVA grupa tako tiho sjedila i tako me pažljivo slušala... Eh, lako.

Laboratorijski radovi
Prva primijenjena informacija je prvi “laboratorij”. Ukupno je grupa tijekom semestra položila 10 laboratorijskih radova. Isprva 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 bili su na završnoj ovjeri – tečaju.

To je samo pristup prihvaćanja ne bilo poznato. Tijekom studija na institutu susreo sam se s činjenicom da biti pametan i moći položiti referate nije isto. Ovo mi nikako nije odgovaralo.

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

- ... Ne zanima me gledati kako netko radi tvoj posao samo da bi prošao. Možda nećete biti programeri, ali ćete biti ljudi na mojim predavanjima morati.

Izgledalo je ovako:

case отличник

Student sjeda sa mnom da preda svoj rad.
— Jeste li to sami učinili?
- Da.
- Što je to?
- *odgovara točno*.
*Pitam o još nekoliko točaka. odgovara točno*
- prihvaćeno. Sjajno.

case болтун

— Jeste li to sami učinili?
- Da.
- Što je to?
- *netočno odgovara / ne odgovara*.
*Pitam o još nekoliko točaka. Isti rezultat*
- Nije prihvaćeno. NEUSPJEH Čekam ponavljanje.

case хорошист

— Jeste li to sami učinili?
- Da.
- Što je to?
- *odgovara točno, ali ne samopouzdano, pliva*.
*Pitam o još nekoliko točaka. Isti rezultat*
- prihvaćeno. Fino.

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

— Jeste li to sami učinili?
- Ne.
- Zašto?
- Teško. Pomogao mi je... *iskreno imenuje odlikaša iz grupe*
- Jeste li razumjeli?
- Da, razumio sam gotovo sve.

- Što je to?
- *odgovara točno*.
*Pitam o još nekoliko točaka. Odgovori više ili manje točni, ponekad potpuno krivi, čak i ako je 50/50 točan i netočan*
- prihvaćeno. Fino.

Sve ostale slučajeve nema smisla opisivati. Da, “dobar učenik” može biti nezadovoljan što “C” student dobiva istu ocjenu, na temelju poštenja. Onda sve ovisi o raspoloženju. Ili zamolim “dobrog učenika” da gleda u pod, jer “sad ću baciti prstohvat mudrosti”, a onda ću vam reći bit pristupa, opisati što u životu ima veću vrijednost i objasniti da je “C” studentu bilo puno teže proći nego njemu, “dobrom studentu.” itd…
... ili ću, kao nekad moj učitelj, nacrtati zubić u dnevniku nasuprot tog nezadovoljnika i sljedeći put ću osobno za njega odraditi laboratorijski rad. Samo. Kako ne bi “ugasili” svoje drugove.

Osnova svakog programiranja na... zagonetkama

Оценки
Obrazovni proces, kao i cijeli svijet, doslovno se utapa u cjenicima i ocjenama.
I studenti su ljudi, međutim, po meni je i tu trebalo “prodrmati” “okvir”.
Tijekom semestra svi su dobili bonus zadatak. Registrirajte se za github.com, učitajte prazan C++ projekt tamo, napravite 2 ažuriranja, izvršite ih i gurnite. Za ove akcije dodijeljeno je 15. Da, da, ne 4, ne 5, nego 15. Trojica su to shvatila. To je nekako bilo razumljivo psihotipu studenta, ali dogodio se još jedan slučaj.
Jednom je naš par preselio tako da je ona bila zadnja, a i kroz par prozora. Ipak, 15 ljudi je ipak došlo do njega. Nisam htio objašnjavati novu temu u čast takvog herojstva, jer smo čisto na temama već dosta napredovali + sljedeća tema nije bila baš jednostavna za umorne mozgove (moje i učeničke). Tada sam odlučio govoriti o filozofiji.

— Najavljujem atrakciju neviđene velikodušnosti. Svi mi govore koju ocjenu da mu dam za današnju dvojku.
Svi su htjeli peticu.
"Smatraj da je već tamo", rekao sam. Svi su bili sretni.
Tišina.
- zašto nitko nije htio? 7-ku ili 10-ku?
Svi su se razrogačili i počeli se glupavo smješkati.
- Hoćete li se kladiti? U časopis?! - začuo se glas sa zadnje klupe.
- Da, lagano! - rekoh, - objavljujem blitz o uvjetima, tko mi odgovori na 10 pitanja - kladim se dana 20 u časopis, bez kvake, tko se ne javi taj je -10 (minus deset).

“Ekipa se digla, počela je rasprava”, svi su pošteno zaradili bodove. Dvojica su se dobrovoljno javila. Uz sitne nedorečenosti, izmjenjivali su se s 10 pitanja o stogu, 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 žele li s nekim "podijeliti" svoju procjenu. Čini mi se da bi podijelili... Od sada su svi znanjem i poštenjem predali “laboratorij”.

Od ovog trenutka pojavila se druga vrsta laboratorijske isporuke:


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

— Jeste li to sami učinili?
- Ne.
- Zašto?
- Teško. Pomogao mi je... *iskreno imenuje odlikaša iz grupe*
- Jeste li razumjeli?
— Sergej Nikolajevič, iskreno, ništa ne razumijem, pa sam napisao komentare pored svakog retka — dobro, to nije moja stvar, ja ću biti vozač traktora
- Što je to?
— *čita komentar nasuprot retka*.
- ...
- ...
— Koja je razlika između Bjelorusije MTZ i Dona 500 i K700?
- ??!.. Prvi je traktor na kotačima proizveden u Minsku, koji se često koristi u lakim i srednjim vrstama poljoprivredne proizvodnje. Također ima male kotače sprijeda i velike kotače straga. Don 500 je u osnovi žetelica, a K-700 Kirovets je sovjetski terenski traktor na kotačima opće namjene, vučne klase 5.
- prihvaćeno. Dobro (!!!).
- Hvala, Sergej Nikolajevič!!!

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

genije
U mojoj grupi je bio jedan Genijalac. Učenik je jako kasnio već na prvi sat i nije riješio slagalicu zajedno sa svima. Zatim sam ga zamolio da za sljedeći sat napravi ono što sam planirao za sve – napiše sebi na papir ono što ga zanima, što ga zanima. Prema rezultatima, “Genije” je imala 2-3 stiha: nešto poput “Shvaćam uzaludnost postojanja”...

...O, Bože, u mojoj grupi imam drugog Lao Tzua i Kojimu u jednoj osobi...
Osnova svakog programiranja na... zagonetkama

Na moje iznenađenje, na prva dva sata je stvarno sjajno odgovarao na pitanja o pojmovima, ali učinak nije dugo trajao. “Genije” je prestao pohađati nastavu i sljedeći put je došao samo da položi prvi laboratorijski rad, koji je uspješno završio. nije prošao iz objektivnih razloga. Tada je zbog izostanaka naravno nagomilao dugove, koje je, kako je smatrao, Bio sam ga jednostavno dužan prebrojati, da tako kažem, “bratski”.
Nepohađanje parova + ubrzani otkucaji srca bilo je protivno ustaljenim principima pohađanja moje nastave. "Genije" je imao samo 2 izlaza iz situacije - rehabilitirati se (očekivani put) ili odustati od nastave i nadati se "C" koju je dao dekanat kako bi se riješio ljenjivca.
Pa ovo je “Genije”... morate odmah glumiti “briljantno”. Ovaj mladić nije mogao pronaći ništa bolje nego da u općem dijalogu na VK (gdje smo bili ja i svi studenti iz ove grupe) napiše ljutitu tiradu s psovkama i uvredama upućenu meni.

Hmm... Razočaranje.
Ono što je najviše zapanjilo jest da mi se prije završetka kaznene akcije uprave fakulteta odlučio ispričati. Za što? - Iskreno ne razumijem. U to sam vrijeme već dugo bio neovisan o kritikama, pogotovo o takvim iskreno glupim kritikama. To nije utjecalo na moju osobnost, ali procesi su procesi, a kao učitelj nisam mogao ne prijaviti ovo. Kako se pokazalo, toliko se pritužbi protiv njega već nakupilo tijekom studija da se ovaj slučaj pokazao posljednjim. Bio je protjeran. Od zadnje godine strukovne škole.
Možda me već dugo promatra kroz nišan snajperske puške, ali, iskreno, nije me briga.
Eh, genije, ti si bez srca...

Epilog
Za mene osobno iskustvo podučavanja bilo je jedno od najprosvjetljujućih. To mi je pomoglo da učvrstim svoje temeljno znanje programiranja nakon studija na institutu. Osjećao sam samopouzdanje u svojoj odabranoj specijalnosti (raspon dostupnih specijalnosti). Od posebne je važnosti činjenica da me je “najzločestija grupa” prožela poštovanjem i prijateljstvom – to puno vrijedi. Uspio sam pronaći put do njihovih unutarnjih inovatora, pokušao usaditi realnost, a ne te stereotipne prioritete. Šteta što nismo došli do "slagalice" u kodiranju - kada bi svatko morao raditi dio koda, a povezivanjem svih dijelova u jedan dobili bismo veliki radni program...
Nadam se da će jednog dana svatko od njih to osjetiti... ali za sada, ispod su slike zaslona s recenzijama nekoliko učenika nakon 2 godine.

Osnova svakog programiranja na... zagonetkama

Prerano je donositi zaključke o uspjehu programerske karijere za bilo koga od njih, jer sada većina ove skupine studira na sveučilištu. Vrijeme će pokazati.

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

Izvor: www.habr.com

Dodajte komentar