Odborné články Základní vzdělávání Proč by se žáci neměli učit programovat nebo vytvářet webové stránky
Odborný článek

Proč by se žáci neměli učit programovat nebo vytvářet webové stránky

Anotace

Vytváření webových stránek je s nadsázkou řečeno tradiční disciplína, která má své místo ve výukových plánech, rekvalifikačních kurzech nebo mnoha vzdělávacích projektech. S lítostí lze ovšem konstatovat, že v mnoha ohledech zůstal obsah těchto kurzů a plánů poplatný době kolem roku 2000 a zaměřuje se v první řadě na tzv. programování webových stránek a práci s kódem.

Na rozdíl od klasického programování, jehož principy se nemění, se technologie související s vytvářením, budováním a provozem webových stránek mění stále. Základem je samozřejmě rodina standardizovaných jazyků či gramatických pravidel HTML, CSS, JavaScript, PHP. Za posledních 10-15 let ovšem došlo k bouřlivému rozvoji dalších technologií, které posunují „programování webových stránek“ z oblasti laické zábavy do oblasti úzce odborně profilované. Objevuje se tedy otázka, co z uvedené problematiky (a zda vůbec) má být předmětem výuky na základních a středních školách.

Webové aplikace

Zatímco před deseti patnácti lety začínala tvorba webových stránek tím, že autor začal psát HTML kód, dnes nainstaluje webovou aplikaci. Lze je řadit podle účelu do mnoha kategorií, pro nejširší účely se používají redakční (nebo publikační) systémy či systémy pro správu webového obsahu, např.:

Množství úkolů, které se dříve vykonávaly na lokálním počítači, dnes probíhají ve webové aplikaci. Pojem „cloud“ je jen marketingové označení pro technologická řešení, které se označují zkratkami

  • SaaS - software as a service, software jako služba;

  • PaaS - platform as a service, platforma operačního systému jako služba.

Aktivita označovaná tradičně „vytvoření webových stránek“ dnes v první řadě znamená „publikování obsahu v redakčním systému“, nikoliv „programování webových stránek“. Laicizace proběhla úspěšně, ale přesto mnoho laiků vytrvale smutní, že neumí programovat (ačkoliv to pro budování webových stránek není potřeba).

Co použít ve výuce

Berme v potaz, že se nejedná o algoritmizaci a skutečné „tvrdé“ programování. Ve velké míře jde o práci s kódem, s jeho příklady a adaptací na konkrétní situaci. Tato činnost se označuje jako kódování - ostatně hierarchie programátorů je poměrně členitá (kodér je nejníž a de facto ani programátorem není).

Má praktický smysl učit žáky programovat webové aplikace? Domnívám se, že nikoliv. Učitel informatiky nemá odbornou výbavu takového charakteru - pokud se v posledních deseti letech aktivně nepodílel na vývoji webových stránek, což předpokládat nelze. Naopak je poměrně snadné a vysoce praktické naučit žáky pracovat s redakčními systémy. Vkládat obsah (obrázky, videa), správně vytvářet odkazy (velké množství uživatelů to neumí), vymýšlet funkční nadpisy článků, ovládat redakční systém a chápat jeho funkce.

Jazyky

V uplynulé dekádě se objevily nové programovací a popisné jazyky, které přispěly k rozvoji internetu. Namátkou je to Python, Ruby nebo různá rozšíření původního HTML (XHTML, MathHTML – nejde však o programovací jazyky, nýbrž spíše jednoduchou popisnou gramatiku). Rozvíjely se také možnosti velmi důležitých nástrojů XML, CSS, JavaScript (z něj vycházející knihovna jQuery). Stranou necháváme databáze a vůbec principy ukládání a zpracovávání dat (HTML5, AJAX, API, JSON atp.).

Realita je dnes taková, že původní PHP+HTML+CSS je dnes jen jednou z možností, jak budovat webové aplikace (opět - nikoliv jen stránky). Naučit se vše není v silách jedince. Logicky se tedy každý profiluje určitým směrem. Význam HTML je dnes na tak nízké a základní úrovni, že sám o sobě nemá využití, vždy je potřeba umět ještě něco - např. alespoň PHP a JavaScript.

Co použít ve výuce

Pokud se žáci učí HTML a CSS, nemá to praktický smysl, využití této dovednosti je nulové. Kdo umí programovat ve skutečném jazyce, pak je pro něj HTML nebo CSS (pokud by se s ním náhodou minul) úkol na pár hodin.

Jako vhodný se jeví úvod do programování v jazyce PHP nebo spíše Python. Oba jazyky jsou multiplatformní, Python navíc není určen jen pro webové aplikace (je využitelný také pro lokální aplikace). Ukázalo se, že je také nejpopulárnějším jazykem pro začátečníky na amerických univerzitách. Existuje ohromné množství nástrojů, dokumentace, tutoriálů a dalších materiálů, které pomohou začít. Vzhledem k tomu, že jde o standardní programovací jazyk, lze cvičit algoritmizaci, a přitom dosahovat rychlých a viditelných výsledků (vytvářet aplikace). Navíc má v Česku velkou a přívětivou komunitu profesionálů a dostatek výukových nástrojů, např. zde: http://www.pythontutor.com.

