Posted By: Jovo () on 'CZhelp' Title: Ad: Programovaci jazyky Date: Mon Oct 24 17:03:34 2011 Ahoj. Vyuka programovani je slozita vec. Kdyz se na ni jde, jak je v nasi republice obvykle: uci to kdo umi o 3 makra vic nez mistni geekove nebo dostal od reditele knizku "Ucime se programovat v XYZ":) Vetsinu lidi to odradi na cely zivot v ramci prvni hodiny, protoze se lidi musi naucit nejdriv STRASNOU spoustu syntaxe. Pritom programovani neni slozite - jen se slozite uci. Blbe je, ze to neni jako preskok svedske bedny, ktery lze odkoukat, jde o to naucit se trochu jinak myslet a to musi kazdy udelat uvnitr sve hlavy sam a s tim se pomoct neda - jen ukazat cestu. A kdyz ukazujete lehke, lehce pochopitelne cesty, zaci/lidi jsou je schopni sledovat. Co jsem koukal, tak ten Scratch je vyborna volba! Logo take neni spatne (kdyz mas i toho robutka, co rejdi po podlaze a kresli, to je parada!:) a je o trochu sympatictejsi holkam - neco nakreslit jim jde o dost lip nez kdyz honi po obrazovce Karla. Presto: KAREL RULEZ:) Ono se to nezda, ale pro vyuku je to idealni: par prikazu, velmi dobre definovany svet (objekty a operace s nimi/na nich), graficky vystup. Karla je spousta (XKarel, browserova verze na http://karel.oldium.net/, verze v JS http://code.google.com/p/js-karel/, ...). Pokud se ma clovek ucit programovat, nejdriv se musi naucit algoritmicky myslet - ja zacinam s rozborem zadni strany polevky z pytliku:) Vyborne je, ze to vsichni znaji a dovedou si to predstavit. Zkuste to rozvijet o "pridej vejce", "ochutnej. Je to dost slane? Jestli ne, pridej sul." a podobne. Dokonce muzes nenasilne narazit na princip throw new Exception("Chybi hrnec!") :-) Pokud ucis automechaniky,vezmi treba vymenu vyfuku, se sekretarkou zacni rozborem prepojovani prichoziho hovoru,... U malych/mladych je to problem, ale klidne se muzes "snizit" k tomu, proc jeden Pokemon porazi druheho:) Vzdy najdi neco, co si dovedou predstavit, treba "Co vsechno udelam, nez vyraizm do skoly." Programovani = Objekty a Akce. Program = sekvence akci, ktere pracuji s nejakymi objekty. Vic toho neni. Az je prestane bavit "programovat polivku", vybal na ne Karla/Logo/... a vysvetli jim, ze jak se "vari polivka podle navodu", tak se "vari program" - navod je jinak popsany, ale cely proces vstup+algoritmus-->vystup je totozny. Vis, co je desna psina? Robot Karel nazivo! Fakt:) Napis na tabuli KROK, VLEVO VBOK, POLOZ, ZVEDNI, na podlahu namaluj ctvercovou sit, vyber nejvetsiho sigra ze tridy, dej mu do kapes kostky cukru a postav ho do rohu site. Pak poloz doprostred site kostku cukru a zadej ulohu "Jak donutime Frantu jen pomoci techto slov, aby sel a zvednul ji?" "Polozil do vsech rohu kostku?" atp. A ma nekdo z vas nejake jine reseni? A ktere reseni je nejlepsi - to, v kterem to Franta udela na min kroku nebo pri kterem ho budeme honit jako vola sem a tam? Occam ma radost;) Pak jim nech pomoci podminek tvorit procedury (VPRAVO VBOK, ZVEDNI VSE,...) - podminky nemusi byt zrovna karlovske (OPAKUJ 3x VLEVO VBOK, DOKUD je znacka ZVEDNI,..), klidne nech vyjadreni v prirozenem jazyce ("dojdi ke zdi"). Teprve pak jim predhod Karla jako program a uvidis, jak rychle do nej vplujou. Vsadim se, ze se Scratchem to bude stejne. Po Karlovi muze prijit Baltik nebo prinejhorsim Pascal (udelej jim stuby a at plni telo - treba ten vypocet objemu krychle). Zacinat s VB/Excelem/Pascalem/Javou/C/... je HODNE nestastne nejen kvuli nutnosti znat spoustu syntaxe a semantiky, ale hlavne: DESNE to koliduje s matematikou! Kdyz se clovek x roku uci, ze a = b + c a matematika nezna sekvencni zpracovani (rovnice se sice resi sekvencnim zpusobem, ale zadani a vysledek jsou totozne v casove rovine) a kdyz je postavite pred X = X + 1 - hnedka vidite ty protazene obliceje:) Na takovou zmenu paradigmatu proste nejsou pripraveni a ani byt nemohou. Tady je dobry Pascal, ktery ma jiny operator X := X + 1, takze se to trochu skryje - v kazdem pripade je nutne mluvit ne o "rovna se", ale "prirazeni". Toz hodne stesti!... a poreferuj - treba se tve zkusenosti a postrtehy pujdou dat vyuzit. Jovo.