Cíle výuky informatiky, resp. výpočetní techniky (polemika)


Poživil, Jaroslav

Doc., Ing., CSc, Vysoká škola chemicko-technologická, Ústav počítačové a řídicí techniky, Technická 1905, 166 28 Praha 6, 02/2435 4259, 243 11 082, pozivilj@vscht.cz, http:///staff.vscht.cz/uprt/

1. Abstrakt

Only by embracing substantial education can we gain success, strength and influence in the global society. Problem solving and creating knowledge has highly visible role in education that our students need now. Problem analysis, development of efficient algorithms, and their implementation in a procedure-oriented language is a way how to learn problem solving using computers. We should discuss outline of the basic course of computer science and replace text editor teaching by algorithms and programming.

2. Úvod

Katedry, resp. ústavy, které mají ve své náplni výuku automatizace a řízení, obvykle zajišťují rovněž výuku základního kurzu informatiky nebo jak se předmět nazývá na naší škole Výpočetní techniky. Rádi bychom zahájili, resp. obnovili diskusi o obsahové náplni předmětu. Vedou nás k tomu tři důvody:

  1. Neustálý, stále se zrychlující rozvoj jak technického tak programového vybavení počítačů vede k nutným změnám náplně a pojetí výuky výpočetní techniky.
  2. Do roku 1989 převažoval v našem školství názor, že úroveň vzdělávacího procesu je v naší zemi na velmi dobré úrovni snad s výjimkou výuky cizích jazyků a počítačové gramotnosti. V poslední době se situace mění. Jak ukazují objektivní průzkumy, schopnosti žáků a studentů našich škol řešit problémy nejsou tak slavné jak jsme se domnívali, na druhé straně se velice zlepšilo vybavení našich škol výpočetní technikou.
  3. Podle posledních amerických výzkumů [Murray & Herrnstein 1994] není pro kvalitu života ve vyspělé technologické společnosti (podle amerických měřítek jde zejména o úspěch, vliv a bohatství) důležité sociální, ekonomické nebo etnické pozadí člověka, ale především jeho schopnosti, nadání, IQ. Pokud se chceme v globalizovaném světě uplatnit, měli bychom je tedy rozvíjet.

Jsem si vědom, že řada prezentovaných názorů je subjektivních a vyvolá nesouhlasnou reakci. Proto se také text nazývá polemika. Pokud však vyvolá plodnou diskusi, splní svůj účel. Analýzu provedeme podle našich zkušeností z VŠCHT Praha, většinou však platí pro vysoké školy technického zaměření obecně.

2. Cíle výuky obecně

Dnes již nikdo veřejně nepřizná, že smyslem studia je memorovat látku jednotlivých předmětů podle zásady čím více pamětného učení tím lépe. V reálné výuce se však takto stále děje a to v zarážející míře. Jsem zastáncem názoru a chtěl bych pro jeho skutečné prosazení i něco dělat, že jedním z podstatných cílů studia na VŠCHT je vychovat budoucí inženýry chemie tak, aby byli schopni samostatně a tvůrčím způsobem řešit i rozsáhlejší a komplexnější úkoly z oblastí technické chemie, jako je např. zavádění nových technologií či inovace výrobních linek za účelem zvýšení jejich efektivnosti. K tomu musí získat jednak určité základní znalosti z chemie, termodynamiky, chemického inženýrství atd., dále musí být schopni samostatně si doplnit hlubší či speciální znalosti a zejména se musí naučit metodiku řešení inženýrských úloh.

Výuka metodiky řešení inženýrských problémů musí postupovat od řešení jednodušších úkolů k složitějším. Ve vyšších ročnících k tomu slouží různé semestrální práce a ročníkové projekty. Schopnost samostatně vyřešit technický problém nakonec posluchač prokazuje při řešení diplomního úkolu. Na začátku studia k tomu dává výtečnou příležitost Výpočetní technika. Ideální modelovou úlohu inženýrského postupu řešení rozsáhlého problému představuje totiž řešení úlohy na počítači, zejména její algoritmizace.

3. Algoritmizace a výuka schopnosti řešit problémy

Během řešení úlohy na počítači se musí student ve velice pregnantní formě seznámit se všemi etapami inženýrské metody řešení problému - s jeho analýzou (formulací cílů, definováním a shromážděním potřebných dat, hledáním a výběrem metody řešení), s vlastním řešením (nalezením algoritmu a jeho realizací na počítači) a konečně se syntézou (s kritickým rozborem výsledků, jejich dokumentací a vyvozením závěrů z nich). Tento cyklus se opakovaně prochází při odstraňování chyb a při verifikaci řešení. S iteračním přístupem se posluchač setká i v praxi, kdy z pečlivé analýzy plyne zpřesnění formulace, řešení působí zpětně na analýzy apod. Student se dále podle metodik strukturovaného programování naučí rozkládat řešení složitého problému na dílčí problémy a spolupracovat v týmu.

