Igasuguse programmeerimise alus... pusledele

Tervitused, Habrovski elanikud!

Selles artiklis tahan rääkida oma kogemusest C++ programmeerimise õpetajana tehnikaülikooli kolledžis. See oli kord elus kogemus, mis õpetas mulle palju. Kui rääkida huvitavatest faktidest teie isiklikust minevikust, siis see lõik elust on üks esimesi, mis meelde tuleb.
Mine.

Esiteks natuke endast.
2016. aastal lõpetasin instituudi kiitusega automatiseeritud süsteemide infoturbe erialal. Õpingute jooksul sain korduvalt realiseerida oma potentsiaali teadusartiklite kirjutamisel, konkurssidel ja grantidel osalemisel. 2015. aastal avanes mul võimalus saada ülevenemaalise noorteadlaste konkursi “UMNIK” võitjaks. 2016. aastal, enne õpingute lõpetamist, töötas ta juba ühes linna suures organisatsioonis infoturbe, krüptograafia ja krüpteerimise spetsialistina.
Ühesõnaga midagi sellist. Võite ette kujutada, et mul oli programmeerimisest veel aimu.

Ja käes on 2017. Aspirantuur. Mind paluti kolledžis semester C++ õpetada, mille eest lubati häid lisatasusid magistrandi koormuse leevendamiseks ja ei midagi enamat.

Ausalt öeldes tundsin siirast huvi ennast selles kreedos proovile panna.

Esimene paar
septembril. Esimene koolinädal. Minu juurde tulid õpilased. "Kõige üleannetuim rühm" - nii neid kutsuti.
23 inimest. "Programmeerijad".

Nagu oodatud, tutvustasin kõigepealt ennast. Rääkisin neile diskreetselt ära osa “Kõigepealt natuke endast” sisu...
Siis algas kohutav asi. Küsimusele "Mida saate teha?" õpilased (nimetame neid edaspidi nii) vastasid, et nad võiksid teha natuke rohkem kui mitte midagi (noh, see tähendas, et mõned neist teadsid, milline MS VS välja näeb ja oskasid luua “Tere maailm” projekti). .. Programmeerijad. Viimane kursus…

Lisaks selgitasid nad üksikasjalikult, “värviliselt”, et neile pole midagi õpetatud ja et üldiselt olid nad programmeerimises pettunud...

Peaaegu kõik päevad kuni järgmise klassini läksid nii:
Igasuguse programmeerimise alus... pusledele

... aga eelmisel päeval tekkis mõte pingutada selle nimel, et parandada nende noorte inimeste meeltes ja teadvuses valitsevat olukorda. Ja siis "Ostap läks ära."

Sissejuhatus programmeerimisse
Järgmiseks tunniks tõin... pusle.
Jah Jah. Pusle. "Kuidas treenida oma draakonit." Reeglid olid lihtsad. Rühm jagati 3 võistkonda. Iga meeskond komplekteeris oma osa. Mõned on mets, teised on maa, teised on draakon pildi keskel. Sel ajal, kui terve paar puslet kokku pani, ütlesin neile seda pusle kokkupanek on ka programmeerimineet programmeerijad kasutavad sageli kellegi teise koodi, et igal projektil on mitu erinevat meeskonda, funktsiooni, moodulit...
Järk-järgult liitusid protsessiga ka kõige loidumad õpilased.
Kui olin lõpetanud programmeerimise idee ärikontseptsioonidesse, protsessidesse ja... mõistatustesse hõõrumise, oli aeg kehtestada koolituse reeglid.
Iga tunni jaoks pidi iga õpilane märkmikku üles kirjutama 10 terminit IT-st. Ükskõik milline. Igaühel on oma. Asi on selles, et võtsin ühe õpilase märkmiku ja leidsin kõigi terminite hulgast maksimaalselt rakendatud ja küsis nende kohta teiselt õpilaselt. Kui mõni teine ​​õpilane ütleb: "Ma ei kirjutanud seda terminit üles", siis karistust (terve mõistuse tõttu) ei määratud, kuid see õpilane pidi "puuduvad" terminid üles kirjutama (nagu kõik teised, kellel neid ei olnud). ja leida nende tähendused järgmise järgi.amet.

Seda me tegimegi. Iga tund algas kahe-kolme õpilase suhtes rõõmsa juhuslikkusega. Poisid olid selle protsessi vastu entusiastlikud.

Tunni teemad
Koolituse alustamisel on väga oluline anda õpilastele hea kirjandus. Minu arvates oli ideaalne raamat:
Igasuguse programmeerimise alus... pusledele

