La bazo de ajna programado pri... enigmoj

Saluton, Ĥabrovskanoj!

En ĉi tiu artikolo mi volas paroli pri mia sperto kiel C++-instruisto pri programado ĉe kolegio ĉe teknika universitato. Ĝi estis unufoje en la vivo sperto kiu instruis min multon. Kiam temas pri interesaj faktoj de via persona pasinteco, ĉi tiu trairejo de la vivo estas unu el la unuaj, kiuj venas al la menso.
Iru.

Unue, iom pri mi mem.
En 2016, mi diplomiĝis ĉe la instituto kun honoroj kun diplomo pri Informa Sekureco de Aŭtomatigitaj Sistemoj. Dum miaj studoj, mi plurfoje povis realigi mian potencialon verkante sciencajn artikolojn, partoprenante en konkursoj kaj subvencioj. En 2015, mi havis la ŝancon fariĝi la gajninto de la Tutrusa konkurso por junaj sciencistoj "UMNIK". En 2016, antaŭ ol kompletigi siajn studojn, li jam estis dungita en granda organizo en la urbo kiel "Specialisto pri Informa Sekureco, Kriptografio kaj Ĉifrado".
Resume, io tia. Vi povas imagi, ke mi ankoraŭ havis ideon pri programado.

Kaj jen 2017. Postbakalaŭraj studoj. Oni petis min instrui C++ en kolegio dum semestro, por kiu oni promesis al mi bonajn gratifikojn por malpezigi la ŝarĝon de diplomiĝa studento kaj nenio pli.

Verdire, mi estis sincere interesita provi min en ĉi tiu kredo.

Unua paro
septembro. Unua semajno da lernejo. Studentoj venis al mi. "La plej malbona grupo" - tiel oni nomis ilin.
23 personoj. "Programistoj".

Kiel atendite, unue mi prezentis min. Mi diskrete rakontis al ili la enhavon de la parto “Unue, iom pri mi mem”...
Tiam komenciĝis la terura afero. Al la demando "Kion vi povas fari?" la studentoj (tiel ni nomos ilin de nun) respondis, ke ili povas fari iom pli ol nenion (nu, tio signifis, ke kelkaj el ili sciis, kiel aspektas MS VS kaj povus krei projekton "Saluton mondo"). .. Programistoj. Lasta kurso…

Plue, ili klarigis detale, "en koloroj", ke oni nenion instruis al ili kaj ke ĝenerale ili estis seniluziigitaj en programado...

Preskaŭ ĉiuj tagoj ĝis mia sekva leciono iris tiel:
La bazo de ajna programado pri... enigmoj

... sed la antaŭan tagon, ekestis la ideo meti klopodojn por korekti la nunan situacion en la mensoj kaj konscioj de tiuj junuloj. Kaj tiam "Ostap forportiĝis."

Enkonduko al Programado
Por la sekva leciono mi alportis... enigmon.
Jes Jes. Enigmo. "Kiel trejni onian drakon." La reguloj estis simplaj. La grupo estis dividita en 3 teamojn. Ĉiu teamo kunvenis sian parton. Iuj estas la arbaro, aliaj estas la tero, aliaj estas la drako en la centro de la bildo. Dum la tuta paro kunmetis la enigmon, mi diris al ili tion kunmeti enigmon ankaŭ estas programadoke programistoj ofte uzas alies kodon, ke ĉiu projekto havas plurajn malsamajn teamojn, funkciojn, modulojn...
Iom post iom, la plej letargiaj studentoj aliĝis al la procezo.
Kiam mi finis froti la ideon de programado en komercajn konceptojn, procezojn kaj... enigmojn, estis tempo establi la regulojn de trejnado.
Por ĉiu leciono, ĉiu studento devis noti 10 terminojn el IT en kajeron. Ajna. Ĉiu havas sian propran. La afero estas, ke mi prenis la kajeron de unu studento kaj trovis inter ĉiuj terminoj maksimume aplikata kaj demandis alian studenton pri ili. Kiam alia studento diras: "Mi ne skribis tiun terminon", ne estis puno (pro komuna prudento), sed tiu studento devis noti la "mankantajn" terminojn (kiel ĉiuj aliaj, kiuj ne havis ilin) kaj trovi iliajn signifojn per la sekva.okupo.

Tion ni faris. Ĉiu leciono komenciĝis per gaja hazardo rilate al du aŭ tri studentoj. La uloj havis entuziasmon por ĉi tiu procezo.

Lecionaj temoj
Komencante trejnadon, estas tre grave provizi studentojn per bona literaturo. Laŭ mi, la ideala libro estis:
La bazo de ajna programado pri... enigmoj