Podle některých odborníků je výuka algoritmizace a inženýrského postupu řešení problému nejcennější částí výuky Výpočetní techniky. Vždyť tolik lidských činností v sobě zahrnuje rozhodovací procesy nebo opakování s podmínečným ukončením. Jaké prostředky k tomu volit? Dříve byl preferován programovací jazyk Turbo Pascal, protože je přímo uzpůsoben k jednoduché a názorné realizaci jednotlivých etap inženýrské metody řešení problému. Mezitím však byly významně zmodernizovány i ostatní běžné programovací jazyky, takže výběr jazyka už není tak důležitý. Všechny jsou strukturovány, umožňují interaktivní ladění programu a práci v prostředí textového editoru. My bychom asi upřednostnili Visual Basic pro aplikace, protože je součástí Excelu, se kterým jsou studenti seznámeni. Rozhodně už nemá téměř nic společného s původním Basicem a jeho nestrukturovanými nepřehlednými programovými nudlemi. Výrazně by však bylo zapotřebí inovovat řešené příklady. Sem by bylo podle našeho názoru třeba napřít hlavní úsilí.

Poznámka na okraj: Dříve preferovaný název cvičení z informatiky "Výpočetní laboratoře" je podle mne poněkud zavádějící. V laboratořích se většinou mechanicky postupuje podle "kuchařky", zatímco ve výpočetní technice se preferuje tvůrčí práce a logické myšlení.

4. Vývoj výuky Výpočetní techniky na VŠCHT Praha

Naši pozornost bychom rádi zaměřili do budoucna, proto se historií výuky Výpočetní techniky budeme zabývat jen velmi stručně se zdůrazněním jednoho aspektu týkajícího se zaměření naší úvahy.

Výuka Výpočetní techniky na VŠCHT jako základního předmětu povinného pro všechny studenty byla zahájena v r.1971. V prvních desetiletích se důraz kladl na algoritmizaci a výuku programovacích jazyků v posloupnosti Fortran, pak Basic a nakonec Pascal. Technické vybavení se postupně vylepšovalo od sálového počítače Tesla 200, kde jako vstupní zařízení sloužil snímač děrných štítků, přes mikropočítače IQ 151 až po osobní počítače rostoucí kvality (PP 06, AT 286, Pentia). V souvislosti s příchodem osobních počítačů se postupně omezovala výuka Pascalu a byla zahájena výuka textových editorů (Text602 a Word) a tabulkových procesorů (Quattro Pro, resp. Excel). Pod tlakem některých ústavů, resp. fakult školy byla výuka programovacích jazyků v základním studiu nakonec zcela zrušena.

I když tento vývoj je hodnocen veskrze positivně, rádi bychom upozornili na jeden opomíjený a zajímavý aspekt. Zpracování programu na děrných štítcích trvalo řádově dny až týdny, student mezitím bohužel ztrácel souvislosti a zájem. Vedlo to však k řádné analýze úlohy, k promyšlené a odpovědné konstrukci algoritmu, nehledě k pečlivému naprogramování, protože za každou chybu se platilo pracnou opravou a značným zpožděním. Současné interaktivní a velmi rychlé zpracování programu vede naprostou většinu studentů k tomu, že prakticky nemyslí, nezamýšlí se nad algoritmizací úlohy a experimentují až dojdou k nějakým výsledkům. Ty často nejsou správné, resp. algoritmus nepostihuje všechny varianty v závislosti na hodnotách vstupních dat. Experimentální přístup se týká i používání jednotlivých příkazů. To, že se je student pořádně nenaučí a jen zkouší, jak je použít, způsobuje, že často neví o některých možnostech a celou řadu jejich výhodných vlastností neumí ani využít. Jestliže naším hlavním cílem je zkvalitnění studentova myšlení a zejména zlepšení jeho schopnosti řešit problémy, tak by stálo za rozbor, jak se vypořádat s touto negativní stránkou interaktivní práce s počítačem.

Trochu zjednodušeně bychom mohli vývoj výuky Výpočetní techniky shrnout tak, že zatímco v sedmdesátých letech student přemýšlel a sestavoval algoritmy, v devadesátých letech nemyslí, tahá myší, klepe na obrázky nazývané ikony a čeká, co se stane.

Jedním z hlavních argumentů odpůrců výuky programovacích jazyků je fakt, že v současné době jen velmi malá část absolventů vysokých škol technických v praxi programuje. Cílem studia však není naučit se přesně to, co bude absolvent používat, ale rozvinout jeho schopnosti. To bychom mohli vyškrtnout prakticky celou výuku matematiky (vždyť kdo se v praxi setká s křivkovým integrálem), která je přitom tak důležitá pro vývoj logického a exaktního myšlení. Naopak bychom měli do výuky zařadit řešení problémů, se kterými se absolvent VŠCHT po nástupu do provozu setká nejčastěji: na záchodě buď voda neteče vůbec nebo jí teče moc (ventil podchází) nebo co dělat, když do směny nenastoupí třetina osazenstva atd.

