Здравейте, Хабровци!
В тази статия искам да споделя опита си като преподавател по C++ в колежа към техническия университет. Това беше уникален опит в живота ми, който ме научи на много. Когато стане въпрос за интересни факти от личното ми минало — този откъс от живота идва наум сред първите.
Да тръгваме.
Първо малко за мен.
През 2016 година завърших висшето си образование с отличен диплом по специалността „Информационна сигурност на автоматизирани системи“. През обучението си многократно успявах да реализирам потенциала си в написването на научни статии, участие в конкурси и грантове. През 2015 година стана победител в националния конкурс за млади учени „МНЕНИЕ“. През 2016 година, преди да завърша, вече бях започнал работа в голяма организация в града на поста „Специалист по информационна сигурност, криптография и шифриране“.
Вкратце, ето така. Може да се предполага, че за програмирането все пак имах представа.
И ето, 2017 година. Аспирантура. Помолиха ме да преподавам C++ в колежа през семестъра, за което ми обещаха добри бонуси за облекчаване на товара на аспиранта и повече нищо.
Честно казано, наистина ми беше интересно да опитам това призвание.
Първият час
Септември. Първата учебна седмица. Студентите дойдоха при мен. „Най-неконтролируемата група“ — така я наричаха.
23 души. „Програмисти“.
Както се полага, за начало се представих. Разказах им сдържано съдържанието на частта „Първо малко за мен“...
След това започна страшното. На въпроса „Какво можете да правите?“ студентите (да ги наричаме така) отговориха, че могат малко повече от съвсем нищо (ну, това означаваше, че някои от тях знаеха как изглежда MS VS и могат да създадат проект „Здравей, свят“) ... Програмисти. Четвърти курс...
След това те подробно, „с цветове“ обясниха, че не са научили нищо и че всъщност са разочаровани от програмирането...
Почти всички дни преди следващото занятие минаха така:

… но ден преди него ми хрумна идея да насоча усилията си към поправянето на ситуацията в умовете и съзнанията на тази младеж. И тогава „Остапа понесе“.
Въведение в програмирането
На следващото занятие донесох… пъзел.
Да-да. Пъзел. „Как да опитоми дракона“. Правилата бяха прости. Групата беше разделена на 3 екипа. Всеки екип сглобяваше частта си. Едните — гора, други — земя, третите — дракона в центъра на картината. Докато сглобяваха пъзела през целия час, аз разказвах, че сглобяването на пъзела е също програмиране, че програмистите често използват чужд код, че във всеки проект има няколко различни екипа, функции, модули...
Постепенно към процеса се включиха и най-неподвижните студенти.
Когато завърших с въвеждането на концепцията за програмиране в бизнес процесите и… пъзелите, дойде време да установим правилата на обучението.
За всяко занятие всеки студент трябваше да напише в тетрадката си по 10 термина от IT. Каквито и да е. Всеки със свои. Същността беше, че взимах тетрадката на един студент и намирах сред всички термини максимално приложими и питах друг студент. Когато другият студент казва "Не записах този термин", това не беше наказуемо (въз основа на здравия смисъл), но този студент трябваше да напише "липсващите" термини (както и всички, които не ги имаха) и да намери техните значения за следващото занятие.
Така и постъпихме. Всяко занятие започваше с енергичен случаен избор на двама-трима студенти. Хлапетата бяха настроени оптимистично към този процес.
Темите на занятията
Започвайки обучението, е много важно да предоставите на учащите добри литературни източници. На моето мнение, идеалното пособие беше книгата:

Преди време, с труд, успях да я прочета в обятията на Microsoft Visual Studio. Тогава успях да разбера програмирането практически от нулата. Идеалният вариант.
Скромно отиваш при студентите и казваш: "За да станете програмисти, трябва просто да прочетете и опитате всичко, което е в тази книга", и оставяш книгата на масата. Най-важното — да не объркаш книгите в раницата си…
Преди всяка тема, разбира се, трябваше основателно да се подготвя. Четях същия Лафоре и още няколко интересни източника от мрежата.
Обясняването ставаше почти от основите. И е нужно да разбереш къде при студентите има пропадане на базови знания, което трябваше да deducere.
Масиви -> Работа с паметта (конструктори) -> Ссылки -> Как работи паметта -> Носители -> Какво е физически носител -> Двоично представяне на данни…

