Hogyan tanítsam a gyerekeknek Python-t

Hogyan tanítsam a gyerekeknek Python-t

Fő munkám az adatokkal és a programozással kapcsolatos R, de ebben a cikkben a hobbimról szeretnék beszélni, ami még némi bevételt is hoz. Mindig is érdekelt, hogy elmeséljek és elmagyarázzak dolgokat barátaimnak, osztálytársaimnak és diáktársaimnak. Nekem is mindig könnyű volt megtalálnom a közös nyelvet a gyerekekkel, nem tudom miért. Általában úgy gondolom, hogy a gyerekek nevelése és tanítása az egyik legfontosabb tevékenység, a feleségem pedig tanár. Tehát körülbelül egy éve hirdettem egy helyi Facebook-csoportban, létrehoztam egy csoportot, és elkezdtem tanítani a Scratch-et és a Python-t hetente egyszer. Most öt csoportom van, saját osztályom otthon és egyéni óráim. Ebben a cikkben elmondom, hogyan jutottam el így élni, és pontosan hogyan tanítom a gyerekeket.

Calgaryban élek, Alberta államban, Kanadában, így néhány dolog helyi sajátosság lesz.

A szoba

Kezdettől fogva komoly gondot jelentett a gyakorlathoz szükséges hely rendelkezésre állása. Próbáltam órákonként bérelhető irodákat és tantermeket keresni, de nem jártam sok sikerrel. Egyetemünk és a SAIT, az MIT helyi megfelelője számítógépes és számítógép nélküli órákat kínál. Az ottani árakról kiderült, hogy nem túl emberségesek, és végül kiderült, hogy az egyetem nem enged be kiskorúakat, a SAIT pedig általában csak a saját hallgatóinak ad bérbe. Tehát ez a lehetőség kimaradt. Számos irodaközpont van, amely óránként bérel tárgyalótermeket és irodákat, vannak egész cégek, amelyek egy csomó lehetőséget kínálnak a teljes tanteremtől a négyszemélyes helyiségig. Bíztam benne, mivel Alberta olajtartomány, 2014 óta lomha válságban vagyunk, és sok üzlethelyiség üres. Nem kellett volna reménykednem, az árak annyira felháborítónak bizonyultak, hogy először el sem hittem. A tulajdonosoknak könnyebb üres irodákban ülni és költségeket fizetni, mint kirakni.

Abban a pillanatban eszembe jutott, hogy rendszeresen fizetem az adómat, és hogy van-e ott valami kedves államunknak, vagy inkább Calgary városának. Kiderült, hogy tényleg van. A városban vannak jégkorong- és más műkorcsolyasportok arénái, és ezekben a termekben masszív jégharcosok vitatják meg a jövőbeli csaták stratégiáit. Röviden, minden arénában van néhány szoba asztalokkal, székekkel, fehér táblával, és még egy mosogatóval is. Az ár egészen isteni - 25 kanadai tugrik óránként. Kezdetben úgy döntöttem, hogy másfél órát tartok, ezért 35 dollárban határoztam meg egy óra árát osztályonként egy ötfős csoportban, hogy kompenzáljam a bérleti díjat, és tegyek valamit a zsebembe. Általában szerettem az arénákban edzeni, ez megoldotta az egyik problémát - a legtöbb oroszul beszélő ember délen él, én pedig a város északi részén, ezért egy arénát körülbelül a közepén választottam. De voltak kellemetlenségek is. A kanadai bürokrácia jó és barátságos, de enyhén szólva kissé ügyetlen tud lenni. Nincs gond, ha megszokod a ritmust és előre tervezel, de néha előfordulnak kellemetlen pillanatok. Például a város honlapján kényelmesen választhat időpontot és helyet, foglalhat szobát, de fizetni semmilyen módon nem tud. Maguk telefonálnak és elfogadnak kártyás fizetést. Mehetsz az irodába és készpénzben fizethetsz. Volt egy vicces, de nem túl kellemes pillanat, amikor vártam a hívásukat, hogy fizessem ki a második leckét, nem jött meg, és az utolsó napon tizenöt percet késtem az irodából. Pimasz arccal kellett felkeresnem a biztonságiakat, és azt hazudnom, hogy a szoba foglalt. Mi, kanadaiak szót fogadunk: nyugodtan beengedtek, és nem ellenőriztek semmit, de nem tenném, ha az emberek nem lennének már úton az órákra.

