Zobrazit na úvodní stránce článků

Na začátek článku
Titulka > Modul články > Gymnaziální vzdělávání > Nahraďte algoritmizaci systémovým přístu...

Ikona teoreticky

Nahraďte algoritmizaci systémovým přístupem!

Ikona odbornost
Autor: Ivan Ryant
Anotace: Autor argumentuje proti požadavku, aby se studenti učili řešit problémy algoritmicky. Místo toho žádá, aby řešili problémy systémově.
Obor příspěvku:Informatika a informační a komunikační technologie
Klíčová slova: problém, systém, algoritmus, algoritmizace, systémový přístup, algoritmický přístup

Text článku:

Jedním z cílů vzdělávací oblasti „5.8 Informatika a informační a komunikační technologie" RVP pro gymnázia je „uplatňování algoritmického způsobu myšlení při řešení problémových úloh". V charakteristice vzdělávací oblasti je tento cíl začleněn do kontextu zpracování informací v systémech: „Žák ... soustředí se na pochopení podstaty a průběhu informačních procesů, algoritmického přístupu k řešení úloh a významu informačních systémů ve společnosti." Algoritmizace pak má svůj výstup a příslušné učivo uvedené v kapitole 5.8.1 RVP. Problém je v tom, že úlohy se v informatice řeší zpravidla jinak než algoritmicky, informační procesy nemívají charakter algoritmů a ani informační systémy se nenavrhují jako algoritmy.Toto tvrzení vysvětlím později.

Nejprve však připomenu, co je a co není algoritmus. Již od dob, kdy středověká Evropa studovala počtářskou příručku legendárního Mohameda z Chivy, se za algoritmus považuje přesný a jednoznačný postup nějakého užitečného výpočtu popsaný krok za krokem od zadání vstupních údajů až po nalezení výsledku. Stručně se tomu říká efektivní procedura. Algoritmus (podle Donalda Knutha):

  • má být složen z elementárních kroků (které počtář umí)
  • má jednoznačně určovat pořadí, jak kroky výpočtu následují jeden za druhým
  • má skončit
  • má dospět k výsledku

Algoritmus tedy není výpočet:

  • který nekončí (např. software kardiostimulátoru musí běžet, dokud se nevybijí baterky)
  • který nevede k výsledku (zejména pak výpočet, který nekončí, nevede ani k výsledku)
  • který nemá jednoznačně určené pořadí elementárních kroků (např. webový nebo databázový server obsluhuje několik požadavků současně, pořadí elementárních kroků není předepsáno)

Takto popsaný algoritmus je jen vágní pojem. Matematici jej někdy zpřesňují využitím Churchovy nebo Turingovy teze, že totiž každý užitečný výpočet se dá popsat jako funkce lambda kalkulu nebo jako Turingův stroj (v obou případech jde o exaktně definované algebraické struktury). Ztotožníme-li algoritmus např. s Turingovým strojem, okamžitě se dostáváme do dalšího problému - do problému nezastavení Turingova stroje, který je nerozhodnutelný. Ne o každém algoritmu tedy dokážeme říct, zda se zastaví, skončí a vydá výsledek, nebo zda poběží neustále, nikdy se nezastaví, a tím pádem se ani nedobere žádného výsledku. Z tohoto důvodu jsou požadavky na konečnost a rezultativnost algoritmu prakticky bezcenné. Dalším problémem je reálný čas, na který se při algoritmickém výpočtu nebere ohled (algoritmus má skončit v konečném čase, ale žádná konkrétní lhůta se nestanovuje). Proto programy, které musí dodržovat časové lhůty fyzického světa, nemohou být řešeny algoritmicky. Jenže každý program, který interaguje s uživatelem nebo s čímkoli fyzickým ve svém okolí, musí takové lhůty dodržovat (podrobnější rozbor uvádí např. Edward Lee ve svém článku).

