Ang batayan ng anumang programming sa... puzzle

Pagbati, mga residente ng Khabrovsk!

Sa artikulong ito gusto kong pag-usapan ang aking karanasan bilang guro ng C++ programming sa isang kolehiyo sa isang teknikal na unibersidad. Ito ay isang beses sa isang buhay na karanasan na nagturo sa akin ng maraming. Pagdating sa mga kagiliw-giliw na katotohanan mula sa iyong personal na nakaraan, ang talatang ito mula sa buhay ay isa sa mga unang pumasok sa isip.
Umalis na tayo.

Una, kaunti tungkol sa aking sarili.
Noong 2016, nagtapos ako sa institute na may mga karangalan na may degree sa Information Security of Automated Systems. Sa aking pag-aaral, paulit-ulit kong napagtanto ang aking potensyal sa pagsulat ng mga artikulong pang-agham, pagsali sa mga kumpetisyon at mga gawad. Noong 2015, nagkaroon ako ng pagkakataon na maging panalo sa All-Russian na kumpetisyon para sa mga batang siyentipiko na "UMNIK". Noong 2016, bago matapos ang kanyang pag-aaral, nagtrabaho na siya sa isang malaking organisasyon sa lungsod bilang isang "Information Security, Cryptography at Encryption Specialist."
Sa madaling salita, isang bagay tulad nito. Maaari mong isipin na mayroon pa akong ideya tungkol sa programming.

At narito na ang 2017. Postgraduate na pag-aaral. Hiniling sa akin na magturo ng C++ sa isang kolehiyo sa loob ng isang semestre, kung saan pinangakuan ako ng magagandang bonus upang mapagaan ang pasanin ng isang nagtapos na estudyante at wala nang iba pa.

Sa totoo lang, taos-puso akong interesado na subukan ang aking sarili sa kredo na ito.

Unang pares
Setyembre. Unang linggo ng paaralan. Lumapit sa akin ang mga estudyante. "Ang pinakamakulit na grupo" - iyon ang tawag sa kanila.
23 tao. "Mga Programmer".

As expected, nagpakilala muna ako. Maingat kong sinabi sa kanila ang nilalaman ng bahaging "Una, kaunti tungkol sa aking sarili"...
Pagkatapos ay nagsimula ang kakila-kilabot na bagay. Sa tanong na "Ano ang maaari mong gawin?" ang mga mag-aaral (tatawagin namin sila mula ngayon) ay sumagot na maaari silang gumawa ng kaunti kaysa sa wala sa lahat (well, ito ay nangangahulugan na ang ilan sa kanila ay alam kung ano ang hitsura ng MS VS at maaaring lumikha ng isang "Hello world" na proyekto). .. Mga Programmer. Huling kurso…

Dagdag pa, ipinaliwanag nila nang detalyado, "sa mga kulay", na wala silang itinuro at sa pangkalahatan ay nabigo sila sa programming...

Halos lahat ng araw hanggang sa susunod kong klase ay ganito:
Ang batayan ng anumang programming sa... puzzle

... ngunit noong nakaraang araw, lumitaw ang ideya na magsikap sa pagwawasto sa kasalukuyang sitwasyon sa isipan at kamalayan ng mga kabataang ito. At pagkatapos ay "nadala si Ostap."

Panimula sa Programming
Para sa susunod na aralin ay dinala ko... isang palaisipan.
Oo Oo. Palaisipan. "Paano Sanayin ang Iyong Dragon." Ang mga patakaran ay simple. Ang grupo ay nahahati sa 3 koponan. Ang bawat pangkat ay nagtipon ng kanilang bahagi. Ang iba ay ang kagubatan, ang iba ay ang lupa, ang iba ay ang dragon sa gitna ng larawan. Habang pinagsasama-sama ng buong mag-asawa ang puzzle, sinabi ko iyon sa kanila Ang pagsasama-sama ng puzzle ay programming dinna ang mga programmer ay madalas na gumagamit ng code ng ibang tao, na ang bawat proyekto ay may iba't ibang team, feature, module...
Unti-unti, ang pinaka-matamlay na mga mag-aaral ay sumali sa proseso.
Kapag natapos ko na ang ideya ng programming sa mga konsepto ng negosyo, proseso at... puzzle, oras na upang maitatag ang mga patakaran ng pagsasanay.
Para sa bawat aralin, ang bawat mag-aaral ay kailangang magsulat ng 10 termino mula sa IT sa isang kuwaderno. Anuman. Ang bawat isa ay may kanya-kanyang sarili. Ang punto ay kinuha ko ang notebook ng isang mag-aaral at natagpuan sa lahat ng mga termino inilapat nang husto at nagtanong sa isa pang estudyante tungkol sa kanila. Kapag sinabi ng isa pang estudyante, "Hindi ko isinulat ang terminong iyon," walang parusa (dahil sa sentido komun), ngunit kailangang isulat ng mag-aaral na iyon ang mga "nawawalang" termino (tulad ng iba pang wala nito) at hanapin ang kanilang mga kahulugan sa susunod na hanapbuhay.

