Programozás gyerekeknek

Sziasztok!
Van tippetek arra, hogy egy iskolás gyereket mivel kellene megismertetni, ha el akar kezdeni programozni?
Volt már hasonló téma 3, meg 6 éve is, akkor többen többféle tanácsot adtak, de senkinek nem volt még tapasztalata. Lett azóta esetleg valakinek pozitív tapasztalata?

Hozzászólások

3-6 evesnek a Logo-t Linux alatt Turtle-t probald meg.
Az enyemek ezzel kezdtek es konnyeden boldogultak vele.

Na igen, így utólag illene gratulálnom magamnak, gondolom. :)

De van mentségem, a nyitóhozzászólásban (amiben ugye nincs szó 3 és 6 éves gyerekekről ;)) egész pontosan az a kifejezés szerepel, hogy "3, meg 6 éve is", amiben a meg kötőszó cserekompatibilis az és kötőszóval.

Ha iskolás, akkor szerintem C mehet. Nekem Pascal volt, de azóta sem értem, mitől lenne az egyszerűbb, inkább csak otrombább.
Igaz, én előtte (Commodore) BASIC-eztem.

Csak egy példa: a "normális" emberek 1-től kezdenek számolni, és nem 0-tól. Egy iskolás gyereket talán nem kéne azzal nyúzni az iskola egyéb kihívásai mellett, hogy C -t tanuljon. Logo, Pascal közelebb áll kicsit a hétköznapi gondolkodáshoz. Pár perc alatt össze tud majd dobni _működő_ (és ez a lényeg) programokat, és szép lassan megérti az algoritmusokat.

--
http://neurogadget.com/

Ne mar... A tombok 1-tol indexeleset mar akkor is nehezen vette be a gyomrom amikor Pascal-oztam es a C kod latvanyatol fejfajasom volt. Tapasztalatbol tudom, hogy a C igenis hasznalhato oktatasra ha van megfelelo konyvtar es gyakorlo feladatok hozza. A Logo ott bukik meg, hogy a grafikaval szenvednek a kolkok egesz ido alatt es interaktiv programot nem is irnak.

Elso nyelvnek szerintem NXC: http://bricxcc.sourceforge.net/nbc/

Colobot/Ceebot.
Esetleg Python.

szerk: a lightbotot most kifelejtettem, pedig aranyos. (es igen, 6 evesen is emesztheto)

--
There are free things in life i'll never understand
Spelling and counting

C vs. pascal témakörben egy hosszabb eszmecsere itt, csak hogy ne fussuk le újra ugyanazokat a köröket.

inventwithpython +1, de tényleg nem mindegy, hogy 6 vagy 16 éves iskolásról van szó.

bár pygame-ből Oneiric repóban levő legalábbis használhatatlan erre, de töltöttem le külön frissebbet, azzal már működött.

ha picibb, akkor comenius logo például jó lehet, bár én pl. egy pc start nevű, nagyon minimál progival kezdtem, de a dos parancssor használatát nem tekintem programozásnak (külön batch-et sosem tanultam, időnként gondolkodom rajta, hogy vesztettem-e vele valamit), utána GW basic, utána com logo...

nem haltam bele. :)

cserébe iskolában majd úgyis mondják, milyen nyelven tanuljon, addig meg mutogass meg neki nyelveket, biztos lesz olyan, ami tetszik neki, az alapok elsajátítására kb. bármelyik nyelv alkalmas.

Brainfuck. Ha nem tetszik neki, marad a focilabda.

--
Sent from my Ericsson SH888

Jelenleg általános iskola harmadik osztályos csoportnak tartok robotika szakkört ezzel, a hozzá adott szoftver elég intuitív, jó alapozásnak szerintem. Ugyan elsőre kezdetlegesnek tűnik, mert mégiscsak gyerekjáték, de nem 1-2 éves beruházás a cucc. Például C nyelven is programozható, ezért tapasztalataim szerint még a középiskolás korosztály is tök jól elvan vele. De még mennyire! Hogy valami rosszat is mondjak: ami nekünk van (pár éves példány), az gyalázatosan eszi az elemet, remélem, azóta ezt kicsit jobban átgondolták.

Egyébként, ahogyan ezt többen is mondták, a hivatalos álláspont, hogy Logoval kezdünk, ez így volt, amióta a pályán vagyok, nem tudom mi okból kezdene bárki is kicsikkel más nyelven, mint a Logo. Még felsőben is kell a gyereknek a hókuszpókusz, a látvány, a sikerélmény. Mindig is a grafika vonzotta ezt a korosztályt, legalább is én még sosem láttam önkívületben őrjöngeni gyereket attól, hogy az általa írt program kirakott egy OK gonbot a képernyőre, vagy megjelenítette egy ablakban a fibonacci-sorozatot. Amelyik nyelvben könnyű (helyesbítek: extrakönnyű) grafikázni, azzal a nyelvvel mindig is szimpatizálni fog az oktatás. Ez jön be ennek a korosztálynak, ebben hatékony az oktatás. Én (hacsak nem a totális megutáltatás a cél), grafikával kezdenék, bármely nyelv legyen is az.

A Logo kicsit csapda egyébként, mert nem vezet át olyan zökkenőmentesen egy másik nyelvbe, mint ahogyan az elvárható lenne, de az a meglátásom, hogy akinél ez túl nagy döccenő, annak a gyereknek egyből egy másik nyelv majdhogynem megugorhatatlan lenne. Mondjuk felnőttként, különösen programozóként már nehéz átérezni, mi nehéz egy gyereknek, és mi nem. Ezt bizony rá kell bízni a gyerekekre.

Egyébként az assembly nekem kicsit fáj, hogy kiesett a palettáról. Ha lenne normális tool hozzá, meg speciális hardver, baromi hasznos lenne. Hú, talán hördül itt most fel mindenki, de _játékosan_ egy hardverközeli nyelv eléggé hiányzik szerintem. Valamennyire pótolja a Logo (itt ugye tulajdonképpen azt játszuk, hogy egy robotot irányítunk), de nem az igazi. Egy biztos: mindegy mivel kezdi, csak élvezze. Olyan eszközt kell hozzá választani, amit van esélye élvezni. Általános iskolában szerintem messze ez a legfontosabb szempont. Ezt mint tanítónéni mondom.

Ha a kecskemeti Banyai Julia Gimnazium mond valamit, akkor tudod, hogy C-ben VALOBAN sokaig lehet vele oktatni. Sot, foiskolai szinten is tudom, hogy hasznaljak. Amugy van kulon oktatoi keszlet is. Abban van akkumulator (12V-os taprol toltheto), nemi plussz kabelek, es jar hozza rendes muanyag doboz.

Nem ismerem ezt a gimnáziumot, de mikor reklámcélból szétszórtak a sulikban viszonylag olcsón ilyen gépeket, volt egy robotépítő verseny a Millenárison, és igen kreatív munkák születtek, magam sem gondoltam elsőre, hogy mindenféle precizitást nélkülöző eszközből mennyi mindent ki lehet hozni. A mi giminkbe két robot is került, végül a harmadikosaink túlbonyolították a saját munkájukat, nem készültek el időre, de a hetedikesek munkája kint volt, remélem, sok helyen megvan még, és használják is. Pár éve még az Eltén is hasonlóval is dolgoztak robotika specin. Több készletből még több fantáziadús dolgot ki lehet hozni. Bárkit érdekel: youtube -> mindstorms: időtöltésnek is remek.