Kunagi pidin seda Microsoft Visual Studiot kallistades vargsi lugema. Siis sain programmeerimisest aru peaaegu nullist. Ideaalne variant.

Lähete tagasihoidlikult õpilaste juurde ja ütlete: "Programmeerijaks saamiseks peate lihtsalt lugema ja proovima kõike, mis selles raamatus on" ning viskate raamatu lauale. Peaasi, et mitte segamini ajada seljakotis olevaid raamatuid...

Enne iga teemat pidin kindlasti põhjalikult valmistuma. Lugesin sedasama Laforet ja mitmeid teisi huvitavaid allikaid internetist.
Seletus läks peaaegu nullist. Pealegi oli vaja aru saada, kus õpilaste algteadmised deduktiivselt katkesid.
Massiivid -> Töö mäluga (konstruktorid) -> Lingid -> Kuidas mälu töötab -> Draivid -> Mis on füüsiline draiv -> Andmete binaarne esitus...
Igasuguse programmeerimise alus... pusledele

Väga tugev kokkupõrketest programmeerimise põhifaktide tundmiseks. Ma ei ole enam programmeerija, olen ajaloolane!

Ja see tähendab, et ajaloolised lahingud toimuvad järjest mitme paari jaoks. Ühel päeval vaatab osakonna sekretär meie kabinetti sisse ja gruppi nähes teeb silmad suureks, piilub ja sulgeb ukse. Nagu mulle hiljem räägiti, oli ta šokeeritud, et SEE seltskond nii vaikselt istus ja mind nii tähelepanelikult kuulas... Eh, lihtne.

Laboratoorsed tööd
Esimene rakendatud teave on esimesed "laborid". Kokku sooritas rühm semestri jooksul 10 laboritööd. Alguses tegid nad kõige lihtsama konsooli a + b, ja viimases kirjutasid nad küll, küll konsoolipõhiseid, aga päris huvitavaid rakendusi, näiteks mingi suvaliselt antud funktsiooni integraali väärtuse arvutamist, kasutades ühte kolmest meetodist – umbes samad ülesanded olid lõputunnistusel – kursusetööd.

See on lihtsalt aktsepteerimise lähenemisviis ei oli tuttav. Kogu instituudi õpingute aja seisin silmitsi tõsiasjaga, et tark olemine ja aruannete edastamise oskus ei ole sama asi. See ei sobinud mulle üldse.

- Poisid, ma mõtlesin. Loome "kontseptuaalse" suhte. Kui keegi teist arvab, et te ei vaja programmeerimist, on uks seal. Ma õpetan sind tasuta. Tahan siin näha ainult uudishimulikke, hoolivaid ja hoolivaid entusiaste. "Ma palun kõigil teistel mitte kõigi aega raisata," ütlesin laboritöö esimesel päeval. Pärast seda lõpetasid 5 inimest kohe tundides käimise. See oli loogiline ja ootuspärane. Ülejäänutega sai proovida midagi arusaadavat teha.

- ... Mind ei huvita vaadata, kuidas keegi teeb teie tööd lihtsalt selleks, et seda läbida. Te ei pruugi olla programmeerijad, kuid te olete inimesed minu tundides peavad.

See nägi välja selline:

case отличник

Üliõpilane istub minuga maha, et oma tööd üle anda.
— Kas sa tegid seda ise?
- Jah.
- Mis see on?
- *vastab õigesti*.
*Küsin veel paari punkti kohta. Õiged vastused*
- vastu võetud. Suurepärane.

case болтун

— Kas sa tegid seda ise?
- Jah.
- Mis see on?
- *vastab valesti / ei vasta*.
*Küsin veel paari punkti kohta. sama tulemus*
- Pole vastu võetud. EBAÕNNESTUS Ootan kordusvõtet.

case хорошист

— Kas sa tegid seda ise?
- Jah.
- Mis see on?
- *vastab õigesti, kuid mitte enesekindlalt, ujub*.
*Küsin veel paari punkti kohta. sama tulemus*
- vastu võetud. Hästi.

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

— Kas sa tegid seda ise?
- Ei.
- Miks?
- Raske. Ta aitas mind... *nimetab ausalt üht suurepärast õpilast rühmast*
- Kas sa said aru?
- Jah, ma sain peaaegu kõigest aru.

