Основата на всяко програмиране върху... пъзели

Поздрави, жители на Хабровск!

В тази статия искам да говоря за опита си като учител по програмиране на C++ в колеж към технически университет. Това беше преживяване веднъж в живота, което ме научи на много. Когато става въпрос за любопитни факти от личното ви минало, този пасаж от живота е един от първите, които идват на ум.
Да вървим.

Първо, малко за себе си.
През 2016 г. завърших института с отличие със специалност „Информационна сигурност на автоматизираните системи“. По време на обучението си успях многократно да реализирам потенциала си в писането на научни статии, участие в конкурси и стипендии. През 2015 г. имах възможността да стана победител във Всеруския конкурс за млади учени „УМНИК“. През 2016 г., преди да завърши обучението си, той вече е назначен в голяма организация в града като „Специалист по информационна сигурност, криптография и криптиране“.
Накратко, нещо подобно. Можете да си представите, че все още имах идея за програмиране.

И ето я 2017 г. Следдипломно обучение. Бях помолен да преподавам C++ в колеж за един семестър, за което ми бяха обещани добри бонуси, за да облекча бремето на дипломиран студент и нищо повече.

Честно казано, искрено се интересувах да се пробвам в това кредо.

Първи чифт
Септември. Първа учебна седмица. При мен идваха ученици. „Най-палавата група“ - така ги наричаха.
23 души. "Програмисти".

Както се очакваше, първо се представих. Дискретно им разказах съдържанието на частта „Първо, малко за себе си“...
Тогава започна ужасното. На въпроса "Какво можеш да направиш?" студентите (отсега нататък ще ги наричаме така) отговориха, че могат да направят малко повече от нищо (е, това означаваше, че някои от тях знаят как изглежда MS VS и могат да създадат проект „Hello world“). .. Програмисти. Последен курс…

По-нататък те обясниха подробно, „на цвят“, че нищо не са ги учили и като цяло са разочаровани от програмирането...

Почти всички дни до следващия ми час минаха така:
Основата на всяко програмиране върху... пъзели

... но предишния ден възникна идеята да се положат усилия за коригиране на сегашното състояние в умовете и съзнанието на тези млади хора. И тогава „Остап се увлече“.

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

Това и направихме. Всеки урок започваше с весела случайност по отношение на двама или трима ученици. Момчетата имаха ентусиазъм за този процес.

Теми на урока
Когато започвате обучението, е много важно да осигурите на учениците добра литература. Според мен идеалната книга беше:
Основата на всяко програмиране върху... пъзели

По едно време трябваше да го прочета крадешком, докато прегръщах Microsoft Visual Studio. Тогава успях да разбера програмирането почти от нулата. Перфектен вариант.

Отивате скромно при учениците и казвате: „За да станете програмисти, просто трябва да прочетете и опитате всичко в тази книга“ и хвърляте книгата на масата. Основното е да не бъркате книгите в раницата си...

Преди всяка тема със сигурност трябваше да се подготвя старателно. Четох същия Laforet и няколко други интересни източника от Интернет.
Обяснението тръгна почти от нулата. Освен това беше необходимо да се разбере къде основните знания на учениците бяха дедуктивно отрязани.
Масиви -> Работа с памет (конструктори) -> Връзки -> Как работи паметта -> Дискове -> Какво е физическо устройство -> Двоично представяне на данни...
Основата на всяко програмиране върху... пъзели

Много силен краш тест за познаване на основни факти за програмирането. Вече не съм програмист, аз съм историк!

И така, това означава, че се водят исторически битки за няколко двойки подред. Един ден секретар от отдела надниква в офиса ни и като вижда групата, ококорва очи, надниква и затваря вратата. Както ми казаха по-късно, тя беше шокирана, че ТАЗИ група седи толкова тихо и ме слуша толкова внимателно... Ех, лесно.

Лабораторни работи
Първата приложена информация са първите „лаборатории“. Общо през семестъра групата премина 10 лабораторни упражнения. Отначало направиха най-простата конзола a + b, а в последния те написаха, макар и базирани на конзола, но доста интересни приложения, като например изчисляване на стойността на интеграла на някаква произволно зададена функция, използвайки един от трите метода - приблизително същите задачи бяха на окончателното сертифициране - курсова работа.

Това е просто подходът на приемане не беше познат. По време на обучението си в института се сблъсках с факта, че да си умен и да можеш да предаваш доклади не е едно и също нещо. Това изобщо не ме устройваше.