Iyon ang ginawa namin. Ang bawat aralin ay nagsimula sa isang masayang randomness na may kaugnayan sa dalawa o tatlong mag-aaral. Ang mga lalaki ay nagkaroon ng sigasig para sa prosesong ito.

Mga paksa ng aralin
Sa pagsisimula ng pagsasanay, napakahalagang mabigyan ng mahusay na literatura ang mga mag-aaral. Sa palagay ko, ang perpektong libro ay:
Ang batayan ng anumang programming sa... puzzle

Minsan ay kinailangan kong palihim na basahin ito habang nakayakap sa Microsoft Visual Studio. Pagkatapos ay naiintindihan ko ang programming halos mula sa simula. Perpektong opsyon.

Mahinhin kang pumunta sa mga estudyante at sabihin: "Upang maging programmer, kailangan mo lang basahin at subukan ang lahat ng nasa aklat na ito," at ihagis ang libro sa mesa. Ang pangunahing bagay ay hindi malito ang mga libro sa iyong backpack...

Bago ang bawat paksa, tiyak na kailangan kong maghanda nang lubusan. Binasa ko ang parehong Laforet at maraming iba pang mga kagiliw-giliw na mapagkukunan mula sa Internet.
Halos mula sa simula ang paliwanag. Bukod dito, kinakailangang maunawaan kung saan naputol ang pangunahing kaalaman ng mga mag-aaral nang deduktibo.
Mga Array -> Paggawa gamit ang memorya (mga konstruktor) -> Mga Link -> Paano gumagana ang memorya -> Mga Drive -> Ano ang isang pisikal na drive -> Binary na representasyon ng data...
Ang batayan ng anumang programming sa... puzzle

Isang napakalakas na pagsubok sa pag-crash ng kaalaman sa mga pangunahing katotohanan tungkol sa programming. Hindi na ako programmer, historian na ako!

At kaya, nangangahulugan ito na ang mga makasaysayang labanan ay nagaganap para sa ilang magkasunod na magkasintahan. Isang araw, isang sekretarya mula sa departamento ang tumingin sa aming opisina at, nang makita ang grupo, nanlaki ang kanyang mga mata, nakipagtitigan at isinara ang pinto. Tulad ng sinabi sa akin mamaya, nagulat siya na ang grupong ITO ay nakaupo nang tahimik at nakikinig sa akin nang maingat... Eh, madali.

Mga gawain sa laboratoryo
Ang unang inilapat na impormasyon ay ang unang "labs". Sa kabuuan, nakapasa ang grupo sa 10 laboratory works sa semestre. Sa una ginawa nila ang pinakasimpleng console isang + b, at sa huli ay isinulat nila, kahit na nakabatay sa console, ngunit medyo kawili-wiling mga application, tulad ng pagkalkula ng halaga ng integral ng ilang arbitraryong ibinigay na function gamit ang isa sa tatlong mga pamamaraan - humigit-kumulang ang parehong mga gawain ay nasa huling sertipikasyon - trabaho sa kurso.

Acceptance approach lang yan hindi ay pamilyar. Sa buong pag-aaral ko sa institute, nahaharap ako sa katotohanan na ang pagiging matalino at makapagpasa ng mga ulat ay hindi pareho. Ito ay hindi nababagay sa akin sa lahat.

- Guys, iniisip ko. Bumuo tayo ng isang "konsepto" na relasyon. Kung iniisip ng sinuman sa inyo na hindi mo kailangan ng programming, nandoon ang pinto. Turuan kita ng libre. Gusto kong makita dito ang mga mahilig mag-usisa, mapagmalasakit at mapagmalasakit. "Hinihiling ko sa lahat na huwag mag-aksaya ng oras ng lahat," sabi ko sa unang araw ng gawain sa laboratoryo. Pagkatapos nito, 5 katao ang agad na tumigil sa pagpasok sa mga klase. Ito ay lohikal at inaasahan. Posibleng subukang gumawa ng isang bagay na mauunawaan sa iba.