C-ben programozva, kicsit trukkozve, lenyegesen lehet javitani a cucc pontossagan.
A weboldal nem tul jo, de ez van: http://91.137.129.121/robotika/index.html (normal esetben a www.banyai-kkt.sulinet.hu lenne a domain... nem tudom, most az miert nem megy)
Illetve NXT-vel rendelkezo gimnaziumoknak erdemes lehet idonkent meglatogatni ezt az oldalt: http://www.gamf.hu/robotverseny/ Sajnos ugy tunik 2012-es nem lesz... Vagy kesobb... tudja a fene.
Tovabba a BJG is szokott rendezni versenyeket 5-8. evfolyamosoknak: http://www.hdidakt.hu/adat/hir/dw_16.pdf
(Egykoron BJG-s diak voltam, es egy idoben eleg szepen kovettem ezeket a dolgokat.)

Hát pár év és nálam is aktuális lesz a kérdés. Python mellett teszem le a voksot és okvetlen belekeverve a turtle modult. Gyerek számára érdekes példák, érdekes számítások. Matekházi ilyen módon való újramegoldása. Végeredményként grafikonon való ábrázolás.

Turtle modulról:

from turtle import *

forward(100)
left(45)
forward(50)
left(90)
forward(50)

http://docs.python.org/library/turtle.html

A leglényegesebb azonban olyan, gyerek számára érdekes példafeladat kitalálása, aminek megoldása a gyereket érdekli, így a megoldása számára örömöt jelent.

Szerintem ne a nyelvet nezd hanem azt, hogy valamilyen feladatokat konnyen meg tudjanak oldani vele, pl grafika, animacio, zene, mire fogekonyak.

Senki nem akar programozni pusztan a nyelvert. Az egyszerubb feladatoknal pedig a C, OO, szakmai helyesseg es egyeb szarsagok csak utban vannak. Majd ha kinottek ezeket akkor lehet komolyabb nyelvi konstrukciok fele haladni, addig teljesen felesleges.

Konkluzio: BASIC vagy Pascal, eros tamogatassal a feladatra amiket megoldanak.
--
cythoon

Ez még abban az időben történt, amikor mikroszámítógépekről (ahol nem volt oktatásban jól funkcionáló Pascal) áttértek PC-re, ahol meg rendes BASIC nem volt. Oké, most az összes basicest vérig sértettem, de a QuickBasic azért nem volt egészen oké. Sokan tehát ebben látták a fejlődés útját, akkoriban a kisebb cégeknél is sok fejlesztés folyt Pascal nyelven, míg a Basic elkezdett ciki lenni.

Tehát a váltás inkább szólt szvsz a PC-nek, mint a Pascalnak. Akkoriban a struktúrált (kacc) programozás volt ebben az érv, nem mintha ne lehetne GOTO-kkal is ugyanazt megvalósítani, de a tapasztalat azt mutatta, hogy oktatásban a Turbo Pascal egész jól vizsgázott. Szerintem ezen a szinten tökmindegy, hogy BASIC vagy Pascal, de ezen akkoriban ugyanolyan vérremenő vita folyt, mint most tudomisén a PHP-n, vagy más nyelven. Jó volt Pascal nyelven tanítani egyébként, úgy mondom: ugyanannyi idő alatt tovább jutott az ember algoritmus bonyolultságban a BASIC-nél, amit azért lássuk be, igen könnyű egy kezdőnek szétkutyulni.

Egyébként ez az egész mikroszámítógépes környezet szerintem jó dobbantódeszka volt, épp a napokban olvastam (ha meggebedek se tudom, hol, talán épp itt a hupon), hogy piacra dobnak valami tök olcsó, TV-re köthető Linux alapú gépet, ami mikroszámítógépszerű környezetet ad programozást tanulni akaró gyerekeknek. Szkeptikus vagyok a sikert illetően, de izgalmas gondolat.

Szerintem kezdjük C-vel, abból is pointer aritmetika, bár lehet, előtte nem ártana egy kis digitális technika meg számítógép architektúrák és villamosságtan meg elektronika. De fontos, hogy ezeket az ismereteket még a pointer aritmetika anyag végéig elsajátítsa!

----------------
Lvl86 Troll

Szerinted a felvezetoket meg fogjak erteni kvantummechanikai alapozas nelkul? Es azt rendes matek nelkul? Nonszensz.

Viccet felreteve: a pointereket nem kell tulmisztifikalni. Tegyel ki a konyhaasztalra egy cetlit, hogy a csokit a hutoben, a fagyit a melyhutoben talalja. Ha a gyerkoc tud olvasni, meg fogja erteni a pointereket.

--
There are free things in life i'll never understand
Spelling and counting

[off]Nono, láttam én már olyan egyetemista informatikuskezdeményt (nem is egyet, sőt a többségre jellemző) aki fél év alatt alig-alig akarta megérteni a this kulcsszó jelentését C#-ban. Aztán a félév végére is bizonyára maradt néhány ilyen.[/off]

Viszont nekem nem fér a fejembe, hogy mégis miért merül fel valakiben, hogy kisgyereknek C-t oktasson. (Bár nem volt explicit életkor megadva, bizonyára nem 16 éves gyerekekre gondolt.) Ott van a LOGO és származékai, amiben lehet, hogy nem fog kernel modulokat írni, viszont nem okoz frusztrációt, és elsajátítható az algoritmikus gondolkodás, ami sok felnőtt programozóból is hiányzik.

Aztán később, konkrét feladatokra meg lehet tanulni konkrét nyelveket.

Csak nem OE-NIK? :)