Много сериозен краш-тест на знанията за фундаментални факти относно програмирането. Вече не съм програмист, а историк!
И така, историческите битки продължаваха няколко двойки последователно. Веднъж секретар от катедрата надникна в кабинета и видя групата, изненада се, вгледа се и затвори вратата. Както ми съобщиха по-късно, тя беше в шок, че ТАЗИ група седеше толкова тихо и толкова внимателно ме слушаше… Хмм, лесно.
Лабораторни работи
Първоначални приложни знания — първите "лаби". Само за семестър групата предаде 10 лабораторни работи. В първите те правеха най-простите конзолни a+b, а в последните пишеха, макар и конзолни, но доста интересни приложения, като изчисление на стойността на интеграла на произволно зададена функция с един от трите метода — подобни задачи бяха на финалната атестация — курсовата работа.
Единствено подходът на приемане не беше свикнал. През цялото учебно време в университета аз се сблъсквах с факта, че да бъдеш умен и да можеш да предаваш отчетни работи — не е едно и също. Този факт ме дразнеше дълбоко.
— Хора, помислих си. Нека изградим "понятийни" отношения. Ако някой от вас смята, че програмирането не му е нужно — вратата е там. Аз ви преподавам безплатно. Искам да виждам тук само любопитни, загрижени и заинтересовани ентусиасти. Всички останали моля да не губят общото време — казах в първия ден на приемане на лабораторни работи. След това 5 души веднага спряха да идват на занятията. Това беше логично и очаквано. С останалите можеше да се опитам да направя нещо смислено.
— … не ми е интересно да гледам как някой друг е свършил работата, само за да я предаде. Можете да не сте програмисти, но на моите занятия трябва да сте принудени.
Изглеждаше така:
случай отличникСяда до мен студент, за да предаде работата.
— Сам ли го направи?
— Да.
— Какво е това?
— *отговаря правилно*.
*Питам още за няколко момента. Отговаря вярно*
— прието. Отлично.
случай болтун — Сам ли го направи?
— Да.
— Какво е това?
— *отговаря НЕправилно / не отговаря*.
*Питам още за няколко момента. Резултатът същия*
— НЕ е прието. НЕЗАДОВОЛИТЕЛНО. Чакам за повторно изпитване.
случай добър ученик — Сам ли го направи?
— Да.
— Какво е това?
— *отговаря вярно, но неуверено, колебливо*.
*Питам още за няколко момента. Резултатът същия*
— прието. Добре.
случай равен троечник — Сам ли го направи?
— Не.
— Защо?
— Трудно. Помагаше ми… *честно споменава студент-отличник от групата*
— Разбираше ли?
— Да, почти всичко разбрах.
— Какво е това?
— *отговаря правилно*.
*Питам още за няколко момента. Отговаря по-горе-долу вярно, понякога съвсем мимо, макар и на 50 на 50 верни и неверни*
— прието. Добре.
Няма смисъл да описвам останалите случаи. Да, "добър ученик" може да е недоволен, че "троечник" получава същата оценка, излизайки на честността. Тогава всичко зависи от настроението. Или моля "добрия ученик" да погледне на пода, защото "сега ще дам мъничка мъдрост", а след това обяснявам подхода, описвам какво в живота има по-голяма стойност и пояснявам, че "троечникът" е имал много по-трудно да се яви, отколкото той, "добрият ученик", и т.н…
… или, както по времето на моят преподавател, нарисувам малък зъб в клетката на дневника срещу този недоволен и следващия път специално за него допълвам лабораторната работа. Просто така. За да не "гаси" другите.

