Jak uczyłem, a potem pisałem podręcznik do Pythona

Jak uczyłem, a potem pisałem podręcznik do Pythona
Cały ubiegły rok pracowałem jako nauczyciel w jednym z prowincjonalnych ośrodków edukacyjnych (dalej — OŚ), specjalizującym się w nauczaniu programowania. Nie będę nazywał tego ośrodka, postaram się w ogóle obejść bez nazw firm, nazwisk autorów itd.

Pracowałem jako nauczyciel Pythona i Javy. Ten OŚ kupował materiały dydaktyczne do Javy, a Pythona uruchomili, gdy przyszedłem i zaproponowałem im to.

Podręcznik dla uczniów (w zasadzie podręcznik lub samouczek) pisałem w Pythonie, ale znaczący wpływ miało nauczanie Javy oraz materiały dydaktyczne, które były tam używane.

Powiedzieć, że były okropne — to nic nie powiedzieć. Modus podręcznika do Javy, który dostarcza jedna bardzo znana firma w Rosji, polegał nie na tym, aby nauczyć człowieka podstaw tego języka jako całości i paradygmy OOP w szczególności, ale na tym, aby rodzice, przychodzący na otwarte lekcje, widzieli, jak ich syn czy córka skopiowali z podręcznika węża lub szachy. Dlaczego mówię skopiowali? Bardzo prosto, w podręczniku znajdowały się całe strony (A4) kodu, z niektórymi momentami, które nie były wyjaśniane. W efekcie, nauczyciel musiał albo kontrolować, na jakim etapie w kodzie znajduje się każdy uczeń, tłumacząc każdą linię, albo wszystko sprowadzało się do ściągania.

Powiesz: «No i co w tym złego, niech nauczyciel lepiej pracuje, a szachy i wąż w ogóle są spoko!»

Cóż, wszystko byłoby super, gdyby liczba osób w grupie nie wynosiła około 15, a to już znacząco utrudnia, jeśli zamierzasz monitorować wszystkich, tłumacząc: «A tak właściwie, co dokładnie piszemy?»

Oprócz liczby osób w grupie, istnieje jeszcze jeden problem związany z tym podręcznikiem. Kod napisany jest… jak to powiedzieć, po prostu okropnie. Zestaw antywzorców, archaizmów, ponieważ podręcznik od dawna nie był aktualizowany, i oczywiście nasz ulubiony — styl guide. Dlatego nawet jeśli kontrolujesz wszystkich swoich podopiecznych i możesz im szybko i zrozumiale tłumaczyć, co oznacza ściągany kod, to sam kod jest na tyle okropny, że nauczy delikatnie mówiąc, nie tego.

A to jeszcze kluczowa kwestia, która dosłownie rozbija tę książkę — od samego początku brakuje jakiegokolwiek sensownego wprowadzenia, które tłumaczy, czym są typy danych, że dzielą się na obiektowe i prymitywne, jaki kryterium sprawdza właściwość, która tworzy tę dychotomię itd. W pierwszym rozdziale uczniom proponuje się stworzenie programu, który wyświetla okno z napisem „Cześć!”, ale nie wyjaśnia się, co właściwie oznacza ten kod, jedynie odnosi do dalszych zajęć, na przykład wspomniane jest „main” — punkt wejścia, ale nie omawia się samego pojęcia „punkt wejścia”.

Podsumowując, ta makulatura była memem nawet wśród nauczycieli i kadry zarządzającej. Nie uczyła dzieci niczego sensownego, pewnego razu trafiłem na grupę, która uczyła się z tych materiałów przez rok, i ostatecznie nie mogły nawet napisać pętli, co warto zauważyć, że wszyscy byli bardzo bystrzy, a wkrótce sytuacja nie była już tak zła. Większość kolegów starała się odchodzić od materiałów metodycznych, aby materiał był przyswajany, a nie po prostu ulatywał w powietrze, chociaż byli też mniej sumienni ludzie, którzy uznawali za normalne, że ich uczniowie ściągają bez żadnych wyjaśnień.

Kiedy stało się jasne, że odejdę z UCC, a program nauczania Pythona trzeba jakoś kontynuować w następnym roku, zacząłem pisać własny podręcznik. Mówiąc krótko, podzieliłem go na dwie części, w pierwszej tłumaczyłem wszystko o typach danych, ich istotę, operacje na nich i instrukcje języka. Między tematami robiłem QnA, aby przyszły nauczyciel mógł zrozumieć, jak uczeń przyswoił temat. Na koniec dodałem małe zadanie projektowe. Pierwsza część dlatego wyjaśnia podstawy języka i rozwija je, co stanowi około 12-13 lekcji po 30-40 minut. W drugiej części już napisałem o OOP, opisałem, na czym polega wdrożenie tej paradygmy w Pythonie w porównaniu z większością innych, robilem wiele odniesień do przewodnika po stylu itd. Podsumowując — starałem się być jak najmniej podobny do tego, co było w podręczniku do Javy. Niedawno pisałem obecnemu nauczycielowi Pythona, pytając o feedback na temat materiałów i teraz cieszę się, że wszystko jest dobrze, że dzieci naprawdę rozumieją programowanie w Pythonie.

Jaką lekcję chciałbym wyciągnąć z tej historii: drodzy rodzice, jeśli decydujecie się oddać dziecko do UCE, uważnie obserwujcie, co się dzieje, aby wasze dziecko nie marnowało czasu i aby w przyszłości nie straciło chęci do programowania.

UPD: Jak słusznie zauważyli w komentarzach, prawie nic nie powiedziałem o metodzie podania materiału. Powiem od razu, że uważam, iż praktyki powinno być więcej, jak najwięcej. Na końcu każdego zajęcia w pierwszej części robiłem 4-5 małych zadań praktycznych związanych z tematem rozdziału. Między rozdziałami odbywały się QnA (lekcje kontrolne), gdzie również były zadania praktyczne, ale już oceniane, a na końcu pierwszej części był projekt do wyboru z zaproponowanych tematów. W drugiej części zrobiłem wprowadzenie do OOP poprzez stworzenie konsolowej mini-gry, której rozwój był tematyką całej drugiej części oraz całym wprowadzeniem do paradygmatu.

Tylko zarejestrowani użytkownicy mogą brać udział w ankiecie. Zaloguj się, proszę.

Czy twoje dziecko uczy się programowania w centrum edukacyjnym?

  • 4,6%Tak3

  • 95,4%Nie62

Głosowało 65 użytkowników. Wstrzymało się 27 użytkowników.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster