Jan Wagner: Jaký programovací jazyk ve výuce? Další neverending story...

pátek 9. září 2005 ·

Tradičním programovacím jazykem pro výuku programování na školách všech stupňů je bezesporu Pascal. Je ale i v dnešní době tím pravým ořechovým?

Tradičním programovacím jazykem používaným pro výuku programování na školách všech stupňů je bezesporu Pascal. U nás se používají především implementace společnosti Borland od Turbo Pascalu počínaje (pamatujete ještě někdo na ty krásné časy s 8bitovým OS CP/M?) po Delphi či Kylix, které jsou v základní verzi pro školy zdarma. Turbo Pascal navíc běhá i na nejslabším železe. V článku na Živě s titulem Co dnes mezi programátory letí (převzatém z papírového časopisu Computer) se pustil autor Jan Polzer do velmi laického a neinformovaného mudrování, které vyvolalo bouřlivou odezvu (dodnes téměř 150 komentářů). Paralelně na mailové konferenci Jednoty školských informatiků čistě náhodou stále probíhá diskuse na téma „Pascal – argumenty“, respektive „jaký jazyk?“ Jaký je aktuální názor čtenářů České školy, kteří na toto téma již mnohokráte často i vášnivě diskutovali?

Přiznám se, že já osobně trochu lavíruji. Přestože jsem v Pascalu profesionálně neprogramoval, při výuce mi vyhovoval, ale souhlasím s následujícími četnými kritickými názory. Čistý Pascal v praxi už asi neuvidíme. Použití Javy, osvědčené i na ZŠ a mladších žáků, o čemž si můžete na České škole přečíst v řadě článků Rudolfa Pecinovského, má rovněž řadu nepominutelných výhod. Jednou, příliš nezdůrazňovanou, je i možnost programování pro mobily, což souvisí s její multiplatformností. To může být pro žáky jednoznačně motivující. Podobnou výhodu má i JavaScript: výsledek práce je okamžitě vidět a pro základní práci stačí Poznámkový blok a browser. A web je pro každého mladého programátora zajímavým rejdištěm a zřejmě i možným pracovištěm. Všimli jste si, kolik teenagerů si tvorbou webů přivydělává? A to často i žáků základní školy! Python pak považuji za černého koně.

Otázkou je i použití nástroje pro první programátorské kroky, vizuální nástroje jako Baltík či Petr, případně Karel či Logo vyžadují rovněž pozornost. Karel napsaný v Javě je pak jistě lahůdkou. Další problém je ale i ve specializovaných nástrojích či aplikacích pro učitele: Imagine Logo, Cabri, Visual Basic for Application, Action Script, a výčet by mohl pokračovat. Zde je nutno brát v úvahu cenu i třeba multiplatformnost. Samozřejmě vhodný je open source software a i práce s ním, ta především na odborných školách pak může žáky zatáhnout do reálného programátorského globálního světa, opět s možnou vysokou možnou motivací. Zapojení se do takovéto komunity je ale pro starší generaci pedagogů možná nepřijatelné. Stačí vůbec pedagogové svým žákům?

Zde je několik nekorigovaných citátů z obou diskusí (zvýraznění redakce), samozřejmě uvítáme další diskusi i na našem webu, témat je jistě mnoho:

Lenka Suchánková:

Argumenty proti Pascalu: zastaraly jazyk, dnes uz se tak nikde neprogramuje, ani Delphi v praxi se nepouziva, strukturovane (proceduralni) programovani neni uz dnes potreba…(napiste dalsi)

Argumenty pro Pascal: jazyk vytvoreny vyslovene pro vyuku algoritmizace a programovani, v praxi diky Borlandum prorazil, i v jinych typech jazyku nutno chapat princip vetveni, cyklu, vnorovani, … nauci dobre navyky, …(napiste další)

Mirka Sedláčková:

Myslím, že záleží na typu výuky - pokud studenti mají nějaký základ algoritmického myšlení, pak mi připadá Pascal navíc, ale pokud nemají nic (a takových učím většinu), pak pro začátečníka je výhodný kvůli přehlednosti - pokud píše opravdu strukturovaně, naučí se programovat "řemeslně", tedy tak, aby zachoval kontinuitu. Měla jsem možnost srovnat HTML kódy studentů, programujících v C++ a studentů, programujících stejnou dobu v Pascalu a v prvně jmenovaných se nedalo vyznat…