Így dolgoztam át a telet és a tavaszt, aztán olyan változások következtek be, amelyek az utolsó csepp a pohárban. Először is, az iroda zárva volt a látogatók elől, és felajánlották, hogy a sarkon telefonos fizetést fogadnak el. Legalább fél órát ültem a folyosón, mielőtt átjutottam. Másodszor, ha korábban a drága néni másfél órát vett fel tőlem, most egy lány vette fel a telefont, és azt mondta, hogy csak egy órára fizet. Akkoriban a csoportom három vagy két főből állt, és a plusz 12.5 dollár egyáltalán nem volt felesleges. Természetesen ideologikus vagyok, de ha a feleségem kidob az utcára, akkor nem lesz kit tanítani. Akkor még munkanélküli voltam.

És úgy döntöttem, elmegyek a könyvtárba. A könyvtárak csodálatos szobákat bérelnek ki teljesen ingyenesen, de van egy fogás - kereskedelmi tevékenységet nem folytathat. Ott még a jótékonysági szervezetek sem gyűjthetnek pénzt. Azt mondták, hogy ez nem különösebben ellenőrzött, a lényeg, hogy ne vegyek pénzt a bejáratnál, de nagyon nem szeretem megszegni a szabályokat. További probléma, hogy a termek gyakran foglaltak, és nehéz az órarendi órákat egyszerre, egy helyen lebonyolítani. Nyáron és kora télen könyvtárakban tanítottam, ki kellett választanom azokat, amelyekben van hely, végül öt-hat könyvtárat cseréltem. Aztán két hónappal korábban elkezdtem foglalni a helyet, és akkor is csak egy kis könyvtárban sikerült ezt megtennem, a többiben rendszeresen nem volt férőhely a szükséges ideig. Aztán úgy döntöttem, csinálok otthon egy számítógépes órát. Leakasztottam a táblát, vettem egy második asztalt és pár régi monitort a hirdetésből. A munkahelyemen a cég vett nekem egy új, nagy teljesítményű laptopot, mert a számítógépemen végzett elemzés csaknem 24 órát vett igénybe. Szóval volt egy új régi számítógépem, egy régi régi számítógépem, egy laptopom, amin a kicsim összenyomta a képernyőt, és egy ősi netbookom, amin én magam törtem össze a képernyőt. Mindegyiket csatlakoztattam a monitorokhoz, és mindenhova telepítettem a Linux Mint-et, kivéve a netbookot, amelyre egy nagyon könnyű elosztókészletet telepítettem, úgy tűnik, a Pappy-t. Még van egy régi új laptopom, 200 dollárért vettem, rákötöttem a tévére. Az is fontos, hogy a tulajdonosunk nemrégiben kicserélte a nyílászáróinkat, és az iszonyatos, omladozó szobor helyett most új fehér kereteket kaptunk. A nappalit, a konyhát és a második hálószobát a feleségem tartja egy óvoda számára, így az egész emelet tisztán pedagógiai jellegű lett. Szóval most minden rendben van a helyiségekkel, térjünk át a tanításra.

Karcolás