Оценки
Учебният процес, както и целият свят, буквално потъва в ценови листи и оценки.
Студентите също са хора, но "рамките", според мен, трябваше да се "подбутват" и тук.
През семестъра на всички беше дадена бонусна задача. Регистрирайте се на , качете там празен проект на C++, направете 2 актуализации, комитирайте ги и ги пушнете. За тези действия бяха предвидени 15. Да, да, не 4, не 5, а 15. Трима се справиха. На психотипа на студента това беше разбираемо, но следващият случай беше друг.
Веднъж, по време на лекция, нашата група беше прехвърлена така, че стана последна, и то на четвърта пара. Въпреки това, 15 души все пак дойдоха. Не ми се искаше да обяснявам новата тема в чест на такъв героизъм, тъй като вече бяхме напреднали доста добре с темите, а следващата не беше особено проста за уморените мозъци (моите и на учениците). Тогава реших да поговоря за философия.
— Обявявам атракцион на невижданата щедрост. Всички ми казват каква оценка да му дам за днешната лекция.
Всички искаха по "пет".
— Считайте, че вече има, — казах аз. Всички се зарадваха.
Тишина.
— А защо никой не искал 7-ка или 10-ка?
Всички се втрещиха и започнаха глупаво да се усмихват.
— А вие наистина ли ще го запишете в журнала?! — дочу се глас от последната парта.
— Да, лесно! — казах аз, — обявявам блиц по термините, който отговори на 10 от моите въпроси — му поставям 20-ка в журнала, без уловки, който не отговори — му -10 (минус десет).
"Отборът се оживи, започна полемика", всички получиха честно заработените си оценки. Двама излязоха. С малки неточности по реда отговориха на 10 въпроса за стек, опашка, конструктор, деструктор, събирка на боклук, инкапсулация, полиморфизъм, хеш-функции…
На всеки в журнала беше нарисувана 20-ка… но значението на журнала и оценките падна в очите на всеки. Сега съжалявам, че не попитах, искат ли да "споделят" оценката си с някого. Мисля, че биха споделили… Оттогава всеки правеше "лаба" с познания и честност.
От този момент се появи още един тип сдаване на лаба:
case честноНеЕгоНоОнПытался — Сам ли го направи?
— Не.
— Защо?
— Трудно. Помагаше ми… *честно споменава студент-отличник от групата*
— Разбираше ли?
— Сергей Николаевич, искрено — не разбирам, сам написах коментарите до всяка редица — не е това, аз ще стана тракторист.
— Какво е това?
— *чете коментара до реда*.
— …
— …
— С какво се различава Беларус МТЗ от Дон 500 и от К700?
— ??!.. Първият — колесен трактор, произведен в Минск, често използван в леки и средни типове земеделско производство. Има малки отпред и големи отзад колела. Дон 500 — основно комбайн за жънене, а К-700 "Кировец" — съветски колесен трактор с универсално предназначение, повишена проходимост, клас на теглене 5.
— Разбрано. Добре (!!!).
— Благодаря, Сергей Николаевич!!!
В моята родина разговорите за трактори са почти като тук за SOLID.
Гений
В групата ми имаше Гений. Студент, който на първата лекция закъсня и не се присъедини към всички, за да сглоби пъзела. Тогава го помолих да направи това, което бях планирал за следното занятие — да напише на листа за себе си, с какво се интересува и какво му е интересно. По резултатите „Гения“ имаше 2-3 реда: нещо от сорта на „изучавам суетността на битието“…
… О, Боже, в групата ми в едно лице едновременно бяха втори Лао Цзъ и Кодзима …

Към моето учудване, на първите два часа той наистина блестящо отговаряше на въпросите относно термините, но ефектът продължи кратко. "Геният" спря да посещава занятия и следващия път дойде само за да сдаде първата лабораторна работа, която успешно не успя поради обективни причини. След това, заради отсъствията, той естествено натрупа дългове, които, както смяташе, аз бях просто длъжен да му ги зачетам, така да се каже, "братски"..
Неходенето на занятия + завишеното самочувствие противоречеше на установените принципи за посещение на моите занятия. "Геният" имаше само два изхода от ситуацията – да се реабилитира (очакваният път) или да пренебрегне занятията и да се надява на "тройка", поставена от деканата, за да се освободи от безделника.
Но това е "Геният"... тук трябваше да постъпи "гениално". Този млад човек не намери нищо по-добро от това да напише в общия диалог в VK (където бях аз и всички студенти от тази група) гневна тирада с ругатни и обиди в моя адрес.
Мда… Разочарование.
Най-много ме порази фактът, че преди да завърши процеса на наказателната операция от страна на управлението на колежа, той реши да се извини пред мен. За какво? – искрено не ми беше ясно. В този момент аз отдавна бях независим от критика, особено от такава, откровено, глупава. Моята личност не беше засегната, а процесите – са процеси, като преподавател не можех да не съобщя за това. Както се оказа, по време на обучението му бяха натрупани вече толкова оплаквания, че този случай се оказа последен. Беше отстранен. От последния курс на ПТУ колежа.
Може би той отдавна ме наблюдава с мерника на снайперската си пушка, но честно казано, все ми е все едно.
Ах, гениалност, безсърдечна си...
Епилог
Лично за мен опитът в преподаването беше един от най-учителните. Това ми помогна да затвърдя фундаменталните знания по програмиране след завършването в института. Усетих увереност в избраната специалност (спектър от налични специалности). Особено важно е, че "най-непослушната група" прояви към мен уважение и приятелство - това струва много. Успях да намеря пътя към техните вътрешни новатори, опитах се да привлека реалността, а не тези шаблонни приоритети. Жалко е, че не стигнахме до "пъзелите" в коденето - когато всеки трябваше да направи част от кода и, съединявайки всички части в едно, щяхме да получим голяма работеща програма...
Надявам се, че някой ден всеки от тях ще усети това… а засега по-долу са събрани скрийншотове с отзиви на няколко студента след 2 години.

Все още е рано да се правят изводи относно успешността на кариерата на програмист при когото и да било от тях, тъй като сега по-голямата част от тази група учи в университет. Времето ще покаже.
Надявам се, че статията беше полезна. Благодаря за вниманието!
Творчески успехи и положително настроение, колеги!
Източник: habr.com
