Melyik nyelvvel volt a legjobb tapasztalatod gyerekként vagy gyerekek oktatásában tanárként?
Kereken 40 éve programozok, és egyszerűen nem tudom eldönteni, hogy a melyik programozási nyelv a legalkalmasabb 12-14 éves gyerekek oktatására. Amiket nézegettem:
Python - talán ez a legegyszerűbb, de mit csinál benne? Kivy frameworkkel appot, vagy játékot pygame-mel, gondolom. Csak ehhez végképp 0 magyar nyelvű irodalom vagy tutorial van (persze a ami gyerekek már folyékonyan tudnak angolul akkor is, ha németesek :D de azért... mégis. Na.).
JavaScript - ez is egy szuper ötlet, de ahhoz, hogy valaki webalkalmazást csináljon, annyi mindent kell még mellé tanulni (HTML, CSS, React, JSX stb.) hogy nem biztos, hogy ehhez mindenkinek van türelme. Erről mit gondoltok?
PHP - ehhez legalább van normális könyv magyar nyelven, három is. De statikus weblapokon kívül nem nagyon tud vele mást kezdeni, persze ez is valami. Vagy elindulhat a React rögös útján, ld. előző pontot.
Racket - hát ez egy szuperjó cucc, a környezet is meg a nyelv is -- kár, hogy annyira nem mainstream, hogy utána a gyerek kicsit megreked vele. Így ezt végül elvetettem.
Greenfoot - ez is jó állítólag, de talán a Java túl bonyolult kicsiknek. C# / Unity-vel ugyanez a helyzet, azt hiszem.
Ezekről mit gondoltok? Más ötlet?
Szívem szerint egy egyszerű, modern nyelvet (Go, Zig) tanítanék, de egyrészt semmi magyar nyelvű irodalom nincs hozzájuk, másrészt meg -- mit csinálnak velük? Azért a vizuális élmény elég fontos.
De jó volt, amikor annak idején 12 évesen már assemblyben programoztunk Commodore-t, mivel baromi egyszerű volt, másrészt meg csak ehhez volt magyar nyelvű könyv, internet meg nem létezett, szóval abból főztünk, amink volt. A C nyelvet is azért kezdtük el tanulni, mert a K&R ki volt adva magyarul. A Pascalt meg azért kezdtük el utálni, szegényt, mert az iskolában kötelező volt. (Pedig nem szolgált rá, tök jó nyelv volt.)
Gyerekeknek a figyelem felkeltése, az alapvető algoritmizálás elsajátítása a lényeg, nem az, hogy mindenképpen programozót faragjunk belőle.
Éppen ezért kezdetben teljesen jó a Logo vagy az arra épített környezetek mint a Scratch is - utóbbi legalább friss és pont oktatási célokat szolgál:
Második körben ott a Python. Pláne hogy abban is van Logo-implementáció:
így könnyebb átlépni a két nyelv között.
(Nosztalgikus megjegyzés: C64-hez volt alapból volt Basic, de elérhető volt Logo, illetve Pascal is, mindhez volt magyar nyelvű könyv.)
3. Igen, igen, persze volt BASIC könyv is, Donald Alcock: Ismerd meg a BASIC nyelvet, mi is ebből programozgattunk. De persze mindenki játékot akart fejleszteni, és már nem is tudom, ki kezdte el nálunk az assembly-t, de a végén mindenki ebben nyomult. Jó idők voltak. A C-t csak később, a PC-s világ hajnalán kezdtem el.
Szóval a Scratch/Logo baromi unalmasak, ezzel tutti nem kötsz le egy 12 éves gyereket, tartok egyet otthon.... megunják. A nővérét ezzel untatták tavaly a gimiben (13 éves volt akkor), gyorsan összecsapta amit kellett utána ment vissza Blenderezni... nem hülyék ezek a gyerekek csak kicsik. :)
Van olyan 12 éves, akinek még a LOGO is egyetemi szint, és van olyan, amelyik lazán megugorja a lécet, ami az alapokat illeti.
Az én tapasztalataim szerint olyat érdemes egy gyerek kezébe adni, ami akkor is biztosítja a továbblépés lehetőségét, ha ideig-óráig felhagy a tanulással.
Erre a legalkalmasabbnak a BASIC nyelvnek egy olyan verziója kínálkozik, ami már nem igényel sorszámozást, de strukturált, és nem igényli futtatási környezet jelenlétét sem. Ilyen kb. a quickBASIC, a freeBASIC vagy a Visual Basic is.
Hasonló okokból (egyszerűség, logika, nativitás), jó lehet még a freePascal is. Fontos, hogy típusos nyelv legyen, ellenkező esetben nagyüzemileg ömleszti a kudarcélményt az alkalmatlan nyelv a szegény nebulóra. A variantot, még ha támogatja is a nyelv, meg sem szabad említeni.
Nem szenvedni, meg divatozni, hanem algoritmizálni kell, hogy megtanuljon, ami, ha már megvan, tetszőleges nyelvre hordozható.
Értsétek már meg, hogy értelmes gyerek már 8 évesen se hajlandó a Scratch elé leülni. Ez egy teljesen elhibázott koncepció, nem vezet sehová, nem jó semmire. Zsákutca.
Szerintem is egy BASIC, Python, Go szerű nyelv a legalkalmasabb, csak éppen valami vizualizációs környezet kell alájuk, amivel lehet csinálni valami látványosat.
"Értsétek már meg, hogy értelmes gyerek már 8 évesen se hajlandó a Scratch elé leülni."
Értsd meg, hogy sokfélék a gyerekek, és hogy a többségüket nem érdekli a programozás, főleg mert nincsenek azon az absztrakciós szinten. Éppen ezért - illetve mert nem programozókat képezünk - ajánlatos a látványos "színes-szagos" megoldásokat használni (különben a gyerek az unalmas absztrakt szöveges tartalomtól megutálja az egészet).
Lehet jönni azzal, hogy "bezzeg a mi időnkben, mi C64-en írtuk az assembly kódot!", de egyrészt ez egyedi eset (a többi gyerek kinn focizott a grundon, nem mindenki volt otthonülő "kis tudós"), másrészt az más kor volt, más ingergazdagsággal, más elérhető/divatos eszközökkel.
A Logo (illetve az arra épített Scratch) egy jó kezdet (pont erre, a gyerekek oktatására tervezték anno), (esetedben) azt kell kitalálni hogy hogyan lehet abból tovább lépni.
Egyrészt ott van a már említett Micro Bit mikrovezérlő, aminek van Scratch-es "fejlesztői környezete", és eléggé érdekes dolgokat lehet vele kivitelezni (pláne, hogy fizikai eszköz révén más dolgokat - például elektronikát - is tanulhat) - például robotot, öntözőautomatát, otthonautomatizálási projektet (csak szenzorokat és reléket/aktuátorokat kell beszerezni hozzá).
Másrészt ott a Python, amit egyrészt oktatási céllal (is) hoztak létre, másrészt a már említett turle modul révén kapcsolódik a Logo-hoz, harmadrészt a Micro Bit-nek van egy, a Microsoft által fejlesztett, a Scratch Blockly felületét használó fejlesztőeszköze:
amiben lehet váltogatni a vizuális nyelvű és a Pythonban generált programkód között (sőt, a Micro Bitnek van online, Python nyelvű fejlesztőeszköze - [link] - is).
Negyedrészt ha már kijátszotta benne magát a csemete, lehet benne továbblépni komolyabb projektekre (például ott a Raspberry Pi miniszámítógép, aminek vannak GPIO portjai, így a Micro Bitben megismert szenzorok átvihetőek rá, de komplexebb "számítógépesebb" alkalmazások alkothatóak vele, úgy, hogy a mögötte levő komplex háttért nem kell hozzá ismerni - mondjuk egy API-ra való adatküldés, vagy onnan való adatfogadáshoz nem kell foglalkoznia a TCP stack-el)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!