Igen, alapvetően nagyon jól leírtad a problémát: először meg kell tanulni algoritmizálni, mivel az A programozás alapja. (AAO-n is ugye inkább csak algoritmusokat, adatstruktúrákat tanítanak meg, PPT-n már valamivel jobb a helyzet ilyen téren, mert ott van gyakorlat és használjuk is azokat, amiket tanulunk.

Tudom, AAO-hoz az IMOP OOP lenne a gyakorlat, de azt jó egy fél évvel el lehetne csúsztatni és előtte berakni egy teljesen 0-ról induló szintet, lehet kevesebben utálnák meg a programozást és tanulnának egyesek olyat is, ami máshova is jó lenne.

----------------
Lvl86 Troll

Ha a gyerek nem autista, akkor 14 év alatt semmit. Olvasson
inkább.

> Sol omnibus lucet.

Konkréten egy 10.5 éves gyerek miatt kérdeztem.
A negyedikes fiam valamelyik nap kijelentette, hogy szeretne megtanulni programozni. Kicsit korainak tartom én is, de ha érdekli, akkor nem akarom akadályozni. Nyilván figyelni fogunk arra, hogy ne sokat nézze a monitort, és ne menjen a testmozgás rovására.

Én a PHP-t 12 évesen kezdtem önállóan, érdeklődésből. Azt viszonylag könnyű elsajátítani, és hasonlít felépítésben a C-re. Jó, nyilván köze nincs hozzá, meg a típus kezelés is más, de akár ez is egy jó ötlet lehet (talán a weboldal készítés is érdekli a fiadat)

Szerintem is. Nem jó olyan absztrakt dolgokat, mint a programozás túl hamar a gyerekekre ereszteni. Még ha bírja, akkor sem. A gondolkodás és az agy fejlődése hasonló a test fejlődéséhez. Lehet, hogy a 12 éves gyerek is szépen kinyomja a súlyokat az edzőteremben, ha azt látja, hogy így lehet szép és erős, de a gyúrás nagyon nem tesz jót az ízületeinek, csontjainak. Inkább ússzon, kosarazzon, nem?

Az olvasással sok infót összeszed a gyerek nem vitás. De hogy mennyire fogja kreatívan felhasználni az már más kérdés. Ha lesz gyerekem akkor azért szeretném hogy a gondolkodás mintái a megoldások körül járjanak, ne a problémákon. Ergó fontosabbnak tartom hogy ne korlátozzuk le a gondolatait a "kőbe vésett" megoldásokkal amelyeket olvas és tanul a külvilágból. Merjen a saját feje után menni, bízzon magában, etc. Legfeljebb nem lesz rest levenni a polcról azt a könyvet amiben talál infót arról ami érdekli.

Ha figyelembe vesszük hogy kb 8 éves korra már rögzülnek ezek a hogyan állok a világ dolgaihoz meggyőződések mint alapok és ha a szülő akar valami irányt kijelölni a gyereknek akkor mindenképp érdemes 6 éves kor körül már valami önálló kreativitást használó dolgot a kezébe adni a gyerkőcnek.

Ha a programozás nem válna be, akkor ajánlom helyette a legót mint játékot. A lényeg hogy alkosson a cseppség a saját szájíze szerint.

Olvasás alatt valószínűleg szépirodalmat értett, nem szakirodalmat programozásról. A mesék, regények olvasásánál pedig nem sok dolog mozgatja meg egy gyerek fantáziáját, pont azokat éri el vele, amiket leírtál.
Kreativitás és problémamegoldás fejlesztéséhez pedig ott a lego.

Egy fraszt, ha erdekli, miert ne csinalhatna?

Egyebkent kulonosebben nem ertek a gyerekekhez, de en azt gondolnam, hogy ha a programozas valami fizikai dologhoz kapcsolodik, akkor konnyebben jon a sikerelmeny. Lego mindstorms-robot, mikrokopter, ilyesmi.

--
"You're NOT paranoid, we really are out to get you!"

Külön akartam, de ha így előjött: Arduino?

C, lehet LED-eket villogtatni és az elektronikát is tanulja. Én is el akarok ilyen irányban is menni, csak egyelőre nincs "kedv".

Később lehet komolyabb dolgokat is összehozni vele.

Szerk: http://www.robotshop.com/eu/arduino-kits.html

Itt esetleg érdemes lehet körbenézni.

Én egy ilyennel szemezek kezdésnek (egyelőre sík hülye vagyok az elektronikához, inkább egy készletet veszek, akkor nincs szívás, hogy nem jó alkatrészt vettem):
http://www.robotshop.com/eu/sfe-arduino-inventors-kit.html

LED-ek, szervó, motor, érzékelők (hő, hajlítás, fény), gombok, próbapanel, stb. Illeve egy kis kézikönyv, amiben jó pár feladat megoldása benne van.

+1

Kérdeztem én is hasonlót korábban.
Aztán Arduino lett a dologból, a maga C-szerű nyelvével és a hozzá javasolt IDE-vel.
Igaz, nincs grafika, viszont a megszokott egéren és billentyűzeten kívül könnyű egyszerű perifériákat is gyártani hozzá.
Ezeket szívesen forrasztgatják is, aztán gyorsan és egyszerűen ki is tudják próbálni.

VSZ így nem annyira elvont nekik a dolog, mintha csak számok beütése után kiír vmit a program a képernyőre.

Eddig tetszik a gyerekeknek (8-14 év).
Ja, és mind mosolygós 8-)

Igen, jól látod. A matatással tanulás ebben az életkorban a legjobb. Hasonlóan jó a visszakérdezéses tanulás, de még jobb a matatásos-visszakérdezéses. Ezzel szemben mi a valóság? Ül a gyerek órán, és két dolog miatt szólnak rá: ne matass, ne szólj közbe. Ez az olcsó tanulás hátulütője: nagy létszám -> szájbarágós-visszakérdezős oktatás. Nem tudom, hogy más országokban ez hogy van, de itt Magyarországon nem igazán látok erre jó alternatívát.

Szóval, ez +1.

egyertelmuen Basic, en is toltam mar altalanos elsoben Commodore-on

Peter Norton és John Socha írtak egy kezdő programozóknak (is) használható könyvet. A könyv érdekessége az, hogy a programozást nem máshol, mint az MS-DOS debugjában kezdték el bemutatni, első körben egy hexdump bepötyögésével és aztán annak visszafejtésével.

A könyv címe: Az IBM PC assembly nyelvű programozása.

Esetleg tudtok javasolni magyar nyelvű könyve(ke)t a témához?

A fiam most ötödikes. Ha jól emlékszem, még az előző iskolaévben mondta, hogy logo-t tanulnak az iskolában informatika órán.

Persze lehet, hogy ez nem igazán programozás, inkább ismerkedés a számítógéppel. Nem tudom, nem láttam se tankönyvet se füzetet se programot.

G

talaltam egy ilye, van benne teknos is, bar lehet celszerubb lenne valami magyar nyelvu, elso korben az algoritmizalast kell megtanulni

http://kidsruby.com/about

--
NetBSD - Simplicity is prerequisite for reliability

Látom más programnyelven is látnak fantáziát gyerek részére a turtle grafikia modulnak.
Ez megerősített abban, hogy a turtle mindenképp gyerekbarát grafikai modul.

A python vagy ruby kérdés elgondolkoztató. Egyelőre részemről python, de az évek során még megváltozhat a véleményem. :)

Többeknek:

Általában a fiatal ambíciózus apukák eröltetik ezt a programozzon (olvasson, számoljon) minél hamarabb a gyerek.

Hát kéremszépen, ha azt akarják hogy szép kocka feje legyen, mire megnő, csinálják csak. Akik kiegyensúlyozott mosolygós gyereket akrnak látni, azok meg szépen neveljék a gyereket meséken, könyvön, írassák zenére, sportoltassák mérsékelten és zavarják ki a levegőre, ahányszor csak lehet.

> Sol omnibus lucet.

+1

En 10-12 evesen mar programoztam. Tobb Basic, Pascal, probalkoztam asm-mel (sikertelenul).

Ha kisfiaim akarjak, majd tanitom oket. Ha nem, akkor nem, de semmikeppen sem fogom eroltetni.

Majd a matekot a fejukbe verem, az nem lesz kerdes. :-)

Ugyis a feladat jon elobb. En videojatekot akartam irni. Ha majd ok is akarnak ilyet, minden segitseget meg fognak kapni, akarmilyen nyelven vagy eszkozon.

Nem így függenek össze a dolgok. Ismerek olyat, aki számítógépes hobbik mellett sportol, meg olyat is aki a számítógépes hobbi megismerése előtt is lusta volt.

Van egy ismerősöm, aki azt mondta, hogy csak melós ne legyél, mert tönkreteszi az embert. Aki számítógépezik, az meg a melósokat irigyli, hogy folyton mozognak, és szép kidolgozott testük van.

A kiegyensúlyozottság, és mosolygás meg pláne nem azon múlik, hogy számítógépezel-e vagy zenélsz.

Volt egy kiugrott apáca rokonom, aki a Horthy kor alatt odament egy papbácsihoz, hogy szeretne továbbtanulni.

- maga kedveském csak maradjon a zárdában és imádkozgasson

Úgy elküldte a tisztelendő urat a fenébe, hogy arról kódult. Ez a sztori jutott konkrétan eszembe, hogy a gyermekek programozás helyett mesét nézzenek.

A rokon sokra vitte, naponta egy üveg portorikói rumot megivott és 90 évnél tovább élt. Bárkit itt a hupon exapáca létére leivott volna fénykorában a sárga földig.

Alapvetően kedveltem az öreglányt, mókás volt. Nem az a besavanyodott ember, bár azért 90 éves korában már nem volt százas.

Egyébként szerette a tudományokat és az informatikát. Abban a korban, amikor ő született, az hogy egy nő iskolába járjon és tanuljon, maga a megátalkodott gonoszság volt. A nőknek a konyhában volt a helyük, hogy neveljék a gyermekeket és kiszolgálják a férfiakat.

Legjobb senkinek sem előírni, hogy az életben hol a helye. Azt ő maga tudja a legjobban.