- ... Hindi ako interesadong panoorin ang isang tao na gumagawa ng iyong trabaho para lang maipasa ito. Maaaring hindi kayo mga programmer, ngunit magiging mga tao kayo sa aking mga klase kailangang.

Ito ay mukhang ganito:

case ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΈΠΊ

Isang estudyante ang umupo sa tabi ko para iabot ang kanyang trabaho.
β€” Ikaw ba mismo ang gumawa nito?
- Oo.
- Ano ito?
- *sagot ng tama*.
*Nagtatanong ako tungkol sa ilang higit pang mga puntos. Mga sagot nang tama*
- tinanggap. Malaki.

case Π±ΠΎΠ»Ρ‚ΡƒΠ½

β€” Ikaw ba mismo ang gumawa nito?
- Oo.
- Ano ito?
- *mali ang sagot / hindi sumasagot*.
*Nagtatanong ako tungkol sa ilang higit pang mga puntos. Parehong resulta*
- Hindi tinanggap. NABIGO Naghihintay ako para sa muling pagkuha.

case Ρ…ΠΎΡ€ΠΎΡˆΠΈΡΡ‚

β€” Ikaw ba mismo ang gumawa nito?
- Oo.
- Ano ito?
- *sagot ng tama, ngunit hindi kumpiyansa, lumangoy*.
*Nagtatanong ako tungkol sa ilang higit pang mga puntos. Parehong resulta*
- tinanggap. ayos lang.

case Ρ€ΠΎΠ²Π½Ρ‹ΠΉΠ’Ρ€ΠΎΠ΅Ρ‡Π½ΠΈΠΊ

β€” Ikaw ba mismo ang gumawa nito?
- Hindi.
- Bakit?
- Mahirap. Tinulungan ako... *honestly names an excellent student from the group*
- Naiintindihan mo ba?
- Oo, naiintindihan ko halos lahat.

- Ano ito?
- *sagot ng tama*.
*Nagtatanong ako tungkol sa ilang higit pang mga puntos. Sumasagot ng mas marami o hindi gaanong tama, kung minsan ay ganap na mali, kahit na ito ay 50/50 tama at mali*
- tinanggap. ayos lang.

Walang saysay na ilarawan ang lahat ng iba pang mga kaso. Oo, ang isang "mabuting mag-aaral" ay maaaring hindi nasiyahan na ang isang "C" na mag-aaral ay tumatanggap ng parehong marka, batay sa katapatan. Pagkatapos ang lahat ay depende sa mood. O hinihiling ko sa "mabuting mag-aaral" na tumingin sa sahig, dahil "ngayon ay maglalagay ako ng isang kurot ng karunungan," at pagkatapos ay sasabihin ko sa iyo ang kakanyahan ng diskarte, ilarawan kung ano ang mas mahalaga sa buhay at ipaliwanag na mas mahirap para sa "C" na mag-aaral na makapasa kaysa sa kanya, ang "mabuting mag-aaral." ", atbp...
... o, gaya ng ginawa ng aking guro minsan, bubunot ako ng maliit na ngipin sa kahon ng journal sa tapat ng hindi nasisiyahang taong ito at sa susunod na personal kong tapusin ang gawaing laboratoryo para sa kanya. Basta. Upang hindi "mapatay" ang iyong mga kasama.

Ang batayan ng anumang programming sa... puzzle

ΠžΡ†Π΅Π½ΠΊΠΈ
Ang proseso ng edukasyon, tulad ng buong mundo, ay literal na nalulunod sa mga tag ng presyo at mga marka.
Ang mga estudyante ay tao rin, gayunpaman, sa aking opinyon, ang "balangkas" ay dapat na "inalog" din dito.
Sa semestre, lahat ay binigyan ng bonus na gawain. Magrehistro para sa github.com, mag-upload ng walang laman na proyektong C++ doon, gumawa ng 2 update, i-commit ang mga ito at itulak ang mga ito. Para sa mga pagkilos na ito, 15 ang itinalaga. Oo, oo, hindi 4, hindi 5, ngunit 15. Tatlo ang nakaisip nito. Ito ay kahit papaano naiintindihan ng psychotype ng mag-aaral, ngunit pagkatapos ay may isa pang kaso.
Minsan ang aming mag-asawa ay inilipat upang siya ang huli, at sa pamamagitan din ng ilang mga bintana. Gayunpaman, 15 katao pa rin ang dumating dito. Hindi ko nais na magpaliwanag ng isang bagong paksa bilang parangal sa gayong kabayanihan, dahil medyo mahusay na ang pag-unlad namin puro sa mga paksa + ang susunod na paksa ay hindi masyadong simple para sa mga pagod na utak (sa akin at sa mga mag-aaral). Pagkatapos ay nagpasya akong makipag-usap tungkol sa pilosopiya.

