Podstawą każdego programowania na... zagadkach

Pozdrawiamy mieszkańców Chabrowska!

W tym artykule chcę opowiedzieć o swoim doświadczeniu jako nauczyciela programowania C++ w szkole wyższej na uczelni technicznej. Było to jedyne w życiu doświadczenie, które wiele mnie nauczyło. Jeśli chodzi o interesujące fakty z Twojej osobistej przeszłości, ten fragment życia jest jednym z pierwszych, które przychodzą na myśl.
Iść.

Najpierw trochę o sobie.
W 2016 roku ukończyłem studia z wyróżnieniem na kierunku Bezpieczeństwo Informacji Systemów Zautomatyzowanych. W czasie studiów wielokrotnie miałam okazję realizować swój potencjał w pisaniu artykułów naukowych, uczestnictwie w konkursach i grantach. W 2015 roku miałem okazję zostać zwycięzcą Ogólnorosyjskiego konkursu dla młodych naukowców „UMNIK”. W 2016 roku, jeszcze przed ukończeniem studiów, był już zatrudniony w dużej organizacji w mieście na stanowisku „Specjalista ds. Bezpieczeństwa Informacji, Kryptografii i Szyfrowania”.
W skrócie coś takiego. Można sobie wyobrazić, że nadal miałem pojęcie o programowaniu.

I oto mamy rok 2017. Studia podyplomowe. Poproszono mnie, abym przez semestr uczył języka C++ na uczelni, za co obiecano mi dobre premie, które miały odciążyć absolwenta, i nic więcej.

Szczerze mówiąc, byłem szczerze zainteresowany wypróbowaniem tego credo.

Pierwsza para
Wrzesień. Pierwszy tydzień szkoły. Przyszli do mnie studenci. „Najniegrzecznsza grupa” – tak ich nazywano.
23 osoby. „Programiści”.

Tak jak się spodziewałem, najpierw się przedstawiłem. Dyskretnie opowiedziałem im treść części „Najpierw trochę o sobie”...
Wtedy zaczęła się rzecz straszna. Na pytanie „Co możesz zrobić?” uczniowie (odtąd będziemy ich tak nazywać) odpowiedzieli, że mogą zrobić trochę więcej niż nic (cóż, to oznaczało, że część z nich wiedziała, jak wygląda MS VS i mogła stworzyć projekt „Hello world”). .. Programiści. Ostatni kurs…

Dalej szczegółowo wyjaśniali „w kolorach”, że niczego ich nie nauczono i że ogólnie byli rozczarowani programowaniem…

Prawie wszystkie dni do następnej lekcji wyglądały tak:
Podstawą każdego programowania na... zagadkach

...ale dzień wcześniej zrodził się pomysł, aby włożyć wysiłek w naprawienie obecnej sytuacji w umysłach i świadomości tych młodych ludzi. A potem „Ostap dał się ponieść”.

Wprowadzenie do programowania
Na następną lekcję przyniosłem... puzzle.
Tak tak. Puzzle. "Jak wytresować smoka." Zasady były proste. Grupa została podzielona na 3 drużyny. Każdy zespół zebrał swoją część. Niektóre to las, inne to ziemia, jeszcze inne to smok pośrodku obrazu. Kiedy cała para układała puzzle, powiedziałem im to układanie puzzli to także programowanieże programiści często korzystają z cudzego kodu, że każdy projekt ma kilka różnych zespołów, funkcji, modułów…
Stopniowo do procesu przyłączali się najbardziej ospali uczniowie.
Kiedy skończyłem wcierać ideę programowania w koncepcje biznesowe, procesy i... zagadki, przyszedł czas na ustalenie zasad szkolenia.
Na każdą lekcję każdy uczeń miał za zadanie zapisać w zeszycie 10 terminów z zakresu informatyki. Każdy. Każdy ma swoje. Rzecz w tym, że wziąłem zeszyt jednego studenta i znalazłem wśród wszystkich terminów maksymalnie zastosowany i zapytałem o nie innego ucznia. Kiedy inny uczeń mówi: „Nie zapisałem tego terminu”, nie było kary (ze względu na zdrowy rozsądek), ale ten uczeń musiał zapisać „brakujące” terminy (jak wszyscy inni, którzy ich nie mieli) i odnaleźć ich znaczenie przy kolejnym zajęciu.

To właśnie zrobiliśmy. Każda lekcja rozpoczynała się od wesołej przypadkowości w stosunku do dwóch lub trzech uczniów. Chłopaki byli podekscytowani tym procesem.