5. Poznámka k výuce numerických metod

Tradiční součástí výuky Výpočetní techniky na VŠCHT v Praze je i výuka numerických metod. Ty se probírají v základním kurzu matematiky, v rámci Výpočetní techniky jde spíše o jejich praktickou aplikaci. Dokud byla náplní Výpočetní techniky pouze výuka programovacího jazyka, byla realizace algoritmů základních numerických metod jednoznačná a nebylo o čem diskutovat. V dnešní době, kdy je věnován značný prostor výuce tabulkového procesoru Excel, se nabízí několik možností. V minulém semestru se realizoval v několika kroužcích experiment s různým pojetím výuky numerických metod. V části kroužků se numerické metody programovaly v tabulce, v části se programovaly ve Visual Basicu pro aplikace a v některých se realizovaly vybrané numerické metody oběma způsoby. I když bychom z hlediska rozvoje myšlení studentů asi stranili algoritmizaci metod ve Visual Basicu, tak reakce jak řady studentů, tak některých kolegů z ústavu matematiky byla jednoznačná: Teprve po rozpitvání metody vložením příslušných vzorců do tabulky, kde jsou zřejmé jednotlivé kroky a hodnoty mezivýsledků, studenti metodu pořádně pochopili. To bohužel netvrdili s výjimkou těch nejschopnějších ani o výkladu v matematice, ani o realizaci algoritmu ve Visual Basicu. Náš závěr je asi takový, že výuka algoritmizace a programovacího jazyka vyžaduje určitý čas. Jestliže se stáhne na příliš malý prostor, standardní student do ni moc nepronikne.

6. Návrhy do budoucna

Návrhy by měly vycházet z hlavního cíle, kterým by mělo být zkvalitnění studentova myšlení a zejména zlepšení jeho schopnosti řešit problémy. Protože rozšíření rozsahu výuky Výpočetní techniky (resp. na VŠCHT Praha návrat k rozsahu výuky, jak se realizovala v sedmdesátých letech) je nereálné, musíme hledat prostor pro větší objem výuky algoritmizace, resp. programovacího jazyka uvnitř předmětu.

Domnívám se, že na vysoké škole by se vůbec nemusely učit textové editory. Vždyť nemáme vychovávat sekretářky, ale tvůrčí inženýry. Jednak úroveň výuky na středních školách neustále roste, jednak jsou k dispozici kvalitní učebnice podle kterých se může Word naučit posluchač vysoké školy samostatně [Šimek & Vacek 1997]. Z textového editoru by se pouze skládal v rámci výuky Výpočetní techniky v polovině zimního semestru přímo zápočet, který by byl podmínkou připuštění ke klasifikovanému zápočtu z Výpočetní techniky tak jako se kdysi skládal zápočet z logaritmického pravítka, který byl podmínkou připuštění ke zkoušce z matematiky. Pak by se rozšířil prostor, který by bylo možno věnovat výuce algoritmizace a programovacího jazyka.

Na druhé straně je třeba jasně říci, že cílem výuky předmětu základního studia není připravit hotového programátora. Tak jako student po absolvování základního předmětu analytická chemie není ještě analytikem apod. Po absolvování základního předmětu je sice student schopen vytvářet vlastní programy pro řešení jednodušších úloh převážně numerického charakteru (do té doby, než to zapomene; pokud znalosti nevyužívá v navazujících předmětech tak je to zcela určitě dříve, než začne řešit diplomní úkol), ale měl by jednak získat přehled o vlastnostech a možnostech moderních softwarových produktů a zejména by měl být schopen samostatně dál opakovat a rozvíjet získané poznatky a dovednosti a komunikovat se specialisty.

7. Závěr

V dnešní kompetitivní ekonomice globalizovaného světa roste význam vzdělání. Ovšem nikoli jakéhokoli. Jeho významnou součástí musí být rozvíjení schopnosti studentů tvořivě řešit problémy. K tomu může podle našeho názoru významně přispět výuka algoritmizace a i její realizace v programovacím jazyku. Měli bychom se proto zamyslet nad dnešními osnovami Výpočetní techniky, a zvážit jejich úpravy.

8. Literatura

MURRAY, CH. & HERRNSTEIN, R. 1994. The Bell Curve: Intelligence and Class Structure in American Life 1994, podle Respekt č. 26, 22.-28. června 1998.

ŠIMEK, T. & VACEK, J. 1997. Učebnice Microsoft Wordu pro střední školy, Praha : Computer Press, 1997, 140 s.