neděle 30. listopadu 2014

Matematika u maturit? 7

Čím potenciálně matematiku nahradit?


V poslední odpovědi panu Žíkoveckému a dalším diskutujícím jsem se zmínil, že na další post si ponechám zmínku o něčem, co by mohlo středoškolskou matematiku zcela nebo z větší části nahradit. Mělo by to být něco jednoznačně exaktního a logického, kde se nedají vytahovat záhadné klikyháky uprostřed "logického" odvozování, a mělo by to pomáhat rozvíjet logickou složku myšlení.
Jako excelentní věc, schopná IMHO matematiku v tomto ohledu zcela nahradit, se rýsuje informatika.
Ovšem nikoli "informatika", kde se, v důsledku "zásnub" ministerstva školství s jistou nejmenovanou firmou, žáci učí, že "počítač = windows", "psaní na počítači = word" a "počítání na počítači = excel". A kde se zkouší testy s otázkami typu "na kterém řádku záhlaví excelu a na které pozici zleva je ovládací prvek, kterým změníme písmena v buňce z normálních za silná?". Zažily moje děti na gymnáziu, takže vím, o čem píšu.
Čili pokud informatika, tak opravdu zpracovávání informací počítačem, nejlépe na úrovni jednoduchých programovacích jazyků, u nichž se dá snadno dosáhnout více stupňů abstrakce.
Akceptuji názor pana Satrapy, že ti, kdo se chtějí programováním živit, by neměli začínat svou kariéru s perlem, nicméně pro neprogramátory ho pokládám za jazyk přímo skvělý, protože se v něm jednoduché "malé", věci dají dělat velice snadno a dovede dobře pracovat i s texty (zatímco u řady dalších jazyků je nutno složitě obcházet různá omezení, která v tomto ohledu mají). Pascal byl kdysi vynikající (i jako pedagogický nástroj), ovšem zdegeneroval do microsoftího delphi s tím, že pro současné počíteče a verze OS patrně ani neexistuje rozumně fungující a zdarma dostupný překladač. Java a python jsou zatíženy "povinnou objektovostí", která činí jejich syntaxi nepřehlednou a v řadě případů nelogickou, java je navíc zatížena existencí řady nekompatibilních "dialektů" a naprosto nepřehlednou až zmatečnou dokumentací. Ruby, lua a podobné projekty trpí v zásadně stejnými problémy a možná ještě ve větší míře. BASIC zdegeneroval podobně jako Pascal a je navíc opět zatížen existencí nepřehledné záplavy nekompatibilních druhů a odrůd.
Patrně by neškodily kromě programování základy TeXu (ono to do jisté míry je také programování) na tvorbu dokumentů, případně zvládnutí základů práce s jeho "nevlastním bratrem" metapostem na tvorbu obrázků a další grafiky (metapost považuji za kvalitnější než SVG, protože psaní obrázků přímo v SVG je podobné vytváření postscriptových obrázků přímo textovým editorem, zatímco metapost používá plnohodnotný jazyk s pojmenovanými proměnnými, podmínkami, cykly atd.).
Počítač má proti papíru tu výhodu, že nezkousne nějaký nedefinovaný znak či odkaz na neexistující (nedefinovanou) proceduru. V takovém případě prostě zhavaruje překladač či interpret a je to jednoznačně vinou toho, kdo psal program. Odpadlo by tedy blábolení nad nedefinovanými, nebo jen vágně definovanými pojmy, které je hlavní náplní středoškolské matematiky. Vše pro počítač musí být jasně a jednoznačně definováno, zde nehrozí, že by počítač nahrazoval neexistující nebo nesmyslné definice mechanickým učením se nazpaměť, jak je tomu u studentů. Už v diskusi z roku 2010 zaznělo, že pokud se nedá podle výkladu v učebnici rovnou napsat příslušný úsek počítačového programu, tak je text v té učebnici jednoduše špatně.
Prostě počítač jako mezivrstva mezi matematickým pedagogem a studentem by toho matematika donutil přestat blábolit a začít říkat jasně konkrétní věci. Což je právě to, co ve středoškolské matematice dost zoufale chybí.
Další věcí je, že matematika si osobuje jakési "matematické myšlení", nicméně v reálu vykrádá sousední nebo i nepříbuzné obory. Rozbor problému a algoritmizace jeho řešení v podstatě matematika neumí, zde by se informatika mohla uplatnit daleko lépe a srozumitelněji. Jistěže by se studenti touto cestou mohli dozvědět i řadu ryze matematických informací, ale dozvěděli by se je v jasném a přehledném kontextu, navíc při řešení nějakého praktického problému, tudíž by si je s největší pravděpodobností daleko lépe zapamatovali.

