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.