Amerikában élt és gyakran hazalátogatott. Azt hittem sokáig, hogy az USA miatt akcentussal beszélte a magyart, mert mindig a "Szoullok"-hoz hasonló kiejtéssel mondta a szavakat. Egyszer ellátogattam a szülőfalujába és megdöbbenve hallottam, hogy az összes falusi ugyanazt az amerikai akcentust beszélte, mint az öreglány.

+1

És még ez is.
http://blog.sfgate.com/sfmoms/2011/10/24/tech-execs-send-kids-to-anti-c…
http://www.lemproject.eu/in-focus/news/a-silicon-valley-school-that-doe…

Azt hozzátenném, hogy nem igazán tiszta, hogy milyen korú gyerekről beszélünk, az eredeti kérdező 10.5 évet írt. De felmerült több életkor is. Pedig nagyon nem mindegy milyen korú gyerekről beszélünk.
Van ismerősi körben 5. osztályos gyerek, Ő Logót tanul.

Olyannal találkozott valaki, amihez magyar nyelvű könyv, vagy leírás is volt? A fiam még nem beszél angolul.

Gyerekeknek magyar nyelvű könyvet csak Logo témakörben tudok, nem sok van ebből sem, és tankönyvboltban kell körülnézni hozzá. Régen (a nyolcvanas években) volt Commodore gépekhez programozáskönyv, ami Hetedhét sorozat címszó alatt futott, antikváriumban még látom néha. Ha a Logo irányba mész, akkor sem úszod meg személyes jelenlét nélkül, egyrészt sem szövegértésben, sem gépelésben nincs ez a korosztály azon a szinten, hogy önállóan elboldogulna. Persze lehet, hogy a tiéd elboldogul, általánosságban ez nem jellemző.

Mondjuk Logo esetén alapvetően a megoldás valami ilyesmi lehet:

1. odaengeded a géphez
2. lazán odaülsz mellé
3. hátradőlsz, mesélsz, ha kérdez, válaszolsz, élvezed, hogy gondolkodik, hogy együtt gondolkodtok
4. csak életveszély esetén nyúlsz közbe(!), nem sürgeted, nem okoskodsz, hagyod próbálkozni
5. sokat dicsérsz, nem fikázol, nem erőlteted
6. nem "feladatot adsz" neki, hanem "de jó lett, mi lenne, ha még ezt is megcsinálnánk hozzá" módon irányítod
7. tudásának megfelelően irányítod (mindig egy kicsit nehezebb dolga legyen, mint amit eddig csinált, de nem lényegesen nehezebb)

Azt hiszem, így. Három évig tanítottam általános iskolásokat harmadiktól nyolcadikig, több versenyzőm is volt, ügyesek voltak. Aztán áttértem középiskolás, főiskolás korosztályra, de a saját fiam most hasonló korú, én azt hiszem, ennek a korosztálynak ez a fenti egy jó út otthoni tanuláshoz. Egyébként, ha fiú, talán az a legfontosabb, hogy gyakran képes legyen kivívni az apukája őszinte elismerését.

Egyébként az Imagine Logo mentén alakult ki Magyarországon oktatási infrasturktúra (segédanyagok, versenyek stb.) Ha érdekel mire jutottak, nézd meg a versenyfeladataikat. Ezen az úton egy már kitaposott ösvényre kerülsz:

http://logo.inf.elte.hu/

Sok sikert!

+1
remek az algoritmus :)

Commodore-t direkt azert tartottam meg/+szereztem otthonra, hogy gyerek talan valami olyannal is talalkozik, ami a mai sterilebb, megis veszelyesebb kornyezetekben nehezebben megtalalhato.
Pl. a sarkanyos konyvek, spritekezeles, hangmodulator, keves memoria, a Basic, monitor stb. Es talan a bugyutabb grafikaju, de nagyon is elvezheto jatekoktol megkapja a kedvet a gondolkodasra ("Hogy is mukodik ez?" tipusu kerdesek). Meg akkor is, ha nagyon nem akarnank kockat nevelni beloluk, csak gondolkodo eszes lenyt.

Alice, Scratch jo otlet, de valahogy megsem kedveltem meg elegge, akkor mar inkabb Logo vagy Python, Pascal kezdesnek.

Logo. Első lépésként ismerkedjen meg a struktúrált programozás alapvető elemeivel. Próbáljátok ki a light-bot -ot! Online lehet vele játszani. Viszont az algoritmikus gondolkodást fejleszti. (Rekurziót is tud!). Utána IMHO C#, java is mehet és elkezdheti megismerni az OOP-t, graf. dolgokat.
--
unix -- több, mint kód. filozófia.
Life is feudal

Csak halkan jelzem, hogy szinte bármilyen nyelv jó lehet, ha jó a tanár, aki tanítja...

Microsoft Access.
Grafikus, jól kezelhető, mondhatni ideális.
Ezzel kezd, ha haladó lesz a csemete át lehet térni másra.
A többieknek:
Jó, hogy nem centos-al nyitsz...
B+++

Szerintem kussolj be:
Ezért:
"Sokszor látom itt a HUP-on, hogy sokan egy-egy szoftver mellett az ár-érték arányával érvelnek. Ez nem is lenne annyira rossz, ha eltekintünk attól, hogy egy szoftver értéke a legritkább esetben mérhető, így az ár-érték aránya sem egyértelműen meghatározható."
??????
Mivan???
"Az utóbbi napokban egy házin dolgoztam, amit java-ban kell megírni, és ezáltal újra rájöttem, hogy tulajdonképpen nem szeretem a java-t."

1. Programozás NEM gyerekeknek való ;)

2. Szerintem assembly, ha megérti mi a gép és hogyan működik, akkor a többi már megy magától ;)

3. Vagy LISP, mert először is hatékonyabb és erőteljesebb nyelv nem létezik, másodszor meg, ha megszokja a ((((())))) akkor minden rendben lesz később ;)

4. Wasabi (mert Joel az mondja, hogy az jó) ;)

5. C mert a programozás 99% kódolvasás (nagy része öreg kód) és 1% kódírás... és ha tetszik, ha nem ennek a kódnak a 99% vagy C, vagy C++, vagy Java/C#... ;)

6. Szóval megvan a válasz, egyszerre assembly, C és LISP... és akkor tényleg megtanul majd programozni (nem csak elképzeli, hogy tud programozni hanem tényleg tud majd programozni)... Wasabi meg persze nem kell... Joel is szokott tévedni ;)

7. Persze mint mondtam az 1. alatt, kicsit nehéz egy gyerektől ezt mind elvárni... tehát programozás NEM gyerekeknek való ;) kivéve, ha Visual Basic (de az valójában NEM programozás). ;)

Magyar nyelvű jó gyerekoktató könyv nem valószínű. A gyerek milyen idegen nyelvet tanul az iskolában (angol vagy német)? Szülő tud segíteni egy ilyen nyelvű könyv megértésében, ha a gyerek elakad valahol?

Ha német, akkor http://ada.rg16.asn-wien.ac.at/~python/
Ha angol, akkor szintén található jó gyerekoktató könyv.