Tematyka lekcji
Rozpoczynając szkolenie bardzo ważne jest zapewnienie studentom dobrej literatury. Według mnie idealna książka to:
Podstawą każdego programowania na... zagadkach

Kiedyś musiałem to czytać ukradkiem, ściskając Microsoft Visual Studio. Wtedy udało mi się zrozumieć programowanie niemal od zera. Idealna opcja.

Skromnie podchodzisz do uczniów i mówisz: „Aby zostać programistą, wystarczy przeczytać i wypróbować wszystko, co jest w tej książce” i rzucasz książkę na stół. Najważniejsze, żeby nie pomylić książek w plecaku...

Przed każdym tematem z pewnością musiałem się solidnie przygotować. Czytałem tego samego Laforeta i kilka innych ciekawych źródeł z Internetu.
Wyjaśnienie poszło niemal od zera. Co więcej, konieczne było zrozumienie, gdzie podstawowa wiedza uczniów została odcięta w sposób dedukcyjny.
Tablice -> Praca z pamięcią (konstruktory) -> Linki -> Jak działa pamięć -> Napędy -> Co to jest dysk fizyczny -> Binarna reprezentacja danych...
Podstawą każdego programowania na... zagadkach

Bardzo mocny test zderzeniowy sprawdzający znajomość podstawowych faktów na temat programowania. Nie jestem już programistą, jestem historykiem!

Oznacza to zatem, że przez kilka par z rzędu toczą się historyczne bitwy. Któregoś dnia sekretarz wydziału zagląda do naszego biura i widząc grupę, rozszerza oczy, spogląda i zamyka drzwi. Jak mi później powiedziano, była w szoku, że TA grupa tak cicho siedziała i tak uważnie mnie słuchała... Ech, spokojnie.

Prace laboratoryjne
Pierwszą zastosowaną informacją są pierwsze „laboratoria”. Łącznie grupa zaliczyła w semestrze 10 prac laboratoryjnych. Na początku stworzyli najprostszą konsolę a + b, a w tym drugim napisali, wprawdzie konsolowe, ale całkiem ciekawe aplikacje, takie jak obliczanie wartości całki jakiejś dowolnie zadanej funkcji za pomocą jednej z trzech metod - w przybliżeniu te same zadania były na końcowej certyfikacji - praca kursowa.

To jest po prostu podejście oparte na akceptacji nie był znajomy. Przez całe studia w instytucie zetknąłem się z faktem, że bycie mądrym i umiejętność przekazywania raportów to nie to samo. To zupełnie mi nie pasowało.

- Chłopaki, pomyślałem. Zbudujmy relację „koncepcyjną”. Jeśli ktoś z Was uważa, że ​​nie potrzebuje programowania, drzwi są tam. Uczę Cię za darmo. Chcę tu widzieć tylko ciekawskich, troskliwych i troskliwych entuzjastów. „Proszę wszystkich, aby nie marnowali nikomu czasu” – powiedziałem pierwszego dnia pracy w laboratorium. Po tym 5 osób natychmiast przestało uczęszczać na zajęcia. Było to logiczne i oczekiwane. Z resztą można było spróbować zrobić coś zrozumiałego.

- ...Nie interesuje mnie obserwowanie, jak ktoś wykonuje twoją pracę tylko po to, żeby ją zaliczyć. Być może nie będziecie programistami, ale będziecie ludźmi na moich zajęciach musieć.

Wyglądało to tak:

case отличник

Uczeń siada ze mną, aby oddać swoją pracę.
- Sam to zrobiłeś?
- Tak.
- Co to jest?
- *odpowiada poprawnie*.
*Pytam o jeszcze kilka punktów. Odpowiedzi poprawne*
- zaakceptowane. Świetnie.

case болтун

- Sam to zrobiłeś?
- Tak.
- Co to jest?
- *odpowiada błędnie / nie odpowiada*.
*Pytam o jeszcze kilka punktów. Ten sam wynik*
- Nie zaakceptowany. PRZEGRANY Czekam na powtórkę.

case хорошист

- Sam to zrobiłeś?
- Tak.
- Co to jest?
- *odpowiada poprawnie, ale nie pewnie, pływa*.
*Pytam o jeszcze kilka punktów. Ten sam wynik*
- zaakceptowane. Cienki.

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

- Sam to zrobiłeś?
- Nie.
- Dlaczego?
- Trudny. Pomógł mi... *szczerze wymienia znakomitego ucznia z grupy*
- Zrozumiałeś?
- Tak, zrozumiałem prawie wszystko.

- Co to jest?
- *odpowiada poprawnie*.
*Pytam o jeszcze kilka punktów. Odpowiada mniej więcej poprawnie, czasem całkowicie błędnie, nawet jeśli jest 50/50 poprawnych i błędnych*
- zaakceptowane. Cienki.