- Mis see on?
- *vastab õigesti*.
*Küsin veel paari punkti kohta. Vastused enam-vähem õigesti, mõnikord täiesti valed, isegi kui see on 50/50 õige ja vale*
- vastu võetud. Hästi.

Kõiki teisi juhtumeid pole mõtet kirjeldada. Jah, “hea õpilane” võib olla rahulolematu, et “C” õpilane saab aususe põhjal sama hinde. Siis oleneb kõik tujust. Või palun "heal õpilasel" põrandale vaadata, sest "nüüd ma viskan näpuotsaga tarkust" ja siis räägin teile lähenemise olemuse, kirjeldan, mis on elus väärtuslikum ja selgitan. et “C” õpilasel oli palju raskem läbida kui temal, “heal õpilasel.” jne...
... või, nagu mu õpetaja kunagi tegi, joonistan selle rahulolematu inimese vastas olevasse päevikukasti väikese hamba ja järgmisel korral teen laboritööd tema eest isiklikult. Lihtsalt. Et mitte oma kaaslasi “kustutada”.

Igasuguse programmeerimise alus... pusledele

Оценки
Haridusprotsess, nagu kogu maailm, on sõna otseses mõttes uppumas hinnasiltidesse ja hinnetesse.
Ka õpilased on inimesed, aga minu meelest oleks pidanud ka siin “raame” “raputama”.
Semestri jooksul anti kõigile boonusülesanne. Registreeru Github.com, laadige sinna tühi C++ projekt, tehke 2 uuendust, kinnitage need ja lükake need. Nende toimingute jaoks määrati 15. Jah, jah, mitte 4, mitte 5, vaid 15. Kolm arvasid selle välja. See oli õpilase psühhotüübile kuidagi arusaadav, kuid siis oli teine ​​juhtum.
Kord liigutati meie paari nii, et tema jäi viimaseks ja ka paari akna kaudu. 15 inimest tuli aga ikkagi kohale. Ma ei tahtnud sellise kangelaslikkuse auks uut teemat lahti seletada, kuna olime puhtalt teemadel juba päris hästi edenenud + väsinud ajudele (minu ja õpilaste oma) ei olnud järgmine teema eriti lihtne. Siis otsustasin rääkida filosoofiast.

— Ma teatan enneolematu suuremeelsuse ahvatlusest. Kõik ütlevad mulle, mis hinde talle tänase paari eest panna.
Kõik tahtsid A-d.
"Kaaluge seda juba seal," ütlesin. Kõik olid õnnelikud.
Vaikus.
- miks keegi ei tahtnud? 7-ku või 10-ku?
Kõigil läksid silmad suureks ja nad hakkasid rumalalt naeratama.
- Kas panustad? Ajakirjale?! - kostis hääl tagumise laua tagant.
- Jah, lihtne! - Ma ütlesin: - Ma kuulutan välja tingimustega välkmängu, kes iganes vastab mu 10 küsimusele - Vean kihla 20. kuupäeval ajakirjale, ilma saagita, kes ei vasta, on see -10 (miinus kümme).

"Meeskond elavnes, algas debatt," olid kõik ausalt hinded teeninud. Kaks läksid vabatahtlikuks. Väiksemate ebatäpsustega esitasid nad kordamööda 10 küsimust virna, järjekorra, konstruktori, hävitaja, prügikoguja, kapseldamise, polümorfismi, räsifunktsioonide kohta...
Igaüks neist joonistati ajakirja 20... aga ajakirja ja hinnete tähtsus langes kõigi silmadesse. Nüüd kahetsen, et ei küsinud, kas nad tahaksid oma hinnangut kellegagi “jagada”. Mulle tundub, et nad jagaksid... Edaspidi andsid kõik “labori” teadmiste ja aususega üle.

Sellest hetkest alates ilmus teist tüüpi labori kohaletoimetamine:


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

— Kas sa tegid seda ise?
- Ei.
- Miks?
- Raske. Ta aitas mind... *nimetab ausalt üht suurepärast õpilast rühmast*
- Kas sa said aru?
- Sergei Nikolajevitš, ausalt, ma ei saa millestki aru, nii et kirjutasin iga rea ​​kõrvale kommentaarid - noh, see pole minu asi, minust saab traktorist
- Mis see on?
— *loeb rea vastas olevat kommentaari*.
- ...
- ...
— Mis vahe on Belarus MTZ ja Don 500 ja K700 vahel?
- ??!.. Esimene on Minskis valmistatud ratastraktor, mida kasutatakse sageli kerges ja keskmises põllumajandustootmises. Sellel on ka väikesed rattad ees ja suured rattad taga. Don 500 on põhimõtteliselt harvester ja K-700 Kirovets on nõukogude üldotstarbeline maastikuratastraktor, veojõuklass 5.
- vastu võetud. Hästi (!!!).
- Aitäh, Sergei Nikolajevitš!!!

