[python] Brainstorm request: Vyuka programovani na gymplu

Filip Štědronský regnarg na seznam.cz
Pátek Červen 6 19:15:11 CEST 2008


On Út, čen 03, 2008 at 09:07:30 +0200, Vlada Macek wrote:
> Co byste do osnovy urcite zaradili? A co krome toho "urcite"?

Dobrý den,

to je zajímavá otázka. Celkově vzato, úroveň výuky
programování a IVT obecně je na většině škol absurdně
zoufalá. Ještě jsem nepotkal žádného učitele, který
by opravdu něco naučil, ani nikoho, kdo by takového
znal (tím nechci říct, že dobří učitelé neexitují,
ale je jich málo).

Kdybysi jsem se o problematiku výuky programování zajímal
hlouběji, ale člověk se zabývá důležitějšími věcmi a času
moc není.

Na čem hlavně záleží je, co chcete naučit (nebo v
ideálním případě, co se chtějí naučit žáci). Jsem toho
názoru, že výuka by měla začínat od základních principů
(proměnné, řízení toku, organizace paměti, etc.) a
algoritmizace (klidně v nějakém primitivním jazyku à la
Pascal, já považuji za ideální D, ale to je věc osobního
názoru), pak přejít na nějaký dynamický jazyk a vysvětlit
na něm pokročilejší věci.

Pokud vám jde více o programování samotné, dá se začít s
jednodušším dynamickým jazykem (jako Python, Ruby nebo
zmíněné Groovy, i když to znám jen okrajově) a zabývat se
trošičku hlouběji jazykem samotným (na což by při modelu
A nebyl čas). Taková věc samozřejmě znamená vykládat
jazyk spíše od principů (hned začít objektovým principem
a nevracet se k němu později).

Jak mile pochopíme jazyk a naučíme se v něm vyjadřovat
své myšlenky (včetně OO hraček typu __getattr__ a
__call__), je třeba věnovat pozornost první důležité
nejazykové kapitole — návaznosti na okolí, protože každý
program je (resp. by měl být) úzce spjat s vnějším
prostředím. Tedy I/O, parametry programu, proměnné
prostředí, různá systémová volání, manipulace se
souborovým systémem, POSIXové funkce, etc.

To umožní vytvářet bezproblémové CLI programy s úzkou
návazností na okolní prostředí, jaké jsou oblíbené např.
ve světě unixu. No a pak už lze přejít k tomu, co osobně
názývám oblíbená témata — sítě, grafika, GUI, svět
knihoven a jak dělat složité věci jednoduše, dál už se
věci odvíjí jen podle zájmu.

To pavažuji za takové základní celky, někde jsem měl
připravené podrobnější materiály i s hodinovými rozpisy,
v případě zájmu se to mohu pokusit někde vyhrabat...

Přeji hodně štěstí ve Vašem snažení,
Filip Štědronský

PS: S největší pravděpodobností jsem zapomněl na něco
    důležitého, nechť mě prosím kdokoliv opraví či
    doplní, psal jsem to dosti narychlo. Za případné
    nedostatky a hlouposti se omlouvám.

-- 
regnarg --- http://rg.pretel.cz -- JID: regnarg na jabber.cz
V péči o štěstí druhých nacházíme své vlastní.   --Platón
Přátelství může trvat jedině mezi dobrými lidmi. --Cicero



Další informace o konferenci Python