Nie ma sensu opisywać wszystkich innych przypadków. Tak, „dobry uczeń” może być niezadowolony, że uczeń „C” otrzymuje tę samą ocenę, ze względu na uczciwość. Wtedy wszystko zależy od nastroju. Albo proszę „dobrego ucznia”, żeby popatrzył na podłogę, bo „teraz wrzucę szczyptę mądrości”, a potem opowiem o istocie tego podejścia, opiszę, co w życiu ma większą wartość i wyjaśnię że uczniowi „C” znacznie trudniej było zdać egzamin niż jemu, „uczniowi dobremu.””, itd…
... albo, jak to kiedyś zrobił mój nauczyciel, narysuję mały ząbek w dzienniku naprzeciw tej niezadowolonej osoby i następnym razem osobiście dokończę za niego pracę laboratoryjną. Tylko. Aby nie „gasić” swoich towarzyszy.

Podstawą każdego programowania na... zagadkach

Оceny
Proces edukacyjny, podobnie jak cały świat, dosłownie tonie w metkach i ocenach.
Studenci to też ludziejednak moim zdaniem i tutaj należało „wstrząśnąć ramami”.
W trakcie semestru każdy otrzymał dodatkowe zadanie. Zarejestruj się Github.com, prześlij tam pusty projekt C++, dokonaj 2 aktualizacji, zatwierdź je i wypchnij. Do tych działań przydzielono 15. Tak, tak, nie 4, nie 5, ale 15. Trzej to zrozumieli. Było to w jakiś sposób zrozumiałe dla psychotypu studenta, ale był też inny przypadek.
Kiedyś naszą parę przeniesiono tak, że była ostatnia, a także przez kilka okien. Mimo to zgłosiło się na nie 15 osób. Nie chciałem wyjaśniać nowego tematu na cześć takiego bohaterstwa, ponieważ poczyniliśmy już całkiem spore postępy w kwestiach czysto tematycznych + następny temat nie był zbyt prosty dla zmęczonych mózgów (moich i uczniów). Wtedy zdecydowałem się porozmawiać o filozofii.

— Ogłaszam atrakcję o niespotykanej hojności. Każdy mi mówi, jaką mu dać ocenę za dzisiejszą parę.
Każdy chciał „A”.
„Rozważ, że już tam jesteś” – powiedziałem. Wszyscy byli zadowoleni.
Cisza
- dlaczego nikt nie chciał? 7-ku lub 10-ku?
Oczy wszystkich się rozszerzyły i zaczęli głupio się uśmiechać.
- Założysz się? Do magazynu?! - odezwał się głos zza biurka.
- Tak, to proste! - Powiedziałem - ogłaszam blitz na warunkach, kto odpowie na 10 moich pytań - założę się 20 do magazynu, bez haczyka, kto nie odbiera, ten jest tym jedynym -10 (minus dziesięć).

„Zespół ożywił się, rozpoczęła się debata”, wszyscy uczciwie zasłużyli na oceny. Dwóch zgłosiło się na ochotnika. Z drobnymi niedokładnościami na zmianę zadawali 10 pytań dotyczących stosu, kolejki, konstruktora, destruktora, modułu zbierającego elementy bezużyteczne, enkapsulacji, polimorfizmu, funkcji skrótu...
Każdy z nich został narysowany w czasopiśmie 20...ale w oczach wszystkich spadło znaczenie magazynu i ocen. Teraz żałuję, że nie zapytałam, czy zechcą „podzielić się” z kimś swoją oceną. Wydaje mi się, że by się podzielili... Od tej chwili wszyscy przekazywali „laboratorium” z wiedzą i uczciwością.

Od tego momentu pojawił się inny rodzaj dostawy laboratoryjnej:


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

- Sam to zrobiłeś?
- Nie.
- Dlaczego?
- Trudny. Pomógł mi... *szczerze wymienia znakomitego ucznia z grupy*
- Zrozumiałeś?
— Siergiej Nikołajewicz, szczerze mówiąc, nic nie rozumiem, więc napisałem komentarze przy każdym wierszu — cóż, to nie moja sprawa, będę kierowcą traktora
- Co to jest?
— *czyta komentarz naprzeciwko wiersza*.
-…
-…
— Jaka jest różnica między Białoruskim MTZ a Don 500 i K700?
-?!.. Pierwszy to traktor kołowy produkcji Mińska, często wykorzystywany w lekkich i średnich rodzajach produkcji rolniczej. Ma również małe koła z przodu i duże koła z tyłu. Don 500 to w zasadzie kombajn, a K-700 Kirovets to radziecki ciągnik kołowy ogólnego przeznaczenia, klasa trakcji 5.
- zaakceptowane. Cienki (!!!).
- Dziękuję, Siergiej Nikołajewicz!!!