Minu kodumaal on TractorA-st rääkimine peaaegu sama, mis siin SOLIDist.

Geniaalne
Minu rühmas oli Geenius. Õpilane jäi juba esimesest tunnist väga hiljaks ega täitnud koos kõigi teistega puslet. Siis palusin tal teha järgmiseks tunniks seda, mida ma kõigi jaoks plaanisin – kirjutada endale paberile, mis teda huvitab, mis huvitab. Tulemuste kohaselt oli "Geniusel" 2-3 rida: midagi sellist nagu "Ma mõistan olemise mõttetust" ...

...Oh, jumal, minu rühmas on teine ​​Lao Tzu ja Kojima ühes isikus...
Igasuguse programmeerimise alus... pusledele

Minu üllatuseks vastas ta kahes esimeses tunnis terminite kohta küsimustele tõesti suurepäraselt, kuid mõju ei kestnud kaua. “Geenius” lõpetas tundides käimise ja järgmisel korral tuli ta alles selleks, et sooritada esimene laboritöö, mille ta edukalt lõpetas. läbi ei läinud objektiivsetel põhjustel. Seejärel kogunes tal töölt puudumise tõttu loomulikult võlgu, mis, nagu ta uskus, Olin lihtsalt kohustatud teda nii-öelda "vennalikult" üles lugema..
Paaridel osalemata jätmine + südame löögisageduse tõus oli vastuolus minu tundides käimise kehtestatud põhimõtetega. “Geeniusel” oli olukorrast väljapääs vaid 2 - end rehabiliteerida (oodatud tee) või loobuda tundidest ja loota dekanaadi antud “C”-le, et laiskusest lahti saada.
No see on “Geenius”... kohe tuleb “hiilgavalt” tegutseda. See noormees ei leidnud midagi paremat, kui kirjutada VK ülddialoogi (kus olin mina ja kõik selle grupi õpilased) vihane tiraadi minule suunatud needuste ja solvangutega.

Hmm... Pettumus.
Kõige silmatorkavam oli see, et enne kolledži juhtkonna karistusoperatsiooni lõpetamist otsustas ta minu ees vabandada. Milleks? - Ma ei saa siiralt aru. Tol ajal olin ma juba ammu kriitikast sõltumatu, eriti sellisest ausalt öeldes rumalast kriitikast. Minu isiksust see ei mõjutanud, kuid protsessid on protsessid ja õpetajana ei saanud ma jätta sellest teatamata. Nagu selgus, oli tema peale juba õpingute ajal kogunenud nii palju kaebusi, et see juhtum osutus viimaseks. Ta saadeti välja. Kutsekooli viimasest aastast.
Võib-olla on ta mind pikka aega snaipripüssi pilgu läbi jälginud, kuid ausalt öeldes ei huvita mind.
Eh, geenius, sa oled südametu...

Epiloog
Minu jaoks isiklikult oli õpetamiskogemus üks valgustavamaid. See aitas mul pärast instituudis õppimist kinnistada oma põhiteadmisi programmeerimisest. Tundsin end valitud erialal (saadaolevate erialade valik) kindlalt. Eriti oluline on asjaolu, et "kõige ulakam seltskond" imbus minusse lugupidamise ja sõbralikkusega - see on palju väärt. Mul õnnestus leida tee nende sisemiste uuendajate juurde, püüdsin sisendada reaalsust, mitte neid stereotüüpseid prioriteete. Kahju, et me ei jõudnud kodeerimisel "mõistatuseni" - kui kõik peaksid osa koodist ära tegema ja kõik osad üheks ühendades saaksime suure tööprogrammi...
Loodan, et ühel päeval tunneb igaüks seda... aga praegu on allpool ekraanipildid mitme õpilase arvustustega 2 aasta pärast.

Igasuguse programmeerimise alus... pusledele

Ühegi neist on veel vara teha järeldusi programmeerijakarjääri edukuse kohta, sest praegu õpib suurem osa sellest rühmast ülikoolis. Eks aeg näitab.

Loodan, et artikkel oli kasulik. Täname tähelepanu eest!
Loomingulist edu ja positiivset meeleolu, kolleegid!

Allikas: www.habr.com

Lisa kommentaar