Michal Heppler:

Od zacatku az do konce pouzivat Python -- v praxi je pouzivany, pro vyuku je dobry. V kombinaci s vyvojovym prostredim Eric to je mocny nastroj pro vyuku. (…)

Pri vyuce programovani jde o to naucit zaky spravne myslet v algoritmech -- rozdelit ulohu na mensi a jednodussi, pochopit cyklus, podminku, typy, podprogramy a pripadne tridy a metody. Samotny programovaci jazyk je jen nastroj pro pochopeni techto veci. Proto by mel byt zak nad problemem syntaxe, protoze resit problemy typu "pripsal jsem do podminky prikaz a ted to nefunguje… aha, zapomel jsem na begin a end (ci { a })", nebo "KDE mam tu chybu! …aha, neni tady strednik." je desive umorne a dokaze otravit kazdeho nezapaleneho studenta. Meli jsme programovani jako povinny predmet a ne vsichni byli nadsenci, takze to jsou prakticke zkusenosti z pozorovani spoluzaku.

V Pythonu jsem na zadny problem klasickeho jazyka typu Pascal, C, C++, Perl a dalsi proste nenarazil. V Pythonu se student muze soustredit plne na reseni problemu samotneho a ne serepaticek kolem, ktere ho potom neumerne zdrzuji od programovani.

Klidne si ucte Pascal, Delphi, VB, C, C++ ci Perl, ale vzdy budete vetsinu casu ztracet tim jak danou myslenku vyjadrit a ne tim, jestli je ta myslenka spravna.

Pavel Kosina:

Co mě absolutně uchvátilo na Pythonu, co jsem již od začátku věděl, že to je jazyk první volby, je systém odsazovaní. Nelze napsat graficky nevzhledný program, i ve složitých programech se dá vyznat, protože vnořené bloky jsou skutečně vnořené, odsazené dovnitř. Co mi došlo až později je, že to není jen akademický jazyk, že má dobré uplatnění v praxi a i při řešení konkrétních problémů.

Martin Grombiřík:

Imho je to spojené s otázkou, jak vůbec výuku programování pojmout. Zda začít na "starém dobrém" strukturovaném programování, nebo ho zcela eliminovat, a hodit žáky rovnou do vln OOP, jak doporučuje p. Pecinovský a další.

Dále zda učit didakticky vhodný, ale v praxi ne příliš použitelný jazyk (Karel, Logo, Baltík, …) nebo jazyk méně didaktický, zato ihned umožňující řešit problémy "reálného světa".

Já jsem učil na základy na Linuxu v Bashi, Perlu a PHP (tedy klasická strukturačka s občasným objektovým vylepšením) - to jsou skriptovací jazyky, kde se nedrbáte s typováním proměnných a řešíte vyloženě algoritmické úlohy (větvení, podmínky, cykly). Zvláště v Perlu je možné vytvořit jak drobné jednoúčelové ptákovinky na jeden řádek, tak velké systémy a kritické aplikace; na www.cpan.org jsou rozšiřující knihovny pro všechny myslitelné programátorské situace a úlohy. Jeho problém je, že velmi záhy zjistíte, že v něm jdou dělat pěkné prasárny ("účel světí prostředky") a málokdo odolá pokušení zkazit si dobré programátorské vychování. Je tedy otázka, zda je z těchto důvodů výchovné ho učit :-) . Jiným typem by mohl být Tcl/Tk - jednoduchý skriptovací jazyk na tvorbu GUI pro aplikace v jiných skriptovacích jazycích, dá se na něm celkem dobře pochopit princip objektového návrhu grafického uživatelského rozhraní.

S poměrně dobrým ohlasem se setkal návrh vzít jako první jazyk Python. Jeho syntaxe je postavená na odsazování řádků kódu, což vás nutí vytvářet i opticky přehledný kód. Jeho fanoušci tvrdí, že je naučitelný za dvě hodiny. Na toto téma byl tuším i článek na České škole První jazyk: Python a odkaz s abstraktem je i někde na www.jsi.cz