Python miért? A BASIC nyelv elveszítette a jelentőségét. Nem annyira ismert, hogy Bill Gates volt a C64 BASIC atyja ( http://en.wikipedia.org/wiki/Commodore_BASIC ), őmiatta gyúrták a Windows-korszakban is a BASIC-et tovább. Mára történelem lett ez a nyelv, nem érdemes már foglalkozni vele. Pedig az 1980-as években sokunknak tényleg ez volt az egyetlen ismert nem assembly nyelv.
A 2010-es évek BASIC-je a Python, egyszerűen kezdhető és igény szerint az OOP is elsajátítható, sok aranyos kész modult tartalmaz, mégtöbb letölthető hozzá. Ma, 2012-ben én ezzel kezdenék.

Kimondottan gyerekoktató könyv miért kell? Mert segítségével tematikusan lehet a tudást felépíteni egy gyerek számára.

A "rengeteg helyen" teljesen új fejlesztésre, vagy csak történelmi okokból?
Történelmi okok: például régi, újrafelhasználható kódbázis BASIC-ben íródott, netán a programozógárda BASIC-ben képződött egykor és ezért nem tudnak vele szakítani.

Ha történelmi okokból, akkor nem érdemes. Az továbbra is ellene szól, hogy Unix klónok esetén (Linux, BSD) nem igazán lehet látni BASIC fejlesztést.

A kérdés, nem az volt, hogy melyik nyelv, hanem az, hogy mit kellene megismerni ahhoz, hogy a gyerek programozni kezdjen. Maga a nyelv NEM kimondottan fontos, és még véletlenül sem jelenti, hogy egy nyelv mennyire alkalmazható a jelenben vagy a jövőben (hogy jelenleg népszerű-e vagy "történelem")
A programozás sokkal több, mint egy nyelv ismerete. Először is az előbbi hozzászólásomban egy picit vicceltem is, de azért a lényeg ott is megvan, a programozás alapja a gép, és ez nélkül akármelyik nyelvet is tanulja meg az ember csak rossz “programozó” lehet.

A Python egy szép, hatékony és sok mindenre használható nyelv, és semmi kifogásom, hogy az első napoktól kezdve használja és tanulja a gyerek (vagy akárki, aki kezdő – mert nem feltétlenül gyerekek kezdenek csak), de nem szabad elfelejteni, hogy maga a Python nem ad választ a legfontosabb kérdésekre, éppen úgy, mint pl. annak idején a BASIC sem adott választ mindenre.

Mindenki, aki a 8-biteseken kezdett (mint jómagam is), tudja, hogy a BASIC nagyon gyorsan nem volt elég, és általában az assembly volt az ahová fordultunk és ez volt az, ami megtanította velünk, hogy mi a gép, és hogyan működik. Ma már nagyon ritkán (majdnem soha) nem használok assembly-t, de az, hogy tudom egy akkora előny azokhoz képest, akik nem tudják, hogy nincs értelme elkezdeni vitatkozni sem róla. Ugyanakkor nem tartom igazán jó programozónak azt, aki csak egy nyelvet tud, és azt sem aki legalább elméleti szinten nem tudja elképzelni, hogyan működik a fordító, hogyan lesz a magas szintű nyelvben irt sorokból gépi kód.

Egy dolgot viszont nem szabad elfelejteni, a mai gépek és programozási környezet NEM olyan, mint a 8-bites időben, túl nagy a komplexitás ahhoz képest, ezért talán jobb lenne első fázisban elkerülni pl. az OOP-t. Elsőre vagy a funkcionális oldalról kell megközelíteni a dolgokat (pl. Lisp (Scheme, Clojure), Haskell, ...) ami ugye a lambda calculus körül épül fel, vagy a strukturális (procedurális) oldalról (Turing gép) és itt meg a Python is a Pascal is és számtalan másik nyelv is megfelel még a BASIC és a Fortran is ;)

Ugyanakkor fontos dolog ismerni legalább néhány (történelmi) nyelvet, mint pl. a Fortran, Pascal, Modula-2, Smalltalk stb. nem azért mert ebben akarunk programozni, vagy mert valami közvetlen kereskedelmi érték lenne, hanem azért mert egy olyan programozó aki ezekben a nyelvekben is tud kódot olvasni az megérti a nyelvek közötti különbséget, és azt, hogy miért is van szükség több nyelvre. C meg persze előbb vagy utóbb elengedhetetlen egy professzionális programozó számára, de nem feltétlenül muszáj elsajátítani mindjárt az elején.

...most, hogy volt időm gondolkodni... talán Perl? ;)))

Még egyszer, ne azért tanuljunk egy nyelvet, mert használható vagy mert éppen azt keresi a piac (ezért tanuljunk könyvtárakat, frameworkokat stb.), hanem azért, hogy a problémákat és azok megoldását több oldalról tudjuk megközelíteni. Egyik nyelv tanulása sem vesz túlságosan sok időt igénybe (legalább alapfokon), de minden nyelv amit tudunk igenis hozzájárul ahhoz, hogy a problémákat könnyebben, egyszerűbben és hatékonyabban meg tudjuk oldani. Végül is éppen ez a cél.

"A kérdés, nem az volt, hogy melyik nyelv, hanem az, hogy mit kellene megismerni ahhoz, hogy a gyerek programozni kezdjen."

Régebben (sajnos nem tudom linkelni) végigfutottam egy érdekes listát. Ezt olyan emberek állították össze, akik végül viszonylag sikeres programozók lettek (vagy annak gondolják magukat). Sok dologról volt benne szó, de abban mindnyájan egyetértettek, hogy az elmélyült, kitartó legozás az nagyon jó alap volt mindannyiuknak. [Szvsz simán lehetett fordítva is: programozás "vénájú" emberek szívesebben legoznak, de mint érdekes gondolat ez a Lego dolog valahogy bennem maradt. Lehet benne valami.]

"Először is az előbbi hozzászólásomban egy picit vicceltem is, de azért a lényeg ott is megvan, a programozás alapja a gép"
Szerintem a programozás értelme, hogy problémákat oldjunk meg számítógép segítségével. Ehhez alapvetően algoritmusokat meg adatstruktúrákat használunk. A gépek időről időre változnak, és nyilván egy jó programozónak ismernie is kell valamilyen szinten a vasat, de az oktatásban a lényeg akkor is az algoritmikus gondolkodás kialakítása, nem pedig a gép.

"a Python nem ad választ a legfontosabb kérdésekre"
Mindenkinek a maga kérdése a legfontosabb, és lehet hogy arra épp a Python is jó válasz. A tanult programozók hajlamosak mindent a gép felől megközelíteni, pedig sokszor hasznosabb az ember felől nézni a dolgokat. Magasabb szintű nyelvek használata sokszor lényegesen lerövidíti a megoldásra/karbantartásra fordított időt.

Nem emlékszem, hogy a magas szintű programnyelvek ellen szóltam volna valamit, hiszen teljesen normális, hogy a legtöbb esetben magas szintű nyelvben oldjuk meg a problémát, sőt ha elolvasod, amit mondtam akkor láthatod, hogy pl. Lisp-et is említettem, és nem hinném, hogy a Lisp-nél létezik gyakorlatilag magasabb szintű programnyelv. Ez persze nem jelenti, hogy a gép ismerete nélkül jó programozók lehetünk. Algoritmusok és adatstruktúrák… tökéletesen egyetértek, hogy elengedhetetlenül fontos dolgok, csak még azt nem tudom elképzelni, hogy gyakorlatilag mennyire tudja valaki elképzelni és implementálni az adatstruktúrákat (és következtetésként az algoritmusokat) ha nem tudja a mi a gép, és hogyan működik, mi a memória, CPU stb.

A gépek viszont nem igen változnak (absztrakt szinten mert nem is arra gondoltam, hogy muszáj ismerni pl. a jelenlegi gépünket a legkisebb részletekig – persze az nem árt), mert ha hiszed, ha nem még ma is a “von Neumann” féle gépek előtt ülünk éppen úgy mint pl. 50 évvel ezelőtt ült John Backus vagy Grace Hopper ült, lehet, hogy majd a Quantum gépek ezt megváltoztatják, de az jelenleg még csak egy viszonylag távoli jövőkép.

Ugyanakkor hogy tudja valaki az algoritmusokat kezelni, megérteni, implementálni, ha nem tudja mi az absztrakt automata és Turing-gép?