Iam mi devis ŝtele legi ĝin dum brakumo Microsoft Visual Studio. Tiam mi povis kompreni programadon preskaŭ de nulo. Perfekta opcio.

Vi modeste iras al la studentoj kaj diras: "Por fariĝi programistoj, vi nur bezonas legi kaj provi ĉion en ĉi tiu libro", kaj ĵetas la libron sur la tablon. La ĉefa afero estas ne konfuzi la librojn en via tornistro...

Antaŭ ĉiu temo, mi certe devis ĝisfunde prepariĝi. Mi legis la saman Laforet kaj plurajn aliajn interesajn fontojn de la Interreto.
La klarigo iris preskaŭ de nulo. Plie, necesis kompreni, kie la baza scio de la studentoj estis dedukte fortranĉita.
Tabeloj -> Labori kun memoro (konstruistoj) -> Ligiloj -> Kiel memoro funkcias -> Disiloj -> Kio estas fizika disko -> Binara prezento de datumoj...
La bazo de ajna programado pri... enigmoj

Tre forta kraŝtesto de scio pri fundamentaj faktoj pri programado. Mi ne plu estas programisto, mi estas historiisto!

Kaj do, tio signifas, ke historiaj bataloj okazas por pluraj paroj sinsekve. Iun tagon, sekretario de la fako rigardas en nian kabineton kaj, vidante la grupon, larĝigas la okulojn, skuas kaj fermas la pordon. Kiel oni diris al mi poste, ŝi estis ŝokita, ke TIU grupo sidis tiel trankvile kaj aŭskultis min tiel atente... Eh, facile.

Laboratoriaj laboroj
La unua aplikata informo estas la unuaj "laboratorioj". Entute, la grupo pasigis 10 laboratoriajn laborojn dum la semestro. Komence ili faris la plej simplan konzolon a + b, kaj en ĉi-lasta ili skribis, kvankam konzole bazitajn, sed sufiĉe interesajn aplikaĵojn, kiel kalkuli la valoron de la integralo de iu arbitre donita funkcio per unu el tri metodoj - proksimume la samaj taskoj estis sur la fina atestado - kurslaboro.

Tio estas nur la akcepta aliro ne estis konata. Dum miaj studoj en la instituto, mi alfrontis la fakton, ke esti inteligenta kaj povi pasigi raportojn ne estas la sama afero. Ĉi tio tute ne konvenis al mi.

- Knaboj, mi pensis. Ni konstruu "konceptan" rilaton. Se iu el vi pensas, ke vi ne bezonas programadon, la pordo estas tie. Mi instruas vin senpage. Mi volas vidi ĉi tie nur scivolemajn, zorgemajn kaj zorgemajn entuziasmulojn. "Mi petas ĉiujn aliajn ne malŝpari ĉies tempon," mi diris en la unua tago de laboratoria laboro. Post tio, 5 homoj tuj ĉesis ĉeesti klasojn. Ĉi tio estis logika kaj atendita. Eblis provi fari ion kompreneblan kun la ceteraj.

- ... Mi ne interesas rigardi iun fari vian laboron nur por preterpasi ĝin. Vi eble ne estas programistoj, sed vi estos homoj en miaj klasoj devas.

Ĝi aspektis jene:

case отличник

Studento sidiĝas kun mi por transdoni sian laboron.
— Ĉu vi mem faris ĝin?
- Jes.
- Kio estas ĉi tio?
- *respondas ĝuste*.
*Mi demandas pri kelkaj pliaj punktoj. Respondu ĝuste*
- akceptis. Bonege.

case болтун

— Ĉu vi mem faris ĝin?
- Jes.
- Kio estas ĉi tio?
- *respondas malĝuste / ne respondas*.
*Mi demandas pri kelkaj pliaj punktoj. Sama rezulto*
- Ne akceptite. Malsukcesis Mi atendas la reprenon.

case хорошист

— Ĉu vi mem faris ĝin?
- Jes.
- Kio estas ĉi tio?
- *respondas ĝuste, sed ne memfide, naĝas*.
*Mi demandas pri kelkaj pliaj punktoj. Sama rezulto*
- akceptis. Bone.

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

— Ĉu vi mem faris ĝin?
- Ne.
- Kial?
- Malfacile. Li helpis min... *honeste nomas bonegan studenton el la grupo*
- Ĉu vi komprenis?
- Jes, mi preskaŭ ĉion komprenis.

- Kio estas ĉi tio?
- *respondas ĝuste*.
*Mi demandas pri kelkaj pliaj punktoj. Respondas pli-malpli ĝuste, foje tute malĝustaj, eĉ se ĝi estas 50/50 ĝusta kaj malĝusta*
- akceptis. Bone.