W mojej ojczyźnie mówienie o TractorA to prawie jak mówienie o SOLID tutaj.

Geniusz
W mojej grupie był geniusz. Uczeń spóźnił się już na pierwsze zajęcia i nie ułożył puzzle razem z innymi. Następnie poprosiłem go, aby zrobił to, co zaplanowałem dla wszystkich na następną lekcję - napisał na kartce papieru, czym się interesuje, co go interesuje. Według wyników „Geniusz” miał 2-3 linijki: coś w rodzaju „Zdaję sobie sprawę z daremności istnienia”…

...O Boże, w mojej grupie mam drugiego Lao Tzu i Kojimę w jednej osobie...
Podstawą każdego programowania na... zagadkach

Ku mojemu zdziwieniu już na pierwszych dwóch zajęciach rzeczywiście genialnie odpowiadał na pytania dotyczące terminów, ale efekt nie trwał długo. „Geniusz” przestał chodzić na zajęcia i następnym razem przyszedł tylko po to, by zaliczyć pierwszą pracę laboratoryjną, którą pomyślnie ukończył. nie przeszedł z przyczyn obiektywnych. Następnie z powodu absencji w naturalny sposób narósł w długi, które – jego zdaniem – Musiałem go po prostu policzyć, że tak powiem, „po bratersku”.
Brak obecności par + zwiększone tętno było sprzeczne z ustalonymi zasadami uczęszczania na moje zajęcia. „Geniusz” miał tylko 2 wyjścia z sytuacji – zrehabilitować się (spodziewaną ścieżką) albo zrezygnować z zajęć i liczyć na „C” wydane przez dziekanat w celu pozbycia się próżniaka.
No cóż, to jest „geniusz”… trzeba od razu zagrać „genialnie”. Ten młody człowiek nie mógł znaleźć nic lepszego, jak napisać w ogólnym dialogu na VK (gdzie byłem ja i wszyscy uczniowie w tej grupie) gniewną tyradę z przekleństwami i obelgami skierowanymi pod moim adresem.

Hmm... Rozczarowanie.
Najbardziej uderzające było to, że przed zakończeniem kary ze strony kierownictwa uczelni postanowił mnie przeprosić. Po co? - Szczerze nie rozumiem. Już dawno byłem niezależny od krytyki, zwłaszcza tej szczerze głupiej krytyki. Nie miało to wpływu na moją osobowość, ale procesy są procesami i jako nauczyciel nie mogłem powstrzymać się od poinformowania o tym. Jak się okazało, już w czasie studiów narosło na niego tyle skarg, że ta sprawa okazała się ostatnią. Został wydalony. Z ostatniej klasy szkoły zawodowej.
Być może od dłuższego czasu obserwuje mnie przez celownik snajperki, ale szczerze mówiąc, nie obchodzi mnie to.
Ech, geniuszu, jesteś bez serca...

Epilog
Dla mnie osobiście doświadczenie nauczania było jednym z najbardziej pouczających. Pomogło mi to utrwalić moją podstawową wiedzę z zakresu programowania po studiach w instytucie. Poczułam się pewnie w wybranej przeze mnie specjalności (zakresie dostępnych specjalności). Szczególnie ważny jest fakt, że „najniegrzecznsza grupa” nasyciła mnie szacunkiem i życzliwością - to jest dużo warte. Udało mi się znaleźć sposób na ich wewnętrznych innowatorów, starałem się zaszczepić rzeczywistość, a nie te stereotypowe priorytety. Szkoda, że ​​nie dotarliśmy do „zagadki” w kodowaniu – gdy każdy musiałby wykonać część kodu, a łącząc wszystkie części w jedną, otrzymalibyśmy duży działający program…
Mam nadzieję, że pewnego dnia każdy z nich to poczuje... ale na razie poniżej screeny z recenzjami kilku uczniów po 2 latach.

Podstawą każdego programowania na... zagadkach

Jest zbyt wcześnie, aby wyciągać wnioski na temat powodzenia kariery programisty dla któregokolwiek z nich, ponieważ obecnie większość tej grupy studiuje na uczelni. Czas pokaże.

Mam nadzieję, że artykuł był przydatny. Dziękuję za uwagę!
Twórczy sukces i pozytywny nastrój, koledzy!

Źródło: www.habr.com

Dodaj komentarz