Vysoké školy učí dějiny IT

Přijde mi, že hodně názvů vysokoškolských předmětů na IT fakultách by dávalo větší smysl, kdyby se před ně dalo slovo "dějiny". Třeba Dějiny značkovacích jazyků, Dějiny informačních systémů, Dějiny superpočítačů, apod. Přitom by měly začínat slovem principy. Například Principy informačních systémů.

Vysvětlím:

  • Dějiny jsou popisem historie. Jsou to konkrétní události nebo techniky, jak se něco dělalo dříve. Spadá do nich ale i popis toho, jak se něco "dělá dnes". Už se to tak totiž stejně dávno nedělá - VŠ je buď 10 let za praxí, nebo je praxe už natolik modernizovaná a používá natolik složité postupy, že nemá smysl učit je detailně studenty na vysoké škole v nějakém přehledovém předmětu. Tedy i popis rádoby současných, konkrétních technik, je v tomto smyslu dějinami.
  • Principy jsou jádrem věci. Jsou to základy a myšlenkové pilíře, které budou platit i za 10 let a proto má smysl je učit. Jestli nepřijde někdo, kdo dokáže, že P = NP, tak budou principy každému, kdo je ovládá, užitečné a může na nich stavět.

Technická vysoká škola má učit principy. Nejen proto, že je stále pozadu, ale také z toho důvodu, že je to prostě to nejužitečnější, co by měla předat. Dějiny jsou velice zajímavé a já osobně je mám moc rád (třeba ty o starověku), ale je to, přiznejme si, jen zajímavost a určitý všeobecný rozhled. Ten leckdy napomůže k tomu, abychom se poučili z minulosti a neopakovali chyby, ale není žádnou základní dovedností. Naopak, zatížení mysli prošlapanými cestičkami ji může uvěznit a omezit její kreativitu v řešení problémů. O tom je to lidové moudro všichni říkají že to nejde udělat, až se najde blbec, který to neví, a udělá to.

Ha ha ha.

Příklady

Dám dva příklady z FITu:

  • Informační systémy učí několik odrážek o principech, ale zbytek předmětu je o HTML, PHP, MySQL, JavaScriptu, DOM a XML. Vše probírané způsobem, který odráží použití těchto technologií před dejme tomu pěti lety. Nikdo nikomu nezazlívá, že garant předmětu nedokáže držet krok s překotným vývojem webu - on to totiž vůbec nemá dělat. Měl by najít principy, které platí neustále a stále se k nim celý obor informačních systémů vrací a navazuje na něj. Zárodky něčeho takového lze ve skriptech najít, jenže jádro kurzu stojí na něčem zcela pomíjivém.
  • Formální jazyky a překladače je o základech a principech, na kterých leží formální informatika a výstavba překladačů. Vývoj a výzkum na poli zajímavých a nově používaných gramatik či automatů existuje a je možná neméně překotný, než ten na webu, akorát není tolik vidět. Jestli si myslíte, že překladače dnes nefrčí, mýlíte se (V8, PyPy). Nikdo vás ale neučí nejnovějším atributovým gramatikám a aktuálním technikám jejich konstrukce v C - učí se principy, aby člověk věděl na čem je překladač nebo regulární výraz založený a proč funguje jak funguje.

V původním tweetu jsem použil jako příklad značkovací jazyky. Hodně lidí si myslelo, že narážím na předmět PB138‬ na FI MU. Ačkoliv je předmět pravděpodobně spíš zástupcem "historického" pojetí (učí jednu konkrétní technologii), nebylo mým primárním cílem snášet nějakou kritiku zrovna na tento jeden konkrétní předmět. Článek je myšlen obecně. Vzbuzovalo to až takové vášně, že jsem tuhle část článku raději přepsal, snad je to teď jasnější.

Projekty

Jistě vás napadlo, že v takovém případě je problém s projekty. Má-li dojít v rámci výuky k nějaké implementaci, je potřeba vybrat konkrétní technologie. Jistě - ale nemusíte vybrat jednu. Jestliže není cílem studenty sedřít z kůže, ale naopak nechat je skusit si živou implementaci, dejte jim volnost v tom, jaké jazyky si pro to vyberou. Nebo si myslíte, že když budu parsovat XML v Pythonu místo Javy, nebo když naprogramuju vlastní překladač v Haskellu místo Céčka, že se toho naučím méně? Naopak, podnítí to třeba studenta vyzkoušet něco úplně nového a seznámit s tím nejen sebe, ale i učitele. Dokážu si představit, že někdo udělá projekt ve Scale jen aby si ji zkusil, když mu to bude umožněno.

Přístup

Nakonec je to stejně vždy o přístupu. Někomu se nechce hledat a vypichovat principy, tak předává studentům konkrétní věci, jež jim budou za dva roky na velké hnědé. Někdo si tu práci dá (nebo ji má jednodušší, jelikož jsou principy v jeho oboru jasněji viditelné) a předá studentům pevné základy, na nichž mohou jednou vystavět velké věci, ať už budou mít v ruce jakýkoliv nástroj.

Není to tak dlouho, co jsem volal po tom, aby na VŠ byly předměty o konkrétních technologiích, jež jsou aktuální. Dnes vím, že to není možné a ani vhodné. Rozhodně ale nemohu dát plně za pravdu všem těm, kteří mě přesvědčovali, že VŠ je hlavně o principech. Souhlasím s tím, že by měla být. Bohužel však není.