Ne havas sencon priskribi ĉiujn aliajn kazojn. Jes, "bona studento" povas esti malkontenta ke "C" studento ricevas la saman markon, bazita sur honesteco. Tiam ĉio dependas de la humoro. Aŭ mi petas al la "bona studento" rigardi la plankon, ĉar "nun mi faligos pinĉon da saĝo", kaj tiam mi rakontos al vi la esencon de la aliro, priskribos kio en la vivo pli valoras kaj klarigos. ke estis multe pli malfacile por la "C" studento pasi ol por li, la "bona studento." ", ktp...
... aŭ, kiel mia instruisto iam faris, mi desegnos malgrandan denton en la ĵurnala skatolo kontraŭ tiu ĉi malkontenta homo kaj venontfoje mi persone kompletigos la laboratorion por li. Nur. Por ne "estingi" viajn kamaradojn.

La bazo de ajna programado pri... enigmoj

Ratings
La eduka procezo, kiel la tuta mondo, laŭvorte dronas en prezetikedoj kaj gradoj.
Studentoj ankaŭ estas homoj, tamen, laŭ mi, la "kadro" devus esti "skuita" ankaŭ ĉi tie.
Dum la semestro, ĉiuj ricevis bonusan taskon. Registru por github.com, alŝutu malplenan C++-projekton tie, faru 2 ĝisdatigojn, transdonu ilin kaj puŝu ilin. Por ĉi tiuj agoj estis asignitaj 15. Jes, jes, ne 4, ne 5, sed 15. Tri eltrovis ĝin. Ĉi tio estis iel komprenebla por la psikotipo de la studento, sed poste estis alia kazo.
Iam nia paro estis movita tiel ke ŝi estis la lasta, kaj ankaŭ tra kelkaj fenestroj. Tamen, 15 homoj ankoraŭ venis al ĝi. Mi ne volis klarigi novan temon honore al tia heroeco, ĉar ni jam sufiĉe bone progresis pure pri temoj + la sekva temo ne estis tre simpla por lacaj cerboj (la mia kaj la lernantoj). Tiam mi decidis paroli pri filozofio.

— Mi anoncas altiron de senprecedenca malavareco. Ĉiuj diras al mi, kian gradon donu al li por la hodiaŭa paro.
Ĉiuj volis "A".
"Konsideru ĝin jam tie," mi diris. Ĉiuj estis feliĉaj.
La silento.
- kial neniu volis? 7-ku aŭ 10-ku?
La okuloj de ĉiuj larĝiĝis kaj ili komencis stulte rideti.
- Ĉu vi vetos? Al la revuo?! — aŭdiĝis voĉo el la malantaŭa skribotablo.
- Jes Facile! - Mi diris, - Mi anoncas kondiĉojn, kiu respondas al 10 el miaj demandoj - mi vetos 20 al la revuo, sen kapto, kiu ne respondas estas tiu -10 (minus dek).

"La teamo vigliĝis, debato komenciĝis," ĉiuj honeste gajnis notojn. Du volontulis. Kun negravaj eraroj, ili laŭvice kun 10 demandoj pri la stako, atendovico, konstrukciisto, detruanto, rubkolektanto, enkapsuligo, polimorfismo, hashfunkcioj...
Ĉiu estis desegnita en revuo 20... sed la graveco de la revuo kaj notoj falis en ĉies okulojn. Nun mi bedaŭras ne demandi ĉu ili ŝatus "dividi" sian takson kun iu. Ŝajnas al mi, ke ili dividus... Ekde nun ĉiuj transdonis la “laboratorion” kun scio kaj honesteco.

Ekde ĉi tiu momento aperis alia speco de laboratoria livero:


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

— Ĉu vi mem faris ĝin?
- Ne.
- Kial?
- Malfacile. Li helpis min... *honeste nomas bonegan studenton el la grupo*
- Ĉu vi komprenis?
— Sergej Nikolajeviĉ, sincere, mi nenion komprenas, do mi skribis komentojn apud ĉiu linio — nu, tio ne estas mia afero, mi estos traktoristo.
- Kio estas ĉi tio?
— *legas la komenton kontraŭ la linio*.
- ...
- ...
— Kio estas la diferenco inter Belorusio MTZ kaj Don 500 kaj K700?
- ??!.. La unua estas radtraktoro farita en Minsko, ofte uzata en malpezaj kaj mezaj specoj de agrikultura produktado. Ĝi ankaŭ havas malgrandajn radojn antaŭe kaj grandajn radojn malantaŭe. La Don 500 estas baze rikoltmaŝino, kaj la K-700 Kirovets estas sovetia ĝeneraluzebla ekstervoja radtraktoro, tiradklaso 5.
- akceptis. Bone (!!!).
- Dankon, Sergej Nikolajeviĉ!!!