Szerintem itt két különböző hozzáállásról van szó, az egyik a "kezdjük kicsivel, és ahogy megértjük úgy építünk, haladunk tovább, növekedünk" (általában a mérnöki, technikai hozzáállás), a másik viszont a "maradjunk a felszínen, a csekélyben" és ne foglalkozzunk azzal, ami lejjebb van (általában az úgynevezett "liberal arts" féle hozzáállás).

Az elsőből való pl. Dennis Ritchie, Ken Thompson, Linus Torvalds, Steve Wozniak stb. a másodikból nem ismerünk senkit sem (gyakorlatilag felesleges idővesztés).

Absztrakciót nem azért vezetünk be, hogy elkerüljük a rendszer megismerését, hanem azért, hogy hatékonyan tudjunk a rendszerben "közlekedni", hatékonyan tudjuk a rendszert kezelni úgy, hogy tudjuk mi van az absztrakciók mögé "rejtve". Ha nem ismerjük a rendszert, akkor az absztrakciót többnyire tévesen fogjuk használni.

Ha játszani akar a gyerek, akkor játékot kell neki adni, ha programozni akar, akkor meg ne játsszon hanem programozzon, és ha erre még nem képes (mert biztos, hogy nem minden gyerek képes) akkor inkább ne programozzon mert még nem elég érett.

Persze, hogy komolyan gondolom. Nem értem miért gondolja valaki, hogy a programozás egy egyszerű játék? Először is mint mondtam a programozás NEM gyerekeknek való, de ha mégis a gyereket érdekli (én is nagyon korán kezdtem) akkor meg nem kell és nem is szabad a gyereket "hülyének" nézni és oltalmazni. A gyerek egy pici ember, aki sokkal többre képes, mint amit a legtöbb mai szülő gondol, nem kell a hátára tenni nagy terhet, de az nem jelenti, hogy oltalmazni kell, mert nem szopós gyerekekről van itt már szó. Ha nincs kihívás, akkor nincs fejlődés sem és az egész fáradozás akkor nem más, mint egy hiábavaló idővesztés. Amikor valamit cselekszünk, a következő kérdést feltétlenül fel kell tenni: Mit fogunk ez által elérni?

Itt arról van szó, hogy a programozás (legyen az bármilyen) olyan módon fejleszti a gyermeki gondolkodást, amelyből tényleg kár kihagyni a gyereket. Körülbelül úgy, mint ahogyan a matekból is kár lenne kihagyni, és például azt sem egyből deriválással kezdik. Nehéz felnőttként gyerekszemmel látni a világot, talán az egy jó megközelítés lehet, ha elfogadjuk: a gyerek a játék által fejlődik, és a számára minden játék. Az, amit te csinálsz nap mint nap programozás címszó alatt, az valóban nem kisgyereknek való, mint ahogyan a deriválás sem. Ámde most nem is erről beszélünk.

"Nem értem miért gondolja valaki, hogy a programozás egy egyszerű játék?"
Mert az :) a programozas nem egy kulonallo konkret valami, hanem a kombinacios keszseg, targyi tudas, gyakorlat es meg ki tudja minden mas egyben. Valamint jatek es szorakozas. Tulmisztifikalni folosleges. Ha a gyerek az altalam foljebb mar emlitett RoboRallyval jatszik, akkor kicsit programozik is. Most tiltsuk be neki azt is? Vagy mindent ahol valamilyen algoritmus epul fel? Ahol valamit tobb alkotoreszbol rak ossze, hogy az egesz mukodjon? Mindent ahol hasznalja a kreativitasat? Mert ez mint a programozas resze...
Szerintem aki programozott az tudja, hogy a programozas jatek (is). Tobbek kozott ezert is csinaljuk :)

Miért tiltanánk be a programozást, én csak azt mondtam, ha programozik, akkor programozzon, felesleges és kontra-produktív a gyereket korlátoltnak tekinteni, engedni kell neki a kibontakozást.

Miért gondolja valaki, hogy csak azért mert valaki még pl. nem 17 éves, csak játszani akar és tud, én jómagam sem szerettem volna ha szüleim, amikor 10 éves voltam úgy bántak volna velem mint egy korlátolt lénnyel akinek csak játszani kell és nem pedig komolyan venni dolgokat. 3-6 éves gyerek az esetleg más (bár annak sem kell téves képet festeni a világról), 10 éves gyerek az már elég érett, hogy komoly oldalról álljon hozzá komoly dolgokhoz (ha meg nem akkor meg már elszúrták), nem kell mindenből beszari kis játékot csinálni. Nem jó a 10 éves gyereket teljes felnőttként kezelni sem, de még rosszabb, ha a komoly dolgokat úgy akarjuk nekik bemutatni, mint valami játékot. Talán azért is van ma tele a világ 20-40 éves “gyerekekkel”, mert a szülők soha nem engedték nekik, hogy komolyan fogják fel a dolgokat... de ez már erősen off-topic.

Szóval azt akarom mondani, hogy a gyereknek EXTRA támogatásra van szüksége, nem jó ha magára hagyjuk a "vadonban", de még rosszabb ha nem engedjük neki a kibontakozást, mert egy előre korlátolt "gyerekjáték" szintre korlátozzuk amikor olyan dolgokat adunk a kezébe amelyek alapjában komoly dolgok és komoly munkát igényelnek. A gyerekeknek szükségük van ránk, hogy sikeresen tanulni tudjanak, de nincs szükségük ránk, hogy mesterségesen korlátozzuk őket mert azt hisszük, hogy valami sok lesz nekik.

Ha a gyereknek valami sok akkor az messziről látszik, ha meg nem akkor meg felesleges korlátolni őket játék szintjére. 10 éves korban már különbséget kell tenni az között mikor játszunk, és mikor kell komolynak lenni. A gyerek pontosan annyi játékkal fogja körbevenni a komoly dolgot, pontosan annyi fantáziát fűz a dologhoz amennyire szüksége van neki, hogy szórakozni is tudjon a tanulás folyamatában. Legyen bizalmunk a gyerekben.

Szerintem lehet jatszva programozni tanulni. Nem "kizaro vagy" van a jatek, es a programozas kozott... Mindenkepp szukseges hozza erdeklodes, de az ugy tunik az post inditotol kapott infokbol, hogy megvan.

Vannak peldaul olyan jatekok, ahol lehet "AI"-t programozni, kihivas lehet olyan bot-ot osszehozni, ami valamiben ugyesebb mint a tobbi bot.

Ehhez boven nem kell mely hardware ismeret, sot, csak es kizarolag az erdekes, hogy az adott kornyezetben mit lehet leirni, es azt hogyan lehet hasznalni. Senkit nem erdekel, hogy hany biten van tarolva az ellenseg haladasi irany vektora, de az annal inkabb, hogy ezt a vektort ossze tudom-e vetni az enyemmel, vagy sem, es milyen vektor muveletek ertelmezhetoek az adott "nyelvben". Persze elobb-utobb eljuthat olyan helyzetbe, hogy az adott "kornyezet" az x86 processzor, de addig nagyon sokaig megfelel ha azt tudja, hogy floatra nem vizsgalunk egyenloseget (mert a gep nem "optimalis", hogy a pl. Pi osszes jegyevel szamoljon).

Meglepodnel, hogy vannak/voltak (es nem is kevesen) az ELTE programozo matematikus kepzesen olyanok, akik diplomazaskor nem tudtak volna osszerakni maguknak egy gepet. (Ertsd: ha elejuk ontesz egy halom (nem forrasztando) alkatreszt, amibol ossze lehet rakni egy mukodo szamitogepet, akkor bajban lettek volna (foleg, ha legalabb masfel gepnyi, reszben nem kompatibilis alkatreszt raksz elejuk).) Ettol meg kivalo programozok lettek beloluk, foleg, ha tudtak a korlataikat (nem akartak biteket buheralni gepi kodban [bar tanultak azt is]), mert jo algoritmikus gondolkodasi szemleletet kaptak. Ertsd: szamara a gep egy fekete doboz, ami nagyon gyorsan ki tudja szamolni azt, hogy mennyi 100101101010101+100101101011110111, egy olyan fekete doboz, aminek ismertek a korlatai, es a korlat megkerulesenek (kitolasanak) modszerei.