Zvláštním zdrojem mnoha dalších problémů, který navazuje na RVP, bude pravděpodobně „Katalog požadavků k maturitní zkoušce" z ITZ. Tento katalog má vypracovat „Centrum pro zjišťování výsledků vzdělávání" (CERMAT) do jara 2010. Poslední mně známá, dnes však již neaktuální aktualizace katalogu z roku 2005 naznačuje, že věru bude co řešit: např. omezení algoritmizace na pouhé strukturované programování a s tím spojený vztah algoritmů k příkazovým a datovým strukturám. Největším problémem však asi bude poměr mezi množstvím učiva a hodinovou dotací informatiky. Poznamenejme, že jenom výuka algoritmizace ani ne v rozsahu požadavků z roku 2005 mi bohatě vyplní jeden rok volitelného předmětu „programování" s dotací dvou hodin týdně. Stejnou hodinovou dotaci však máme na celou informatiku, ne jen na jedno poměrně okrajové téma.

Vraťme se nyní ke klíčové otázce: jak se řeší problémy v informatice prakticky? Při analýze problémů a návrhu systémů, které zpracovávají informace, se s algoritmickým přístupem setkáváme v praxi už aspoň dvacet let jenom okrajově. Výpočetní postupy jsou fragmentované a sdružené s datovými strukturami do objektů - objekty nevyjadřují postup výpočtu. A nedospíváme k nim algoritmizací úlohy, nýbrž analýzou a designem informačního systému. Algoritmus prostě vyjde rovnou fragmentovaný. Pokud se ovšem o algoritmus vůbec jedná. Při analýze a designu systému se nedbá na jednoznačný sled operací výpočetního postupu. Sled operací není determinovaný zejména v několikavláknových systémech nebo v systémech paralelních procesů, ani při řízení systémů událostmi (např. interaktivní uživatelské rozhraní, tzv. „okna", řídí systém událostmi). Souhlasím, že algoritmizace může být jedním z vhodných úvodů do programování, sám jí dávám přednost před metodou „objekty napřed", kterou znám např. ze skvělé učebnice Bertranda Meyera „Touch of Class". Ale vzápětí po algoritmech pak musí následovat objektová architektura. Když však nejde o kurs programování, nýbrž o zacházení s informacemi obecně, je algoritmizace vysloveně škodlivá. Pokud totiž máme studenty naučit systémovému přístupu k analýze informací a případně i k pochopení vnitřní struktury informačního systému, musíme je naučit postupy analýzy systémů. Zde pak vedle sémantických sítí (příp. myšlenkových map), které konstruujeme intuitivně a vesměs naivně, přicházejí na řadu modely systémů v diagramech UML (Unified Modeling Language). Diagramy UML dokážeme konstruovat podle metodického postupu prověřeného zkušeností mnoha profesionálních analytiků, takže ve srovnání s intuitivní konstrukcí sémantických sítí máme daleko větší šanci, že model v UML bude správný.

Proto považuji za chybu, že algoritmický přístup je v RVP uveden v souvislosti s řešením problémů, s informačními procesy a s informačními systémy. Pak je ovšem chybný i cíl, aby se žák omezoval při řešení problémů zrovna na algoritmický způsob myšlení. Spíš bych doporučoval navázat na modelování pojmových systémů pomocí sémantických sítí a konkretizovat jak postup modelování, tak i způsob kreslení modelu směrem ke standardu UML. Pokud jde o algoritmický přístup, ten má svoje místo jen ve zvláštních případech při řešení dílčích úloh.

Zatím vím jen o dvou takových zvláštních případech: Za prvé, algoritmický způsob řešení úloh je také jedním z cílů vzdělávacího oboru „5.2 Matematika a její aplikace". Tam má opravdu své místo, mj. proto, že algoritmický charakter je jedním ze základních požadavků na důkazy v matematice, ty totiž nesmějí být nealgoritmické. Za druhé se domnívám, že algoritmizace může být obsahem volitelného předmětu zaměřeného nejspíš na programování. Škola, která doplní závazný obsah RVP o takový předmět, současně vhodně prováže informatiku s matematikou. Pokud však jde o povinnou informatiku, ukázal jsem v tomto příspěvku, že algoritmický přístup už dávno není ani jediným, ani dostatečným, ba ani základním způsobem řešení problémů, že vždy může být nahrazen obecnějším přístupem (zejména objektovým). Proto dnes algoritmizace zůstává znalostí a dovedností specifickou jen pro matematiku, kdežto řešení problémů v jiných oblastech a oborech se na algoritmický přístup už dávno zúžit nedá.

 

Algorithm, Wikipedia, navštíveno 8. 6. 2009.
Unified Modeling Language, OMG, navštíveno 14. 6. 2009.
Bertrand Meyer: Touch of Class, Springer 2009.
Edward Lee: Computing Needs Time. Communications of the ACM; vol. 52 / nr. 5 (May 2009), s. 70-79.
Nová maturita, CERMAT, navštíveno 14. 6. 2009.

Článek je v těchto kolekcích:
Citace a použitá literatura:
[1] - Rámcový vzdělávací program pro gymnázia. Praha : Výzkumný ústav pedagogický, 2007. ISBN 978-80-87000-11-3. 
[2] - KNUTH, Donald . The Art of Computer Programming. Addison-Wesley, 1968.  
[3] - MANNA, Zohar. Matematická teorie programů. Praha : SNTL , 1981.  
Anotované odkazy:
Příspěvek nemá přiřazeny žádné anotované odkazy.
Přiřazené DUM:
Příspěvek nemá přiřazeny žádné DUM.
Přiřazené aktivity:
Příspěvek nemá přiřazeny žádné aktivity.
 
INFO
Publikován: 13. 07. 2009
Zobrazeno: 7544krát
reklama
Hodnocení příspěvku
Hodnocení týmu RVP:
Hodnocení článku : 0

Hodnocení uživatelů:
Hodnocení článku : 5
Hodnotit články mohou pouze registrovaní uživatelé.

1 uživatel Hodnocení článku : 5
zatím nikdo Hodnocení článku : 4
zatím nikdo Hodnocení článku : 3
zatím nikdo Hodnocení článku : 2
zatím nikdo Hodnocení článku : 1
Jak citovat tento materiál
RYANT, Ivan. Nahraďte algoritmizaci systémovým přístupem!. Metodický portál: Články [online]. 13. 07. 2009, [cit. 2017-08-20]. Dostupný z WWW: <http://clanky.rvp.cz/clanek/c/G/3206/NAHRADTE-ALGORITMIZACI-SYSTEMOVYM-PRISTUPEM.html>. ISSN 1802-4785.
Doporučte materiál
Licence Licence Creative Commons

Všechny články jsou publikovány pod licencí Creative Commons.

reklama

Komentáře RSS komentářů článku
1.Autor: Ivan RyantVloženo: 28. 06. 2011 15:11

Dovoluji si upozornit, že tento článek byl převzat také na server Česká škola a tam je k němu diskuse na adrese http://www.ceskaskola.cz/2009/07/ivan-ryant-nahradte-algoritmizaci.html

2.Autor: RNDr. I. MarekVloženo: 29. 06. 2011 08:38

Off topic - technická poznámka. Publikovat ten který článek na co nejvíce sajtech je správné. Ale vést k jednomu a témuž článku diskusi na více sajtech je neefektivní až nesmyslné. Proto prosím pana autora, pokud publikuje na více místech, aby jako první vstup do diskuse uvedl, kterou diskusi (na kterém sajtu) on sám považuje za primární.

3.Autor: Ivan RyantVloženo: 01. 07. 2011 22:16

Děkuji za připomínku, budu se snažit doplňovat odkazy, pokud se o převzetí článku dovím. Česká škola přebírá některé články z Portálu RVP automaticky, bez upozornění a až po nějaké prodlevě. Kupodivu se stalo, že zrovna v tomto případě se tam rozvinula hodnotná diskuse, zatímco na Portálu RVP nikoli. Já jsem na ni narazil úplně náhodou až po dvou měsících. Obecně platí, že články publikuji primárně na Portálu RVP a proto i diskuse na Portálu RVP je primární.