En mia patrujo, paroli pri TractorA estas preskaŭ kiel paroli pri SOLIDA ĉi tie.

Geniulo
Estis Geniulo en mia grupo. La studento alvenis tre malfrue ekde la unua klaso kaj ne plenumis la enigmon kune kun ĉiuj aliaj. Tiam mi petis lin, ke li faru tion, kion mi planis por ĉiuj por la sekva leciono - skribu al si sur paperpecon, kio interesas lin, kio interesas lin. Laŭ la rezultoj, "Genio" havis 2-3 liniojn: io kiel "Mi rimarkas la vanecon de esti"...

...Ho, Dio, en mia grupo mi havas la duan Lao Cu kaj Kojima en unu persono...
La bazo de ajna programado pri... enigmoj

Je mia surprizo, en la unuaj du klasoj li vere respondis demandojn pri terminoj brile, sed la efiko ne daŭris longe. La "geniulo" ĉesis ĉeesti klasojn kaj la sekvan fojon li venis nur por trapasi la unuan laboratorion, kiun li sukcese plenumis. ne pasis pro objektivaj kialoj. Tiam, pro foresto, li nature amasigis ŝuldojn, kiuj, kiel li kredis, Mi estis simple devigita kalkuli lin, por tiel diri, "fratemaniere".
Malsukceso ĉeesti parojn + pliigita korfrekvenco estis kontraŭa al la establitaj principoj ĉeesti miajn klasojn. "Geniulo" havis nur 2 elirojn el la situacio - rehabiliti sin (la atendata vojo) aŭ rezigni pri klasoj kaj esperi je "C" donita de la dekanejo por forigi la maldiligenton.
Nu, jen "Genio"... vi devas tuj agi "brile". Ĉi tiu junulo ne povis trovi ion pli bonan ol skribi en la ĝenerala dialogo pri VK (kie estis mi kaj ĉiuj lernantoj de ĉi tiu grupo) koleran diatribon kun malbenoj kaj insultoj adresitaj al mi.

Hmm... Seniluziiĝo.
Plej okulfrapa estis, ke, antaŭ la finiĝo de la puna operacio flanke de la altlerneja administrado, li decidis peti pardonon de mi. Por kio? - Mi sincere ne komprenas. En tiu tempo, mi longe estis sendependa de kritiko, precipe tia sincere stulta kritiko. Mia personeco ne estis tuŝita, sed la procezoj estas procezoj, kaj kiel instruisto mi ne povis ne raporti tion. Kiel evidentiĝis, tiom da plendoj jam akumuliĝis kontraŭ li dum liaj studoj, ke ĉi tiu kazo montriĝis la lasta. Li estis forpelita. De la lasta jaro de faklernejo.
Eble li delonge observas min per la vido de kaŝpafilo, sed, sincere, mi ne zorgas.
Eh, genio, vi estas senkora...

Epilogo
Por mi persone, la instrua sperto estis unu el la plej klerigaj. Ĉi tio helpis min plifirmigi mian fundamentan scion pri programado post studado en la instituto. Mi sentis konfidon pri mia elektita fako (la gamo de disponeblaj specialaĵoj). Aparte gravas la fakto, ke la "plej malbona grupo" plenigis min per respekto kaj amikeco - tio multe valoras. Mi sukcesis trovi vojon al iliaj internaj novigantoj, provis ensorbigi realecon, kaj ne ĉi tiujn stereotipajn prioritatojn. Estas domaĝe, ke ni ne atingis la "enigmon" en kodigo - kiam ĉiuj devus fari parton de la kodo, kaj kunligante ĉiujn partojn en unu, ni ricevus grandan laborprogramon...
Mi esperas, ke iutage ĉiu el ili sentos tion... sed nuntempe, ĉi-sube estas ekrankopioj kun recenzoj de pluraj studentoj post 2 jaroj.

La bazo de ajna programado pri... enigmoj

Estas tro frue por tiri konkludojn pri la sukceso de la kariero de programisto por iu el ili, ĉar nun la plej granda parto de ĉi tiu grupo studas en universitato. La tempo montros.

Mi esperas, ke la artikolo estis utila. Dankon pro via atento!
Kreiva sukceso kaj pozitiva humoro, kolegoj!

fonto: www.habr.com

Aldoni komenton