Elkezdem tanítani a programozás alapjait a Scratch nyelven. Ez egy kész blokkokat használó nyelv, amelyet egy időben találtak ki az MIT-ben. A legtöbb gyerek már látta a Scratch-et az iskolában, így elég gyorsan felveszik. Vannak kész programok és óratervek, de egyáltalán nem szeretem. Némelyik furcsa – például készítse el saját történetét. A teljes program számtalan blokkból áll say '<...>' for 2 seconds. Látható, hogy nagyon kreatív egyének találták ki, de ezzel a megközelítéssel megtaníthatod, hogyan kell klasszikus indiai spagettikódot írni. Kezdettől fogva olyan alapelvekről beszélek, mint a SZÁRAZ.Más feladatgyűjtemény elég jó, de a gyerekek gyorsan felfogják a lényeget, és géppuska módjára kezdik el csinálni. Ennek eredményeként egy leckében azt csinálják, amit ötben kellett volna. A feladatok keresése és kiválasztása pedig sok személyes időt vesz igénybe. Általánosságban elmondható, hogy a Scratch inkább nem egy nyelvre, hanem egy IDE-re emlékeztet, ahol csak emlékezni kell arra, hogy hova kell kattintani, és hol mit kell keresni. Amint a tanulók többé-kevésbé jól érzik magukat, megpróbálom átvinni őket Pythonba. Még a hétéves kislányom is egyszerű programokat ír Python nyelven. A Scratch előnyét abban látom, hogy alapvető fogalmakat tartalmaz, amelyeket játékos formában tanulunk meg. Valamilyen oknál fogva kivétel nélkül mindenkinek nagyon nehéz megérteni a változó fogalmát. Eleinte gyorsan átfutottam a témát, és továbbmentem, mígnem szembesültem azzal, hogy nem is tudnak mit kezdeni vele. Most sok időt töltök a változókkal, és folyamatosan visszatérek hozzájuk. Muszáj valami hülye kalapálást csinálni. Megváltoztatom a képernyőn a különböző változókat, és kimondom az értékeiket. A Scratch rendelkezik vezérlőstruktúrákkal és értékellenőrzésekkel is, mint pl while, for vagy if pythonban. Ezek meglehetősen egyszerűek, de vannak problémák a beágyazott hurkokkal. Több feladatot igyekszem beágyazott ciklussal megadni, és úgy, hogy a működése egyértelmű legyen. Ezt követően áttérek a funkciókra. Még a felnőttek számára sem nyilvánvaló a funkció fogalma, és még inkább a gyermekek számára. Hosszan kitérek arra, hogy mi a funkció általában, beszélek egy gyárról, amely inputként veszi át az árukat, és árut bocsát ki, egy szakácsról, aki nyersanyagból készíti az ételeket. Ezután készítünk egy „készítsünk szendvicset” programot a termékekkel, majd ebből készítünk egy függvényt, amelyhez a termékeket paraméterként továbbítják. A funkciók tanulását a Scratch-el fejezem be.

piton

A pythonnal minden egyszerűbb. Van egy jó könyv Python for Kids, ebből tanítok. Ott minden szabványos - vonalak, műveleti sorrend, print(), input() stb. Könnyed nyelven, humorral írva, a gyerekek szeretik. Van egy hibája, amely sok programozási könyvre jellemző. Mint a híres viccben - hogyan kell baglyot rajzolni. Ovális - kör - bagoly. Az egyszerű fogalmakról a meglehetősen bonyolult fogalmakra való átmenet túl hirtelen. Több munkamenetbe is beletelik, hogy az objektumot a pont metódushoz csatoljam. Másrészt nem sietek, ugyanazt addig ismétlem különböző módon, amíg legalább össze nem áll valami kép. Változókkal kezdem, és újra kalapálom őket, ezúttal Pythonban. A változók egyfajta átok.