Pochopitelně, s výběrem jazyků a dalších prostředků informatiky vycházím z vlastních zkušeností:
Já osobně jsmem po mnoha peripetiích a námluvách s řadou jazyků skončil právě u toho perlu s tím, že grafiku buď dělám v metapostu, nebo (potřebuji-li grafiku přesnou na pixel) v Image Magicku. Ovšem se zohledněním faktu, že jazyk IM je prostě dost hnusná záležitost (a velmi nízkoúrovňová), takže už jsem párkrát prostřednictvím perlu generoval skript, který, spuštěn jako parametr programu convert (ta součást IM. která umí namalovat podle série příkazů obrázek) vygeneroval finální obrázek. Metapost umí i série očíslovaných obrázků, takže se dá použít i ke tvorbě animací.
A do jisté míry jsem byl donucen si porozumět s TeXem a LaTeXem s výsledkem, že jednoduché věci píšu přímo pro TeX, složitější věci, na které existují v LaTeXu prostředí  procedury, dělám v LaTeXu a pokud jsem nucen udělat něco složitého, na co buď nejde nebo z nějakého důvodu nemohu použít LaTeX, tak holt zabořím šňupák do příslušné dokumentace a poperu se s tím TeXem.
U toho (La)TeXu existuje obrovská výhoda i v tom, že TeX byl zakonzervován a s výjimkou odstraňování chyb, které má pod palcem jeho autor, se do něj nepřidávají nové věci a staré se nemění, takže co se člověk naučí, bude moci bez nejmenších problémů použít i za deset a více let (a jsem proto schopen bez nějaké úpravy zpracovat své (La)TeXové dokumenty z konce 90. let, zatímco texty pořízené v tehdejších kancelářských editorech jsou už mnohdy současnými prostředky "nedobytné"). LaTeX tak superkonzervativní není, ale zpravidla tam existuje zpětná kompatibilita a navíc, když by bylo nejhůř, jsou k dispozici původní verze programu (zatímco např. word 95 by člověk na současných počítačích a OS patrně nerozchodil).
A odpadá i problém, kdy po každé změně subverze MS Office je nutno uspořádat spěciální školení, kde se kancelářským slepicím ukáží současné pozice ikonek, na které jsou zvyklé, případně jak si je vrátit na pozice, kde jsou zvyklé je mít, a tím v podtatě eliminovat 90 % a něco toho, co daná inovace obsahuje.