β€” Ipinapahayag ko ang isang atraksyon ng walang katulad na pagkabukas-palad. Sinasabi sa akin ng lahat kung anong grado ang ibibigay sa kanya para sa pares ngayon.
Lahat gusto ng "A".
"Isipin mo na doon," sabi ko. Ang lahat ay masaya.
Tahimik.
- bakit walang gusto? 7-ku o 10-ku?
Nanlaki ang mata ng lahat at nagsimulang ngumiti ng nakakaloko.
- Tataya ka ba? Sa magazine?! - isang boses ang nagmula sa likod ng mesa.
- Oo Madali! - Sabi ko, - Nag-aanunsyo ako ng isang blitz sa mga tuntunin, kung sino ang sumagot ng 10 sa aking mga tanong - I'll bet sa ika-20 sa magazine, nang walang catch, kung sino ang hindi sumagot ay siya pa -10 (minus sampu).

"Ang koponan ay sumigla, nagsimula ang isang debate," lahat ay matapat na nakakuha ng mga marka. Dalawa ang nagboluntaryo. Sa mga maliliit na kamalian, humalili sila sa 10 tanong tungkol sa stack, queue, constructor, destructor, garbage collector, encapsulation, polymorphism, hash functions...
Ang bawat isa ay iginuhit sa isang magasin 20... ngunit ang kahalagahan ng magazine at mga marka ay nahulog sa mata ng lahat. Ngayon ay ikinalulungkot kong hindi nagtanong kung gusto nilang "ibahagi" ang kanilang pagtatasa sa isang tao. Tila sa akin ay ibabahagi nila ... Mula ngayon, ang lahat ay nagbigay ng "lab" nang may kaalaman at katapatan.

Mula sa sandaling ito, lumitaw ang isa pang uri ng paghahatid ng lab:


case Ρ‡Π΅ΡΡ‚Π½ΠΎΠΠ΅Π•Π³ΠΎΠΠΎΠžΠ½ΠŸΡ‹Ρ‚Π°Π»ΡΡ

β€” Ikaw ba mismo ang gumawa nito?
- Hindi.
- Bakit?
- Mahirap. Tinulungan ako... *honestly names an excellent student from the group*
- Naiintindihan mo ba?
β€” Sergey Nikolaevich, sa totoo lang, wala akong naiintindihan, kaya nagsulat ako ng mga komento sa tabi ng bawat linya - mabuti, hindi iyon ang bagay sa akin, magiging driver ako ng traktor.
- Ano ito?
β€” *binasa ang komento sa tapat ng linya*.
-…
-…
β€” Ano ang pagkakaiba ng Belarus MTZ at Don 500 at K700?
- ???!.. Ang una ay isang gulong na traktor na ginawa sa Minsk, kadalasang ginagamit sa magaan at katamtamang mga uri ng produksyon ng agrikultura. Mayroon din itong maliliit na gulong sa harap at malalaking gulong sa likod. Ang Don 500 ay karaniwang isang harvester, at ang K-700 Kirovets ay isang Soviet general-purpose off-road wheeled tractor, traction class 5.
- tinanggap. Ayos (!!!).
- Salamat, Sergey Nikolaevich!!!

Sa aking sariling bayan, ang pakikipag-usap tungkol sa TractorA ay halos tulad ng pakikipag-usap tungkol sa SOLID dito.

Genius
May isang Genius sa grupo ko. Ang mag-aaral ay huli na mula sa pinakaunang klase at hindi nakumpleto ang puzzle kasama ng lahat. Pagkatapos ay hiniling ko sa kanya na gawin ang pinlano ko para sa lahat para sa susunod na aralin - isulat sa isang piraso ng papel sa kanyang sarili kung ano ang interesado siya, kung ano ang interes sa kanya. Ayon sa mga resulta, ang "Genius" ay may 2-3 linya: isang bagay tulad ng "Napagtanto ko ang kawalang-kabuluhan ng pagiging"...

...Oh, Diyos, sa aking grupo mayroon akong pangalawang Lao Tzu at Kojima sa isang tao...
Ang batayan ng anumang programming sa... puzzle