Egy okos diák, aki pár hónapja ügyesen rákattintott a változókra a Skratch-en, úgy néz ki, mint egy kos az új kapunál, és nem tudja összeadni az X-et az Y-val, ami egyértelműen a táblán egy sorral feljebb van írva. Ismételjük! Mit tartalmaz egy változó? Név és jelentés! Mit jelent az egyenlőségjel? Feladat! Hogyan ellenőrizzük az egyenlőséget? Dupla egyenlőségjel! És ezt ismételgetjük újra és újra a teljes megvilágosodásig. Ezután áttérünk a függvényekre, ahol az érvek magyarázata a legtovább tart. Elnevezett argumentumok pozíció szerint, alapértelmezés szerint stb. Még egyetlen csoportban sem értünk el osztályokat. A Python mellett népszerű algoritmusokat tanulmányozunk a könyvből, erről később.

Tulajdonképpen edzés

Az órám a következőképpen épül fel: fél órát elméletet adok, tudást tesztelek, megszilárdítom a tanultakat. Eljött a laborok ideje. Gyakran el vagyok ragadtatva és beszélgetek akár egy órát is, aztán van fél óra a gyakorlásra. Amikor pythont tanultam, néztem a tanfolyamot Algoritmusok és adatstruktúrák Khiryanov a MIPT-től. Nagyon tetszett az előadása és az előadásainak felépítése. Elképzelése a következő: a keretrendszerek, szintaxis, könyvtárak elavulnak. Építészet, csapatmunka, verziókezelő rendszerek – még korai. Ennek eredményeként olyan algoritmusok és adatstruktúrák maradnak, amelyek régóta ismertek és mindig hasonló formában lesznek. Jómagam csak egész számokra emlékszem az Institute pascalból. Mivel a tanítványaim többnyire fiatalok, hét-tizenöt évesek, úgy gondolom, hogy jövőjük szempontjából fontosabb az alapok lerakása, mint egy platformjáték gyors megírása Pythonban. Bár inkább platformert akarnak, és megértem őket. Egyszerű algoritmusokat adok nekik – buborék, bináris keresés egy rendezett listában, fordított lengyel jelölés egy verem segítségével, de mindegyiket nagyon részletesen elemezzük. Kiderült, hogy a modern gyerekek elvileg nem tudják, hogyan működik a számítógép, azt is elmondom. Igyekszem minden előadáson több fogalmat összekapcsolni. Például egy számítógép - memória/százalék - cellákból álló memória (engedem, hogy tartsa a memóriachipet, találd ki, hány cella van) - minden cella olyan, mint egy villanykörte - két állapot van - igaz/hamis - és/vagy - bináris/decimális - 8 bit = 1 bájt - bájt = 256 opció - logikai adattípus egy biten - egész szám egy bájton - float két bájton - string egy bájton - a legnagyobb szám 64 biten - egy lista és egy sor az előző típusokból. Fenntartom, hogy egy igazi számítógépben minden más és más a memória mennyisége ezekhez az adattípusokhoz, de a lényeg az, hogy közben mi magunk hozzunk létre bonyolultabb adattípusokat az egyszerűbbekből. Az adattípusokat talán a legnehezebb megjegyezni. Ezért minden órát gyors bemelegítéssel kezdek – az egyik tanuló megnevezi az adattípust, a következő két példát mond, és így tovább körben. Ennek eredményeként elértem, hogy a legkisebb gyerekek is vidáman kiabálják – lebegj! logikai! hét, öt! pizza, autó! Előadás közben folyamatosan húzom előbb egyiket-másikat, különben gyorsan elkezdik szedegetni az orrukat és nézegetni a plafont. És mindenki tudásszintjét időnként ellenőrizni kell.

A tanítványaim soha nem szűnnek meg ámulatba ejteni, mind ostobaságukkal, mind váratlan intelligenciájukkal. Szerencsére gyakrabban intelligenciával.

Szerettem volna még írni, de kiderült, hogy csak egy lap. Minden kérdésre szívesen válaszolok. Minden kritikát szívesen fogadok, csak arra kérlek benneteket, hogy a kommentekben legyetek toleránsabbak egymással szemben. Ez egy jó cikk.

Forrás: will.com

Hozzászólás