4 komentáře:

  1. Filipika:
    Znám fůru lidí, kteří se bez programování obejdou. Třeba ty kancelářské slepice. (Taky jsem nechal programování, když jsem zjistil, že dělat to pořádně je práce na plný úvazek a že skoro vše, co se dá využít už naprogramováno bylo. Synáček, "programový architekt" mi to (s nechutí) potvrdil.)

    Ad inovace: Nejméně z 80%, ale možná z 95% se jedná o obchodnickou záležitost nebo o odstranění chyb předchozí verze. Některé programy sleduji už léta, protože na nich denně pracuji - a kromě vzhledu a nového OS nad kterým pracují se "doplňují" jen o nové, většinou dost zbytečné utility. Navíc mám takový poznatek, že málokdo (mluvím o profesionálech) využívá např. editory foto, video i audio na víc než 20%. Kupují nové verze na nemalé peníze a bývají velmi překvapeni, když jim ukážu, že ve staré verzi programu je tatáž funkce - jen s jiným názvem. Nebo je to jen uživatelské nastavení nějaké utility. Případně se jedná o funkci, kterou použijete tak dvakrát za život - pokud si na ni vůbec vzpomenete.
    Navíc - ani podrobné manuály často nepostihují funkce, které jsou v programu dány už genericky. Fungují třeba zkratové klávesy, o kterých se nikde nedočtete.

    Podstatné je, aby se při inovacích neměnilo ani rozložení kláves / ikon, ani zkratky či názvy funkcí. Protože když (mluvím za sebe) na něčem pracuji, opravdu ovládám program jen rutinně, protože se soustředím na výsledek, na vlastní materiál, který zpracovávám a opravdu nevím, proč bych měl ztrácet čas vzpomínáním, jak je to v téhle verzi, jak se to dělá dnes oproti včerejšku. Je to podobné, jako by někdo měnil v autě třeba polohy pedálů nebo dokonce jejich funkci - a vydával to za inovaci.
    Druhý problém jsou spoustu automatik na všechno. Když si koupím nový aparát nebo dostanu novou videokameru, strávím několik hodin až dní jen tím, že vypínám veškeré automatiky. Je pravda, že s automatizací dokáže složitý přístroj ovládat i úplný debil - ale je tu zásadní otázka, proč si zmíněný raději nekoupí jednoduchý a mnohem levnější "přístroj pro debily".
    Ale nejspíše je to také obchodní praktika.

    P.S.: Nejdražší foťáky nemají fotografičtí profíci, ale amatéři, kteří fotit neumí - a nikdy se to nenaučí, protože mají absenci talentu, ba i píle. Ale mají na ně ty prachy. Ostatně - o počítačích to platí taky. [;>)

    OdpovědětVymazat
    Odpovědi
    1. Ty kancelářské slepice dělají mnohdy naprosté šílenosti s Excelem a jeho makry, což v podstatě programování je (aniž by to věděly). A dělají to právě proto, že nejsou s to analyzovat a zalgoritmizovat problém.

      S těmi programy naprostý souhlas. Proto mám raději ten Tex, kde se nic nemění a navíc mohu zvolit takový textový editor, který mi vyhovuje, a do jehož ovládání např. měněním klávesových zkratek nikdo rejpat nebude. Proto mám mnohem vyšší efektivitu práce, než kdybych dělal na officech.

      K těm automatikám naprostý souhlas. Automatika má význam jen tehdy, když se dá vypnout, protože jinak se s ní prskticky nelze domluvit. U těch fotoaparátů je to akcentováno tím, že jejich výrobci vědí, že 99 % snímků jimi pořízených, bude tetička Klotylda ((c) L. Souček), strnule hledící do objektivu a umístěná zhruba uprostřed snímku. Co se tomuto "ideálu" vzdaluje, tak s tím jsou problémy.

      Vymazat
  2. Zdeněk Žíkovecký1. prosince 2014 3:16

    (1) Komerční programy je třeba ze škol odstranit a nahradit je OpenSource; a motivovat studenty, aby se podíleli na jejich vývoji. Než uložit začátečníkovi vypracování jednoduchého samostatného programu, který pochopitelně nebude mít valný smysl, je užitečnější požadovat úpravu už existujícího programu - tak se student poučí, jak to dělají zkušenější programátoři.
    (2) Programovací jazyky: (a) Mnedle nesejde příliš na tom, kterým se začne; ty základní principy jsou všude stejné. Pro přechod na jiný jazyk není ani třeba číst manuál, stačí si prohlédnout kus hotového programu. Mnohem náročnější na učení než změna jazyka je změna knihoven (GTK, wx, Qt, ...). (b) Pro začátečníky bych doporučoval JavaScript, k tomu postačí textový editor a html prohlížeč.
    (3) Pascal: Co třeba http://en.wikipedia.org/wiki/GNU_Pascal? (Já to nezkoušel, vystačím si s céčkem.)
    (4) TeX: Na většinu textů postačí html+css, TeX má smysl snad nanejvýš až když potřebuji nějaké ty "dvojdimenzionální klikyháky".
    (5) Šachy: (a) Logické myšlení se projeví až ve střední hře, v úvodní fázi má navrch ten, kdo se naučí zpaměti standardní zahájení. (b) Je poněkud deprimující, že člověka porazí počítač. Možná by stálo za to zkusit http://cs.wikipedia.org/wiki/Arimaa

    OdpovědětVymazat
    Odpovědi
    1. 1. Souhlas
      2. Ne, to se někdy liší natolik podstatně, že to nejde, na to už člověk musí znát těch jazyků několik a různých. Java Script má tu zásadní nevýhodu, že nemůže ukládat nic na lokální disk a musí se to různě obcházet.
      3. Existuje, ale nevím, jak moc je dobrý
      4. Ne, TeX definuje stránku naprosto přesně, css v podstatě něčeho podobného není schopno. Navíc má naprosto idiotskou syntaxi.
      5. Šachy jsou v zásadě passé, právě proto, že je zvládne počítač (a "hrubou silou").
      Asi lepší je to go,které jsem zmiňoval minule, na tom si počítače zatím lámou zuby (chce to odhadem tak první amatérský dan, aby si počítač neškrtl).

      Vymazat