Hogyan és miért tanítom 4 éves koruk óta a gyerekeinket programozni?
Előzmények röviden
Programozni jó dolog, többek között azért, mert:
- segít a való világ problémáit is megoldani,
- segít jó módban élni.
Szeretek programozni, régen jó is voltam benne, de 20 évig nem gyakoroltam. 2020 novemberében leporoltam a tudásom , kinyomtattam 2 PDF könyvet és nekiálltam egy crypto tőzsdén kereskedő bot -ot fejleszteni.
A módszertanom
Nem egy általános, tuti módszertant akarok veletek megosztani, csak a tapasztalataimat. Mit csináltam és meddig jutottam a gyerekekkel.
A fiunk most 10 éves és objektumorientáltan programozik Pythonban. A lányunk 5, neki még nem mennek az emeltszintű számtech érettségi tételek. :)
Ha szereted csinálod, ha csinálod jó leszel benne
Ahogy visszaemlékszem nem egy tudatos döntés volt, hogy a gyerekeket megtanítom programozni. Inkább úgy gondolom, hogy mivel arra jár rá az agyam, hogy minden helyzetből hogyan hozzuk ki a tanulás - fejlődés lehetőségét, ezért ragadtam meg az alkalmakat és kezdtem el tanítani így is a gyerekeket.
Az első programozás leckék
Hazafelé tartottunk az oviból és mivel a helyi lottózóban gumilabdát lehet venni automatából, időnként betértünk egy új labdáért.
Eszembe jutott, hogy mivel megvan a motiváció a fiam részéről ezt meglovagolva taníthatnék neki valamit. Azt találtam ki, hogy a játék legyen az, hogy apa robot és ő irányít engem.
A lépések amiken pár hónap alatt végigmentünk:
- apa menjünk a lottózóba
- apa menj a lottózóig, menj be, vegyél labdát
- apa menj előre, fordulj jobbra, menj fel a lépcsőn vegyél labdát
- apa lépj jobb lábbal, apa lépj bal lábbal, apa állj meg, fordulj jobbra, emeld fel a lábad, lépj fel a lépcsőre, stb...
A lényeg az volt, hogy a nagy feladatot kis részekre osszuk és közben bevezessük az utasításkészlet fogalmát. Azaz ha apa robot csak előre tud menni és csak jobbra vagy balra tud fordulni, akkor nincs olyan, hogy gyere ide, vagy fordulj meg.
Amikor bejutottunk a lottózóba, kapott új labdát. Jó sok labdánk van.
Egy idő után hasonló területeken játszottunk ilyeneket máshol is. Ha kértek valamit, akkor csináltam, vagy vittem oda, ha felprogramoztak. Szeretik a gyerekek az apa robotot.
Ezek alkalom függő játékok voltak és nem órarend szerinti számtech órák. A lányom most 5 éves. Nála lovacska vagyok, ül a hátamon és irányít. Az elv ugyan az.
2 gyerek tanítása, akik között 5 év van
Egy idő után amikor a fiammal játszottunk (tanultunk) a lányom is becsatlakozott. Nem lehet ugyan azt játszani egy 7 évessel mint egy 2 évessel, de lehet jó mókákat kitalálni.
Az egyik kedvencem, amikor D4, D6, D10, D20 dobókockákkal az alap műveleteket tanultuk a fiunkkal és a lányunk is csatalakozott.
A játék szabályai:
- a nagy dínó (fiam) kergeti a figurámat (én)
- a lányunk dob a kockákkal, ( később amikor már tudott ilyeneket), akkor amennyit dobott azt kavicsokból el kellett különítenie )
- a D4 (4 oldalú dobókocka) jeleztem az összeadás, kivonás, szorzás, osztást. A többi kocka pedig azt mutatta amilyen számokon a műveleteket el kellett végezni. Azaz ha 20 + 8 -at dobott és a D4 -el összeadást, akkor azt kellett mondania, hogy 28.
- Mindig kitaláltam valamit amivel az egyensúly megmaradt. Az elején nem volt osztás és én minden második körben dobtam csak, hogy a nagy dínó majdnem el tudjon kapni, vagy a végefelé meg is egyen.
- Ha jó volt az eredmény léphetett a nagy dínó, ha nem akkor nem. ( vagy én akkor léptem, ha ő rosszat mondott és én jót, stb... )
Szórakozott mindkét gyerek és számolni is tanultunk.
Számítógéphasználat 10 éves kor előtt
Nem számítógépezhetnek a gyerekek önállóan, nem játszhatnak rajta, nincs okostelefonjuk, nem nézhetik egész nap a meséket a tabletemen. (időnként nézünk mesét tableten, de szerintem nem jönne ki a heti egy alkalom se átlagban )
Az önvezető autó programozást is füzetben kezdtük.
Vektorok és az autóversenyzés
Ha egy kockás füzetbe rajzolok egy szabad kézzel rajzolt girbegurba utat, akkor azon végig lehet menni a vektorokkal.
A játék lényege az, hogy a kiindulási pontból 1 kockát "gyorsulhat" vagy "lassulhat" vagy "kanyarodhat" az autó. Ilyenkor az autó középpontja ott lesz, ahová a vektor mutat. Az autó pötty a középpontot körülvevő kockát bármelyikéig gyorsulhat vagy lassulhat. Ez egy nagyon egyszerű játék, gyorsan megszerették a gyereke. 100 + kockás füzetet játszottunk tele.
Kiváló játék apával, számolunk közben, matematikát tanulunk, vektorokról tanulunk és közben jól szórakozunk.
Most ott járunk, hogy az 5 éves lányunkkal sellő versenyt játszunk Minden lépés után nem egy pöttyöt teszünk, hanem sellőt kell rajzolni. Mivel neki még csak a számolás megy 5 évesen, de a műveletek nem ezért nem szigorúan vesszük a vektorokat. Így tudunk sima lapon is és csíkos füzetben is játszani legalább.
A fiunkkal mér durva a helyzet. 1 éve már 3 dimeneziós pályázat rajzol oldalról és felülről, ahol repülőkkel kell vektorosan repülni úgy, hogy közben akadályokat kerülgetünk, alagutak vannak, stb... Anya már nem tud itt velünk játszani :)
Építsünk önvezető autót, saját fejlesztésű szoftverrel
Mivel a fiunk érdeklődik az autók iránt, szeret legózni és szívesen beszélget ilyenekről egyszer eszembe jutott, hogy kezdjük el a közlekedési lámpát mint projekt lehetőséget körüljárni. A közlekedési lámpa egyszerű logikájú és kapcsolódik az autó építéshez is.
Összepakoltam a 2 gyereket, elmentünk a helyi kávézóba az iroda mellett . Ha kiülünk a kültéri asztalokhoz, akkor látjuk a közlekedési lámpát, van facsart narancslé és lehet a forgalmat árnyékból tanulmányozni.
Pár óra múlva voltak rajzok, jegyzetek, megittunk vagy 2 liter facsart narancslevet és összeállt az alap projekt.
Ebben a projektben még benne van a lehetőség, hogy a vezeték nélküli kommunikációt is meg tudom mutatni a gyerekeknek. Ha 3 ledet és egy Arduinót összerakok, akkor lehet vezérelni a laptopról a lámpát, vagy akár később a lámpák megállíthatják majd az autókat, stb...
Végigvettük, hogy a lámpának milyen fázisai vannak, milyen állapotai, mi a logika. ( ciklusok, változók )
Ezek után rendeltem pár programozható autót az Ali Expressről. Pár USD az egész, jó móka közösen összerakni és az elmélet kezd gyakorlattá alakulni.
Megbeszéltük, h az autó milyen részekből áll. ELkezdtük vezérelni az autót egyszerű szabályokkal és függvényekkel.
pl.: alap függvények
- kerék bekapcsolás
- kerék kikapcsolás
- forgási irány megváltoztatása a keréknek.
Ezekkel már nagyon sok mindent lehetett csinálni: lehetet fordulni, előre és hátra menni, forogni. Persze az autó ugrált és nem tudott minden esetben 90 fokban fordulni. Ez behozott új kérdéseket.
- mi a jobb, ha 1 másodpercig bekapcsoljuk az egyik kereket, vagy az ha gombnyomásig forog?
- lehet-e folyamatosan elindulni és nem 0 val vagy maximális sebességgel forgatni a kerekeket?
- Mit jelent az, hogy 90 fokos szög?
- Mi a különbség az egyenáram és a váltóáram között?
- Mi az a frekvencia?
- Mi a digitális és analóg portok közötti különbség?
- stb....
Objektum orientált programozás
Itt is az elmélettel és a logikával kezdtünk.
Szeretjük a Sequence játékot. Kicsi kortól játszható, egyszerű, jó móka.
Mivel már sok mindent tudott a fiam elkezdtem neki magyarázni az objektumokról, a tulajdonságokról és a belső változókról.
Most ezt a társasjátékot programozzuk OOP -ben. Ilyen osztályaink vannak:
- kártyalap
- pakli
- dobókocka
- tábla
- korong
- játékos ( majd )
A kártyalappal kezdtünk: a lapoknak van egy száma, egy színe. A pakli egy olyan class, ami egy lista, amiben minden lap egy kártyalap típusú class. A pakli osztálynak már vannak specialitása, meg tudja keverni a lapokat, nem lehet benne duplikált lap, lehet az adott lap a pakliban vagy azon kívül, stb...
A dobókockának is meg lehet adni az initben, hogy hány oldalú legyen, de leellenőrzi, hogy ha 3 -at adunk meg, akkor hibát adjon. Természetesen itt is van random, ami a dobásnak felel meg. Stb...
Sok órát lehet beszélgetni így az életben fellelhető objektumokról, azok tulajdonságairól. Elkezdtem bevezetni, hogy a vállalkozásokat is mint rendszer vizsgáljuk. Vannak folyamatok, emberek, döntések benne, hogy működjön. Később ezt komolyabban fogom tanítani neki, de most elég, hogy a gyerek 10 évesen tud alap üzleti tervet csinálni, OOP-ben programozni és crypto coinokkal kereskedni....
Nem szabad erőltetni a dolgot. Semmit nem szabad tanítani, de ha kérdeznek, akkor órákig kell válaszolni, ha órákig kérdeznek a gyerekek. Sajnos itt lemaradásom van, nincs annyi időm amennyit szeretnék, de nincs lelkiismeret furdalásom csak egy kicsi. Elég sok időt töltünk a válaszok megkeresésével.
Köszönöm a lehetőséget a feleségemnek, Darnyik Szilviának. <3