Sa aking pagtataka, sa unang dalawang klase ay sinagot niya talaga ang mga tanong tungkol sa mga termino nang napakatalino, ngunit ang epekto ay hindi nagtagal. Ang "henyo" ay tumigil sa pagdalo sa mga klase at sa susunod na oras na siya ay dumating lamang upang maipasa ang unang gawain sa laboratoryo, na matagumpay niyang natapos. hindi pumasa para sa mga layuning dahilan. Pagkatapos, dahil sa pagliban, natural siyang naipon ng mga utang, na, gaya ng kanyang paniniwala, Obligado akong bilangin siya, wika nga, "sa paraang magkakapatid".
Ang pagkabigong dumalo sa mga mag-asawa + tumaas na tibok ng puso ay salungat sa itinatag na mga prinsipyo ng pagdalo sa aking mga klase. Ang "Henyo" ay mayroon lamang 2 paraan sa labas ng sitwasyon - upang i-rehabilitate ang kanyang sarili (ang inaasahang landas) o sumuko sa mga klase at umaasa sa isang "C" na ibinigay ng tanggapan ng dean upang maalis ang tamad.
Well, ito ay "Henyo"... kailangan mong kumilos kaagad ng "matalino". Ang binata na ito ay walang mahanap na mas mahusay kaysa sa pagsulat sa pangkalahatang diyalogo sa VK (kung saan ako at lahat ng mga mag-aaral sa grupong ito ay naroroon) ng isang galit na tirada na may mga sumpa at insulto na itinuro sa akin.

Hmm... Pagkadismaya.
Ano ang pinaka-kapansin-pansin ay na, bago ang pagkumpleto ng pagpaparusa operasyon sa bahagi ng pamamahala ng kolehiyo, siya ay nagpasya na humingi ng paumanhin sa akin. Para saan? - Hindi ko talaga maintindihan. Sa oras na iyon, matagal na akong independiyente sa mga kritisismo, lalo na ang gayong prangka na hangal na pagpuna. Hindi naapektuhan ang aking pagkatao, ngunit ang mga proseso ay mga proseso, at bilang isang guro ay hindi ko maiwasang iulat ito. Ang lumabas, napakaraming reklamo na ang naipon laban sa kanya sa panahon ng kanyang pag-aaral na ang kaso na ito ang huli. Siya ay pinatalsik. Mula sa huling taon ng vocational school.
Marahil ay matagal na niya akong pinagmamasdan sa pamamagitan ng paningin ng isang sniper rifle, ngunit, sa totoo lang, wala akong pakialam.
Eh, henyo, wala kang puso...

Epilogo
Para sa akin personal, ang karanasan sa pagtuturo ay isa sa mga pinaka-nakapagbibigay-liwanag. Nakatulong ito sa akin na pagsamahin ang aking pangunahing kaalaman sa programming pagkatapos mag-aral sa institute. Nakaramdam ako ng kumpiyansa sa napili kong specialty (ang hanay ng mga available na specialty). Ang partikular na kahalagahan ay ang katotohanan na ang "pinaka malikot na grupo" ay nagbigay sa akin ng paggalang at pagkamagiliw - ito ay nagkakahalaga ng marami. Nakahanap ako ng paraan sa kanilang mga panloob na innovator, sinubukan kong itanim ang katotohanan, at hindi ang mga stereotype na priyoridad na ito. Nakakalungkot na hindi kami nakarating sa "palaisipan" sa coding - kapag ang lahat ay kailangang gumawa ng bahagi ng code, at sa pamamagitan ng pagkonekta sa lahat ng mga bahagi sa isa, makakakuha kami ng isang malaking gumaganang programa...
Umaasa ako na balang araw ay maramdaman ito ng bawat isa sa kanila... ngunit sa ngayon, nasa ibaba ang mga screenshot na may mga review mula sa ilang mga mag-aaral pagkatapos ng 2 taon.

Ang batayan ng anumang programming sa... puzzle

Masyado pang maaga upang makagawa ng mga konklusyon tungkol sa tagumpay ng karera ng isang programmer para sa alinman sa kanila, dahil ngayon ang karamihan sa grupong ito ay nag-aaral sa isang unibersidad. Magpapakita ang oras.

Umaasa ako na ang artikulo ay naging kapaki-pakinabang. Salamat sa iyong atensyon!
Malikhaing tagumpay at positibong kalooban, mga kasamahan!

Pinagmulan: www.habr.com

Magdagdag ng komento