Magdalena Chmelařová:

Krásné programové snění, někdo psal - Pascal je mrtvý jiný že je těžký apod.. Máme mnoho vývojových profesních prostředků na programování (já učím v Borland Delphi, v jazyku C a chci nadané studenty zasvětit do Javy).

Ale programovací prostředek je jenom rutina pro přepsání vytvořeného algoritmu. Má svou syntaxi i sémantiku a když žáček pochopí jak rozkrokovat úlohu, aby se dostal ke správnému řešení musí dobře umět teorii algoritmu, umět provádět analýzy a nalézat principy řešení. Takže !!!! je úplně jedno !!!!! v čem ho kdo naučí pak provést implementaci řešení. Já začínám vždy programovat v jednoduchém Pascalu, protože on je nejlepší na pochopení (datových struktur, pochopení řídících struktur - sekvence příkazů, větvení, cykly, přepínací funkce, procedury a funkce, na pochopení rozdílů programovat strukturovaně, modulárně a objektově - už učím hlavně objektovou analýzu i implementaci). Nevím jestli jsem zvolila správnou cestu - ale studenty to baví, chodí i do kroužku a hlavně jezdí na soutěže (Amavet, YCIS, programování, olympiáda), někdo z mých studentů programuje v Delphi, jiný v C ale nikdo ve Visual Basic (ten neumím). To znamená, že je ovlivňujeme. Chceme-li je nalákat, musíme učit to prostředí, které umíme, nesmíme tápat. Závěr - každý si musí nají programovací prostředí, které umí (doopravdy důležitějsí je analýza a hledání řešení - přidat teorii grafů, teorii her apod…).

Marie Pokorná:

A proč pořád Delphi? Jednak mi je bližší kvůli Pascalu, který jsem dělala léta a taky kvůli tomu, že hodně vysokých škol v Jm kraji začíná na Delphi. To byl důvod, proč jsem po tříletém pokusu s Visual Basicem volila návrat k Delphi.

Oleg Pacz:

My jsme prumyslova skola a tak pro nas je nezanedbatelne rizeni pomoci pocitace.

Pro pascal:

1. V pascalu mohu primo posilat a cist data na portu. Udelali jsme si vlastni pripravky ktere ridime pocitacem ( krokove motorky, svetelna krizovatka, … vice na http://www.sps-karvina.cz/www/odborne_vzdelavani/index.htm

2. Na pascal mi staci stary i bezdiskovy pocitac a bootuji ze site nebo z diskety.

3. Zkusenosti kantora co umi.

m1c4a1:

Dnes se programátoři zhýčkaní vývojovými prostředími prostě nesnaží. Algoritmizace je základ skutečnýho programování. V obřích programovacích jazycích (.NET, popř. i Java) jsou funkce na "všechno", prostě se to jen nějak poslepuje.

Benzin:

NetBeans jsou taky zdarma i pro komercni vyuziti a za Personal Delphi se platit musi, naopak Personal Kilix je zdarma. Delphi neni Pascal a dokonce ani Object Pascal, Borland nedodrzuje standardy Pascalu a sam prohlasisl, ze nema ambice tyto standarty v Delphi dodrzovat, takze se nejedna o vyvojove prostredi Delphi, ve kterem se programuje v Pascalu, ale o Delphi jako vyvojove prostredi i Jazyk zaroven.

Stejne tak neni pravdou, ze by Pascal byl pouzivanejsi nez Java, delam aktivne v obou jazycich a mam sanci tohle posoudit.

Stejne tak kod naprogramovany v C++ neni volne prenositelny.

Platforma .Net neni jen pro internet, pro ten je ASP.NET, samotny .Net bude nahrazovat WinApi v novych verzich Windows.

IDE vyvojove prostredi pro Free Pascal se neda ani zdaleko srovnavat s Delphi, to je jako srovnavat malovani s CorelDraw. Navic Free Pascal pomalu umira a ma uz minimalni podporu.

Programy vytvorene v JAVA nejsou apriory pomalejsi, nehlede na to, ze uz neni problem prelozit takove programy primo do nativniho kodu daneho OS.



Jan Wagner

0 komentářů:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.