- Момчета, мислех си. Нека изградим „концептуална“ връзка. Ако някой от вас смята, че няма нужда от програмиране, вратата е там. Уча те безплатно. Искам да виждам тук само любопитни, грижовни и грижовни ентусиасти. „Моля всички останали да не губят времето на всички“, казах в първия ден от лабораторната работа. След това веднага 5 души спряха да посещават часовете. Това беше логично и очаквано. Можеше да се опитаме да направим нещо разбираемо с останалите.

- ... Не ми е интересно да гледам как някой върши твоята работа, само за да я подминеш. Може да не сте програмисти, но ще сте хора в моите класове трябва да.

Изглеждаше така:

case отличник

Един ученик сяда с мен, за да предаде работата си.
— Сам ли го направи?
- Да.
- Какво е това?
- *отговаря правилно*.
*Питам за още няколко точки. Отговаря правилно*
- прието. Страхотен.

case болтун

— Сам ли го направи?
- Да.
- Какво е това?
- *отговаря неправилно / не отговаря*.
*Питам за още няколко точки. Същият резултат*
- Не се приема. СЕ ПРОВАЛИ Чакам повторната.

case хорошист

— Сам ли го направи?
- Да.
- Какво е това?
- *отговаря правилно, но не уверено, плува*.
*Питам за още няколко точки. Същият резултат*
- прието. Глоба.

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

— Сам ли го направи?
- Не.
- Защо?
- Труден. Той ми помогна... *честно посочва отличничка от групата*
- Разбра ли?
- Да, разбрах почти всичко.

- Какво е това?
- *отговаря правилно*.
*Питам за още няколко точки. Отговаря повече или по-малко правилно, понякога напълно грешно, дори ако е 50/50 правилен и неправилен*
- прието. Глоба.

Няма смисъл да описвам всички останали случаи. Да, „добър ученик“ може да е недоволен, че студент „C“ получава същата оценка въз основа на честност. След това всичко зависи от настроението. Или моля „добрия ученик“ да погледне в пода, защото „сега ще пусна щипка мъдрост“, а след това ще ви кажа същността на подхода, ще опиша какво в живота е по-ценно и ще обясня че е било много по-трудно за студента „С“ да премине, отколкото за него, „добрия ученик.“ и т.н.
... или, както моят учител някога, ще нарисувам зъбче в кутията на дневника срещу този недоволен човек и следващия път лично ще завърша лабораторната работа вместо него. Просто. За да не „гасите“ другарите си.

Основата на всяко програмиране върху... пъзели

Оценки
Образователният процес, както и целият свят, буквално се удави в ценови етикети и оценки.
Студентите също са хора, но според мен и тук трябваше да се „разклати“ „рамката“.
През семестъра всеки получи бонус задача. Регистрирайте се за github.com, качете празен C++ проект там, направете 2 актуализации, ангажирайте ги и ги натиснете. За тези действия бяха определени 15. Да, да, не 4, не 5, а 15. Трима го разбраха. Това някак си беше разбираемо за психотипа на ученика, но тогава имаше друг случай.
Веднъж двойката ни беше преместена, така че тя беше последната, а също и през няколко прозореца. На него обаче все пак дойдоха 15 души. Не исках да обяснявам нова тема в чест на такъв героизъм, тъй като вече бяхме напреднали доста добре чисто по темите + следващата тема не беше много проста за уморените мозъци (моите и на учениците). Тогава реших да говоря за философия.

— Обявявам атракция с безпрецедентна щедрост. Всеки ми казва каква оценка да му дам за двойката днес.
Всички искаха "А".
„Смятай, че вече е там“, казах аз. Всички бяха щастливи.
Silence.
- защо никой не иска? 7-ку или 10-ку?
Очите на всички се разшириха и започнаха да се усмихват глупаво.
- Ще заложите ли? Към списанието?! - чу се глас от задното бюро.
- Да Лесно! - казах, - обявявам блиц по условия, който отговори на 10 от въпросите ми - залагам на 20-ти към списанието, без уловка, който не отговори, той е този -10 (минус десет).

„Отборът се оживи, започна дебат“, всички честно са спечелили оценки. Двама се явиха доброволци. С дребни неточности се редуваха с 10 въпроса за стека, опашката, конструктора, деструктора, събирача на отпадъци, капсулирането, полиморфизма, хеш функциите...
Всеки един беше нарисуван в списание 20... но важността на списанието и оценките паднаха в очите на всички. Сега съжалявам, че не попитах дали биха искали да „споделят“ оценката си с някого. Струва ми се, че щяха да споделят... Оттук нататък всички предадоха „лабораторията” със знание и честност.