Mellekszal, de ide kivankozik, hogy teljesen jol latszik, hogy az ELTE programozo kepzese az alkalmazott matematikabol (algoritmizalas, algoritmikus gondolkodas) indult el, mig a BME informatikus kepzese meg a villamosmernok oktatasbol (logikai kapuk, nehany allapotu vezerlo rendszerek) [egyiknel sem allitom, hogy most itt tart, de azt biztosan, hogy bar kozelit egymashoz, meg nem ert ossze.].

Ha figyelmesen olvasol, akkor észreveheted, hogy nem azt mondtam, hogy liberal arts hanem azt, hogy "liberal arts" (az idézőjel nem véletlen). Egyébként azokra az iskolákra-egyetemekre gondoltam, amelyeken lehetséges 2-3 lenyűgöző titulussal ékesített, de gyakorlatilag semmit sem érő diplomát is szerezni viszonylag rövid időn belül (a normális mérnököket képző egyetemeken 1 diplomáért is pokolit kell "izzadni").

-1

5.-es lehettem, amikor programozni kezdtem. BASIC, ZX-81. Aztán C-64. 7. vagy 8. osztályban assembly.
Gimnázium. Főleg assembly, szakkörön pascal. Megnéztem a C-t is, de nem fogott meg (akkor még).
Turing gépről először a főiskolán hallottam.
Nem volt szükséges hallanom róla ahhoz, hogy az előző 7-8 évben algoritmusokat találjak ki, megértsek algoritmusokat és implementáljam ezeket.

De azért fogadok, hogy a jó programozótól és főleg a professzionális programozótól akkoriban azért nagyon messze voltál.

Persze itt most inkább a gyerekek programozásba való bevezetéséről van szó és nem is gondolom, hogy a Turing-gép itt szükséges (ha elolvasod a hozzászólásomat, akkor látni fogod, hogy nem is azt mondtam, hogy a gyereknek ezt tanulni kell, hanem inkább azt, hogy meg kell érteni a gép működési elvét, legalább alapfokon mielőtt az ember programozni kezd). A Turing-gép válasz volt az algoritmusokat és adatstruktúrákat emlegető hozzászóláshoz és lényegében csak a legalapvetőbb algoritmusok és adatstruktúrák képzelhetőek el ezek a konstrukciók nélkül.

Az algoritmusok ismerése elég jócskán megelőzte a Turing-gép felfedezését, tehát teljesen normális, hogy nélküle is felfogható dologról van szó, csak éppen nem mindegy, hogy milyen bonyolultságú algoritmusoktól és adatstruktúrákról van szó, mert ugye a számítástechnikában elég sokszor éppen azokra az algoritmusokra van szükség (legalább is 2012-ben, 1981-ben persze más valamennyire más volt a helyzet az 1KB és hasonló gépen) amelyek már ezek a dolgok nélkül elképzelhetetlenek. Egyébként, mint mondtam mehet a Python is és a Pascal is (és a BASIC is), de nem jó, ha a gépet fekete dobozként kezeljük.

Tehát minimum annyit kellene tudni, hogy van CPU, memória, I/O és, hogy ezek legalább úgy absztrakt szinten hogyan is működnek. Szinte biztos vagyok benne, hogy ezt még a ZX81 idejében is tudtad. Egyébként én is ZX81-el kezdtem :)

Most tettem aktuálissá a kérdést a családban. A fiam 9 éves (harmadikos), a lányom 7 éves (elsős). A fiam kb 4 évesen kezdett el gépezni (gcompris), de azt egy idő után megunta. Utána jöttek a pöttyös kapitány és társai. Most a mindenféle webes flash-es játékokra van rákattanva, főleg a a lego és a kizy oldalakról. Az olvasás, írás, matek stabilan megy neki. Úgy gondolom, most kell megismertetni a programozás és az alkotás örömével. Már egy ideje keresgélek, de a lightbot 2 jónak tűnik. A gyerek mindenesetre rákattant, és a kiscsaj is :)

Most már csak valai jó kis python-os "tanmenetet" kell felkutatnom a következő fázisnak :-)

Mostanaban egy-ket aprobb bugot javitottam pythonos cuccokban. Meg a vegen lehet, hogy megkedvelem. Sot van par alkalmazas, amit hasnlok/hasznalnom kell majd/ es lehet, hogy belejuk is kell őicit nyulni, es ezek is pythonosok, ugyhogy a "kigyobuvolest"* nem uszom meg, bar tiz eve meg mindketten azt gondoltuk...

*btw: tudom, hogy Monthy és a hullohoz semmi koze, de ennek a "kigyobuvoles"-nek szemelyes uzenete van.

CodeCombat?
JS-t tanít (mondjuk azt nem tudom, mennyire jó a JS kezdő nyelvnek, nem beszélek JS-ül), mindezt írtó játékosan...
--
blogom

A nyelvi problémák nem könnyítik meg a használatát, de ajánlom megnézni a Kodu-t, illetve utódját a Project Spark-ot.

Üdv,
Marci
A Microsoftnál dolgozom.

Attól függ hány éves a srác?

Én 11 voltam, amikor az isiben volt egy könyv kiárusítás és ott megláttam egy Turbo Pascal könyvet, ami teljesen az alapoktól kezdte az ismertetést.
Számtech tanáromtól elkértem a TP IDE-t és önerőből nekiálltam tanulni.
Rá egy évre már egérrel működő grafikus felületet írtam, egy MS Painthez hasonló rajzolóprogival. Igaz, akkor már egy jó vaskos könyvem is volt a TP-ről :)

Tehát szerintem lehet kezdeni ezt rendes nyelvvel is. Ha megvan a kellő elszántság, bármi lehet belőle.

Szerintem is lehet "rendes" nyelvvel kezdeni, főleg, ha a gyerek magától csinálja és érdekli. (De miért tenné, ha korlátlan mennyiségben áll rendelkezésére a színes-szagos, fogyasztandó tartalom...)
Ami viszont egy komoly különbség: a gyerekek által nap, mint nap látott programok felülete és a "klasszikus" nyelveken való szárnypróbálgatás eredménye között ma sokkal nagyobb a kontraszt, mint anno a 80-as, 90-es években volt.
És még egy kontraszt: anno, legalábbis az én szüleimnek, fogalma nem volt a programozásról. Mindent magamnak kellett felfedezni és ez a "saját" világom volt, aminek eredményeit hüledezve nézték a szülők-rokonok. Ma, felnőve, azon töprengek, hogyan csaljam ebbe az általamnak értékesnek tartott terepre a gyerekeimet -- na persze, így már kizárt, hogy hasonlóképpen az ő saját világuk legyen a dolog. Ez valami olyan, amit apu akar (bármennyire próbálja is leplezni :-), és így bizony nem olyan izgi.

Üdv,
Marci

Nézzük meg a dolgot kicsit más oldalról is. :)

Én elég korán találkoztam számítógépekkel, lévén édesapám munkája kapcsán dolgozott rajta.
Talán általános iskola második-harmadik osztályába jártam, amikor egy HDD-hiba, ill. Stacker összeomlás kapcsán valamiféle szövegszerkesztő-szerű program elveszett, amivel akkortájt "szórakoztam"... ekkor mutatta meg a QBasic-et, hogy ezzel is lehet "játszani" / varázsolni - és elkezdtem játszani vele, valamint érdeklődni, mit, hogyan lehetne megvalósítani - és kódoltam néhány dolgot.
Külön élmény volt, amikor később Quick Basic alatt futtatható .exe file is készülhetett - igaz, hogy ez az interpretert szépen mellépakolta az .exe-ben, így viszonylag nagy helyet elfoglalt, de azért mégis... A Turbo Basic jobb volt ebből a szempontból, kisebb állomány is készült vele.