Frameworky

Samozřejmé používání frameworků, tzn. připravených softwarových balíků, znamená rapidní vývoj celých aplikací. Pojem rapidní se chápe jako zrychlený - jsou k dispozici moduly a fragmenty kódu, které se jen skládají dohromady, často vizuálním či automatizovaným způsobem. Frameworky jsou testovány a mají množství kvalit, kterých by jednotlivec v rozumném časovém prostoru nedosáhl. Například jsou připraveny pro používání na displejích různých velikostí (hotové aplikace jsou „responzivní“), jejich kód je komplexní (využívá maxima dostupných vlastností) a validní (tzn. neobsahuje chyby vzhledem ke své specifikaci a gramatice jazyka).

Co využít ve škole

Frameworky lze s úspěchem využít při výuce vybraného programovacího jazyka. Populární je např. Django (Python). Pro PHP existuje obrovské množství frameworků, u nichž je s minimem práce možné ihned vidět výsledky; namátkou:

Podpůrné aplikace a prostředky

Technologický rozvoj se projevil také v oblasti podpůrných nástrojů. YouTube nám dalo kromě videí z druhého konce světa také platformu pro vzdělávání. Najdete zde množství návodů, a to nejen anglicky. Ostatně publikování videonávodů může být také velmi efektivním výukovým nástrojem a ve výsledku můžete pomoci kolegům - aby „všechna“ videa nebyla jen anglicky.

Důležitým nástrojem jsou kvalitní editory kódu, IDE (integrated development environment). Existuje jich nepřeberné množství a velké množství z nich je licencováno jako open source. Tedy nemusíte za jejich používání platit licenční poplatky. Obsahují funkce, které usnadňují práci s kódem - např. doplňování kódu, uzavírání závorek, nápověda parametrů, ladění chyb atp.

Vývoj a další faktory

Ještě bychom mohli hovořit o SEO, uživatelském prožitku, drátěných modelech, vlivu sociálních sítí na vytváření webových stránek a mnoha dalších faktorech, které z „programování webových stránek“ udělaly úplně jinou disciplínu. Tohle všechno už ale patří jinam, třeba do vysokou školu, do bakalářského oboru „webdesigner“.

Jak by se tedy mohlo učit vytváření webových stránek

V první řadě je důležité, aby žáci uměli publikovat obsah a dokázali pracovat s textem a redakčním systémem. Tato dovednost se zčásti překrývá s prací v textovém procesoru. Měli by chápat princip nahrávání dat a odkazování, aby pak nevkládali odkaz ke stažení ve formě C://Dokumenty/soubor.doc. Na první pohled to vše vypadá triviálně a samozřejmě, ale znám realitu trochu jinak.

Pro pokročilejší představy lze doporučit práci s vybraným frameworkem, přičemž je jedno, který to bude, protože frameworky se mění a vyvíjejí. Principy se příliš nemění, záleží spíše na vybraném jazyku (již roky mnozí tvrdí, že PHP je mrtvý) a zodpovědném přístupu – tj. např. stanovení cílů. Jako skvělý doplněk se jeví práce v projektech s využitím vhodného softwaru pro projektové řízení.

Licence

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

Autor
Mgr. Vlastimil Ott

Hodnocení uživatelů

E Kocourek
9. 9. 2014, 19:55
Článek je nabitý spornými a diskutabilními tvrzeními, ale tato dvě chci vyvrátit hned: Že prý "Význam HTML je dnes na tak nízké a základní úrovni, že sám o sobě nemá využití, vždy je potřeba umět ještě něco - např. alespoň PHP a JavaScript. (...) Pokud se žáci učí HTML a CSS, nemá to praktický smysl, využití této dovednosti je nulové." -- Využití není nulové. Pokud autor nelpí na tom, aby se za myší táhl ocas jako za kometou nebo aby se text automaticky "překládal" do deseti jazyků, webovou stránku lze napsat jenom v HTML. Ale to není to hlavní. Pokud se student chce učit tak, že si bude vytvářet svoji osobní databázi, postupně ji konstruovat, zjemňovat a plnit údaji, které v případě potřeby snadno vyhledá, jaký jazyk mu doporučíte? Já mu doporučím HTML.
A ještě "Kdo umí programovat ve skutečném jazyce, pak je pro něj HTML nebo CSS (pokud by se s ním náhodou minul) úkol na pár hodin." -- Až na terminologii (HTML je jazyk stejně "skutečný" jako třeba Python. Jde o rozdíl mezi jazykem procedurálním a popisným.) je tento výrok pravdivý. Ale co když HTML chce používat student, který ještě neumí programovat v žádném procedurálním jazyce? Proč by měl čekat? A proč by se neměl seznámit s tím, co to ty úžasné redakční systémy vlastně vytváří a co ten tajemný kód znamená?

Váš komentář

Pro vložení komentáře je nutné se nejprve přihlásit.

RVP do 2024

Článek pro obor:

Informační a komunikační technologie 2. stupeň