От този момент нататък се появи друг вид лабораторна доставка:


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

— Сам ли го направи?
- Не.
- Защо?
- Труден. Той ми помогна... *честно посочва отличничка от групата*
- Разбра ли?
— Сергей Николаевич, честно казано, нищо не разбирам, затова написах коментари до всеки ред — добре, това не е моето нещо, ще бъда тракторист
- Какво е това?
— *чете коментара срещу реда*.
- ...
- ...
— Каква е разликата между Беларус МТЗ и Дон 500 и К700?
- ??!.. Първият е колесен трактор, произведен в Минск, често използван в леки и средни видове селскостопанско производство. Освен това има малки колела отпред и големи колела отзад. Дон 500 е основно комбайн, а К-700 Кировец е съветски колесен трактор с висока проходимост с общо предназначение, клас на сцепление 5.
- прието. Глоба (!!!).
- Благодаря ви, Сергей Николаевич!!!

В моята родина да говоря за TractorA е почти като да говоря за SOLID тук.

гений
В моята група имаше един гений. Ученикът закъсня много от първия час и не нареди пъзела заедно с всички останали. Тогава го помолих да направи това, което планирах за всички за следващия урок - да си напише на лист това, което го интересува, какво го интересува. Според резултатите "Геният" имаше 2-3 реда: нещо като "Осъзнавам безсмислието на съществуването"...

...О, Боже, в моята група имам втория Лао Дзъ и Коджима в едно лице...
Основата на всяко програмиране върху... пъзели

За моя изненада, в първите два часа той наистина отговаряше блестящо на въпроси за термини, но ефектът не продължи дълго. „Геният“ спря да посещава часовете и следващия път дойде само за да премине първата лабораторна работа, която завърши успешно. не премина по обективни причини. След това, поради отсъствия, той естествено натрупа дългове, които, както смяташе, Просто бях длъжен да го броя, така да се каже, "по братски".
Непосещаването на двойки + повишен пулс беше в противоречие с установените принципи на посещаване на часовете ми. „Геният“ имаше само 2 изхода от ситуацията - да се реабилитира (очакваният път) или да се откаже от часовете и да се надява на „С“, дадена от деканата, за да се отърве от мързеливеца.
Е, това е „Гении“... трябва веднага да действаш „брилянтно“. Този млад човек не намери нищо по-добро от това да напише в общия диалог във VK (където бяхме аз и всички студенти от тази група) гневна тирада с ругатни и обиди по мой адрес.

Хм... Разочарование.
Най-фрапиращото беше, че преди да приключи наказателната акция от страна на ръководството на колежа, той реши да ми се извини. За какво? - Искрено не разбирам. По това време отдавна бях независим от критиката, особено от такава откровено глупава критика. Личността ми не беше засегната, но процесите са си процеси и като учител нямаше как да не го съобщя. Оказа се, че по време на следването му срещу него вече са се натрупали толкова много оплаквания, че този случай се оказва последният. Изгониха го. От последната година в професионалното училище.
Може би той ме наблюдава дълго време през мерника на снайперска пушка, но, честно казано, не ме интересува.
Ех, гений, ти си безсърдечен...

Епилог
Лично за мен преподавателският опит беше един от най-поучителните. Това ми помогна да консолидирам основните си познания по програмиране след обучението в института. Чувствах се уверен в избраната от мен специалност (обхвата от налични специалности). От особено значение е фактът, че „най-палавата група“ ме пропи с уважение и дружелюбие - това си струва много. Успях да намеря път към вътрешните си новатори, опитах се да внуша реалност, а не тези стереотипни приоритети. Жалко, че не стигнахме до "пъзела" в кодирането - когато всеки ще трябва да направи част от кода и като свържем всички части в едно, ще получим голяма работеща програма...
Надявам се, че един ден всеки от тях ще почувства това... но засега по-долу има екранни снимки с отзиви от няколко студенти след 2 години.

Основата на всяко програмиране върху... пъзели

Твърде рано е да се правят изводи за успеха на кариерата на програмист за някой от тях, тъй като сега повечето от тази група учат в университет. Времето ще покаже.

Надявам се статията да е била полезна. Благодаря за вниманието!
Творчески успех и положително настроение, колеги!

Източник: www.habr.com

Добавяне на нов коментар