Később kérdezte, miért nem próbálom ki a Turbo Pascal-t is - és elkezdtem ugyanazokat a dolgaimat megvalósítani mint Basic alatt, amolyan tanulási céllal (ez talán egy-két évvel később volt maximum)... szerettem volna legalább ugyanannyit tudni ezen a nyelven is - persze készültek még egyéb programok, ezek már mind Pascalban.
Jobban tetszett a dolog, az elkészült programok kisebbek és fürgébbek is voltak. Érdekes volt akár printer porton LED-et villogtatni is, és tetszett, hogy azt csinálja a gép, amit "mondok neki".

C-vel a felsőoktatásban ismerkedtem meg, és ugyan hallottam, hogy néhány ember kódjára amolyan Pascalos jelző került, saját kódomra ilyen észrevételt sohasem kaptam... és a kód a sajátom volt persze. Ellenben ami másnak "kínai" és gyors volt, nekem nagyon lassú tempónak tűnt. Tehát nem érzem úgy, hogy rossz irányba befolyásolt volna bármelyik programnyelv is, amivel kapcsolatba kerültem - inkább segített, mert lényegében a gondolkodás megvolt, csak a nyelvismeret hiányzott, ezt viszont hamar felszedi az ember. A sokat emlegetett pointer dolog is amolyan "ja, csak ennyi" érzést váltott ki, holott sokaknak tényleg nem volt egyértelmű (pedig Assembly kapcsán ez azért előkerült más tárgyból is). Valószínűleg ezen a téren nagy segítség volt a korábban megszerzett tudás...
Emellett a mikrokontrolleres és ehhez kapcsolódó dolgokkal (ez lehet akár egy ARM-os szerkezet is) kicsit visszatért az a bizonyos érzés, ami a printer port + LED villogtatása, ill. a "számítógép" kontrollálása kapcsán korábban is megfogott.

Ergo nem egészen biztos az, hogy ez a bizonyos "saját" világod nem ragadhat át valamiféleképpen.
Igaz, én még a DOS-t ismertem, majd leginkább az NT vonalat, és a Linux irányába fordultam - ez utóbbi alatt azért kicsit jobban elkülöníthető a grafika és a "motorháztető", ill. ami alatta van - talán nincs veszve minden. :)
Ráadásul kisgépek terén ez azért még hasznos dolog tud lenni.

Lehet azért még bőven izgalmat találni - az is tűnhet izgalmasnak, ha a csemete olyasvalamit is tud, amit te nem feltétlen. :)

Pont a mai "katartikus" élményeket keresem, de nemigen találom.
szerintem visszatekintve, én (mi) el voltunk kényeztetve.
-amikor az első Covox adaptert összeraktam, a PC speakerhez képest maga volt a csoda, nem beszélve arról, hogy a Sony walkman volt a kor legszexibb audio eszköze. Ma ezzel szemben bármi zenél és a világ összes zenéjét tudja.
-a párhuzamos porton való LED villogtatáshoz egy felsős diák megértése, kitartása elég volt, úgy, hogy közben még értetted is, hogy mitől gyulladt ki. Szerinted ma is ilyen egyszerű kapcsolgatni mondjuk 8 ledet egy PC-ről?
ráadásul akkoriban a LED maga is egy kisebbfajta csoda volt, izzólámpák voltak még a legtöbb berendezésben.

Üdv,
Marci

Szerintem csak változtak kicsit a dolgok...
Ma a LED-villogtatós csoda talán az Arduino képében van jelen (lehetne más kontroller is, de ezzel kísérleteznek a legtöbben talán), ugyanúgy el lehet vele "játszani" és akár számítógépről irányítani.

A piros/zöld led nem volt különösebb csoda, ellenben amikor a kék, ill. fehér LED-ek megjelentek... :)

+1

Én csak egyetemen találkoztam mikrokontrollerekkel, ott se sokat, de nagyon élveztem. Szerintem a ledek nem mentek ki a divatból, illetve ma már olcsón vehetsz mindenféle kiegészítőt, lcd panelt, szenzorokat, stb., amik szintén izgalmasak lehetnek. Ráadásul lehet kicsit pákázni is, amiért külön jó. :) (Van is egy ilyen project tervem mikrokontrollerre, amihez kell egy kis rádiótechnikai tudás is, pont azért, hogy ilyet is tanuljak.)

Az sem mindegy, hogy mekkora iskolas, de ha olvasni, szamolni tud, el lehet kezdeni.

A BASIC-et nem tartom jo kezdesnek, rengeteg rossz szokast tud vele felvenni az ember. A Logo nem rossz, eleinte latvanyos is, de nehezkes, a gyerekek 90%-a nem jut tul a parameterek varialasan. En a Scratch mellett vagyok, mert sokkal konnyebben tanulhato es nagyon szorakoztato vele igazi programokat irni.
A Scratch utan viszont az alapszintu Python a leglogikusabb es legjobb lepes, abbol aztan sokaig nem fog kinoni, de eleg okos lesz, hogy valtani tudjon, ha akar. Persze minden nyelvet utalni fog utana a nyomoronc szintaxisa miatt, de hat ez van:)

Hagyjuk már ezt a BASIC-el rengeteg rossz szokást fel lehet venni bullshitet. Rengetegen vannak, akik basic-kel kezdtek, mégis tudnak normális C/Java/.NET/whatever kódot írni.

Ha valaki komolyan gondolja a programozást, úgy is kinövi majd a BASIC-es dolgokat, aki meg csak belenézeget, annak meg kb. tökmindegy.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Offtopic erősen, de:
Légyszi, ha nincs rá lehetőséged hogy változtass rajta, akkor ne linkelj olyan https linket aminek a tanúsítványa lejárt/nincs rendben/self signed/etc. és amúgy az oldal elérhető http-vel is.
Ha esetleg van beavatkozási lehetőséged is van, akkor jelezni kellene, hogy a Mozilla már tavaly letiltotta a md5 hash aláírással rendelkező tanúsítványok elfogadását (a Chrome még előbb, a MS tervek szerint pedig idén februárban érkezik a WinUpd keretein belül javítás a tiltásra), így a 2014 elején eléggé problémás md5 hash-el aláírni egy tanúsítványt. Amúgy a tiltás nem öncélú, van rá ok is. Részletesen

Én 7 évesen kezdtem, és nekem bejött. Ha lesz gyerekem, akkor hasonlókat fogok mutatni neki is. A legnagyobb nehézség szerintem az, hogy érdemes valamilyen cél irányából megközelíteni a dolgot, hogy belső motiváció legyen a tanulásra. Én folyton játékprogramot akartam írni, és közben egy csomó matematikai és fizikai szimulációs dolgot próbáltam ki, hobbim lett.

* BASIC - "mikroszámítógépen". Ma már lehet, hogy Java-val vagy pythonnal kezdeném a tanítást.
* C - 8-9 éves kortól. Ennek ma elég nehéz értelmes használati esetet találni. Talán Arduino-t érdemes hekkelni.
* x86 ASM - kb. 13 éves kor körül. Ez megint csak értelmetlennek tűnik manapság. Viszont nagyon fontos szerintem a szemlélet miatt. Ezért talán Arduino-n csinálnék ilyet 10-16 éves kor között. Lehet néhány alkalmazást találni, amit csak ASM-ben lehet megcsinálni mikrovezérlőn.