Informační systémy

Z Základy informatiky pro střední školy
Přejít na: navigace, hledání

Grafy · Algoritmus

Grafy · Učebnice · Algoritmus
Otazník
Zamysli se a odpověz:

Jak je možné, ...

  • že pokladna ví, kolik stojí které zboží ve vašem košíku?
  • že je v jídelně pokaždé dostatek obědů?
  • že vaše oblíbená sociální síť ukazuje každému právě to, na co se tam chodí dívat?
  • že si nikdo nekoupí lístek do kina na stejné místo jako vy, i když by třeba nakupoval ve stejný okamžik a někde jinde?
  • že stát zjistí, které děti nejsou očkované, které nechodí do školy, a kdo nezaplatil daně?
  • že knihovna ví, kde jsou právě které knihy, i když jsou jich stovky tisíc?

Pro fungování naší civilizace jsou nepostradatelné tzv. informační systémy. Setkáme se s nimi v nejrůznějších odvětvích. Záznamy, které spravují, jsou leckdy životně důležité. Přitom není vždy zřejmé, jak přesně systém se záznamy pracuje, k jakým může dojít chybám, a jak je lze napravit. Někdy dokonce není zřejmé ani to, jak ten který systém správně používat. A aby to nebylo málo, ať chcete nebo ne, sami si své vlastní drobné informační systémy vytváříte, a dál vám budou jen přibývat. I takový nákupní seznam, který mi má pomáhat efektivně nakupovat to, co potřebuju (a ne něco jiného), je takový malý informační systém.

Jak takové systémy fungují? Jak je vytvářet? To prozkoumáme v následujících kapitolách.

ikona boxu
Metodické poznámky


Informační systémy se obsahem i pojetím od ostatních kapitol této učebnice dosti liší. Zařadili jsme proto tento úvodní komentář. Základní metodická východiska zůstávají stejná (studenti sami zkoumají související jevy, s počítačem i bez něj, látka ukotvená a motivovaná konkrétním řešeným problémem, práce ve skupinách, více správných řešení úloh atd.), dále popíšeme, v čem spočívají odlišnosti.

Hned ze začátku osvětleme roli uváděných konkrétních příkladů: v učebnici se o ně opíráme a stavíme na nich průběh hodin. Mnohem lepší je ale nabídnout studentům takové, které zaujmou právě je. Pokud se učitel pustí do přípravy vlastních příkladů, měl by tady najít podporu v podobě podrobného vysvětlení, co jednotlivými aktivitami sledujeme.


Co je to informační systém (IS)? Vymezit IS lze různě. V této kapitole (v souladu s RVP) navazujeme na vedení evidencí, se kterým se studenti seznamovali na základní škole. Příkladem jsou seznamy domácích úkolů k vypracování, služby na mazání tabule, nákupní seznamy, soupisy skladových zásob. Některé tedy mají jediného uživatele, některé slouží třídě, některé pomáhají organizovat malou firmu. Některé se vejdou na list papíru bez přesnější struktury, některé mají formu tabulky, některé potřebují tabulek několik. S tabulkami zde míříme k pojetí databázovému, kde řádky jednotným způsobem zachycují informace o nějakých objektech (např. o konkrétním výtisku v knihovně). Nemíříme k tabulkám jako v tabulkových kalkulátorech, kde do jednotlivých buněk ukládáme hodnoty k počítání.

Ve složitějších evidencích pak už můžeme rozeznat databáze a plnohodnotné informační systémy:

  • s daty ve stanovené struktuře,
  • s technickým řešením pro jejich zpracování,
  • se stanovením procesů a pravidel,
  • s uživatelským rozhraním a
  • s uživateli v různých rolích (a s různými právy a zodpovědnostmi).

Ve výuce pracujeme jak s jednoduchými „nástěnkovými“ systémy, tak i s komplexnějšími systémy na nějakém digitálním zařízení. Zabýváme se všemi složkami systému, neomezujeme např. jen na práci s tabulkami.


Cíle výuky

Pojetí IS v RVP i v této učebnici sleduje několik cílů. Některé přímo odpovídají některému tradičnímu tématu informatiky (zejm. v souvislosti s tabulkami a databázemi). K nim existuje dostatek vzdělávacích materiálů, proto zde nejdeme příliš do hloubky.

Další skupinu cílů by šlo stejně dobře řadit i do oblasti algoritmizace a programování nebo i k dalším oblastem, kde žáci něco užitečného tvoří. Tam jsme se ale rozhodli klást důraz na něco jiného. Na praktičtější stránky vývoje technických řešení se tedy můžeme soustředit zde, v oblasti IS. Proto sem řadíme méně ryze cvičných úloh typu kreslení spirál nebo hledání prvočísel a zdejší příklady vedou poměrně přímočaře k reálné využitelnosti. To je zároveň praktické: studenti budou v životě častěji vytvářet právě spíše různé evidence a informační systémy, než programy. Ona hranice přitom není ostrá, protože čím specifičtější potřeby budou studenti mít, tím spíše budou programovat. Základní prvky automatizace lze ale implementovat bez psaní zdrojového kódu.

Oproti obvyklým programovacím úlohám se tedy informační systémy ve výuce liší mj. následujícím:

  • jsou konkrétně užitečné konkrétním lidem (víc, než animace ve Scratchi),
  • jsou dotaženy k praktické použitelnosti (a ideálně i ke skutečnému použití),
  • řešený úkol je typicky dlouhodobější nebo opakovaný, nikoliv jednorázový (tzn. je nutno uvažovat i otázky údržby a jiné druhy komplikací),
  • IS se opírají o předpřipravená částečná řešení (tabulky a typy dat v dané aplikaci apod.), čímž si usnadňujeme vývoj, ale taky omezujeme možnosti.

Zaměření na využitelnost a uživatele do výuky vnáší otázky designu a použitelnosti, které se v souvislosti s programováním často pomíjí. IS jsou snazší, tak je na takové věci více prostoru. Stejně tak zde máme více prostoru k soustředění na samotnou metodu vývoje, na postup jednotlivých fází od identifikace problému k otestovanému a odladěnému řešení. Kromě tvorby se pak i v této oblasti zabýváme porovnáváním a hodnocením IS.

Průběh výuky

  1. Jako motivační aktivitu zařazujeme hru, v níž studenti simulují firmu. Její oddělení musí spolupracovat, chybí jim ale potřebné informační systémy. Ty proto studenti vytváří improvizovaně v průběhu hry. Kromě toho se lze zaměřit na mnoho dalších motivů, např. způsoby zpracování nejistoty, rozdělení práce ve skupině, vyjednávání atp.
  2. Po této zkušenosti žáci zkoumají a analyzují velmi jednoduché příklady (např. ceduli pro organizaci úklidu na chodbě, nákupní seznam). Vyjasňují se společné znaky různých IS.
  3. Seznámíme se s aplikací Coda.io, s níž budeme po zbytek kapitoly pracovat.
  4. Následně se podíváme na příklady, u kterých je výhodné propojit několik tabulek. Nebo naopak, kdy je jednu tabulku lepší rozdělit na několik provázaných. Využijeme k tomu aplikaci, kde se rovnou seznámíme také s filtrováním a podobnými funkcemi.
  5. Další aktivitou je analýza již hotového většího systému (školní IS, knihovna, objednávání obědů atd.). Se zkušenostmi z předchozích hodin žáci odhadují, jak by systém mohl fungovat uvnitř, a proč se vlastně chová právě tak, jak se chová.
  6. Jednu lekci vyhrazujeme zaměření na uživatele, kteří se systémy pracují. Žáci se seznamují s konceptem použitelnosti (usability), s nutností uživatelského testování, a všímají si prvků, které použitelnost zvyšují (např. automatické filtrování zrovna nepotřebných dat).
  7. V návaznosti na předchozí se žáci seznámí s kompletním postupem vývoje IS po jednotlivých fázích, od identifikace problému až k závěrečnému odladění.
  8. Na závěr žáci zpracovávají vlastní projekt. Nemusí být rozsáhlý, ale měl by ukázat, co se naučili - včetně sledování vývojových fází, dostatečného testování apod.
ikona boxu
Alternativní aplikace

Ideální je nechat žáky prozkoumat a používat takových aplikací několik. Učí se tím mimo jiné aplikace porovnávat a hodnotit, která je lepší pro jaký účel. S bohatší aplikační výbavou také můžeme řešit širší škálu problémů a nevybírat je pouze podle toho, co jedna konkrétní aplikace umí.

Codu jsme vybrali jako nejlepší volbu pro situaci, kdy je čas věnovat se pouze jedné. V případě mnoha škol bude, např. s ohledem na obor, volba jiná. Je možné navázat na pokročilejší platformu (MS Access, klasické tabulky s makry či skripty, vývoj vlastních webových aplikací apod.) nebo v nich rovnou začít.

Práce s aplikací Coda.io

Požadavek na přímou praktickou využitelnost nás vede (pro tuto učebnici poněkud nezvykle) k použití konkrétní specializované aplikace. Umožní seznámení s některými koncepty, na nichž databáze a IS stojí, ale bez hlubšího technického pozadí. Ze stejné logiky jako v ostatních školních předmětech tedy i zde přijmeme zodpovědnost za rozvoj odpovídajících částí digitální gramotnosti. Zejména se jedná o schopnost poradit si s novou aplikací. Vycházíme přitom z toho, že žáci nebudou používat aplikace (a verze) známé ze školy. Musí být připraveni se popasovat s novinkami. A jdeme příkladem - nečeká se, že by měl vyučující na všechno („Pančelko, jde udělat blikající řádek?“) odpověď. Čeká se, že ji bude umět najít (nebo si poradit jinak).

Běžné tabulkové editory jsou poměrně neohrabané v propojování tabulek. „Základní jednotkou“ jsou buňky, my ale potřebujeme pracovat s celými záznamy (podrobněji zde). To pak má mnoho dalších důsledků:

  • Odkazování na data souřadnicemi, nikoliv jménem.
  • Odlišná sémantika vzorců (a pokud potřebujeme pracovat „databázově“, pomůže mít odpovídající jazyk).
  • Odlišné chování vzorců (nejsou pro jednotlivé buňky, ale vynuceně pro celé sloupce, takže se tak snadno nerozbijí běžnou manipulací se sloupci či řádky a odpadá celé téma absolutních a relativních odkazů).
  • Můžeme stejná data zobrazit různými způsoby na různých místech současně.

Mezi další výhody Cody a podobných aplikací patří:

  • Bohatší a jednodušší možnost automatizace základních úkonů.
  • V samotných buňkách lze pracovat s rozšířenější paletou typů (včetně formátovaného textu, obrázků, ovládacích prvků).
  • Přirozenější prolínání textu (nadpisů, instrukcí) s tabulkovými daty a dalšími prvky, možnost použití vzorců mimo tabulky, ve volném textu.

Velmi často uživatelé sahají po tabulkových editorech, protože „potřebují tabulky“. Přitom s nimi nechtějí počítat, potřebují vést evidence. V takových situacích může být vhodnější použít Codu nebo něco podobného.

Další podrobnosti uvádíme i v příslušné kapitole.


Návaznosti na ostatní oblasti školní informatiky

IS nutně pracuje s nějakým modelem skutečnosti, včetně souvislostí - hledání vhodné úrovně abstrakce, problémy spojené s rozporem mezi modelem a skutečností, hledání vhodné reprezentace modelu (tabulky nejsou univerálním řešením čehokoliv!). Nejzřetelněji je modelování patrné v návrhu struktury dat a procesů jejich zpracování. Zejména když jde o evidenci konkrétních objektů (půjčování knížek v knihovně).

Popisy procesů zpracování dat, zejm. těch pro uživatele, jsou předstupněm algoritmizace. Nejen protože „je to taky recept“, ale i v užším smyslu - ty postupy nemají dávat uživatelům volnost dvojího výkladu nebo samostatného tvůrčího rozhodování. Každý uživatel by měl v dané situaci postupovat podle návodu obdobně a dojít ke stejnému výsledku. Kvalitu procesů v IS i algoritmů hodnotíme obdobně.

Tak jako všude jinde, i zde se snažíme o efektivitu výsledku, v širokém smyslu. Jistě nás zajímá, kolik databáze zabere místa a jestli její návrh nezpůsobuje zbytečně dlouhé časy vyhledávání. Stejně tak nás ale zajímá, jestli rozhraní nepřispívá k chybám, jestli uživatelé správně rozumí zobrazeným informacím, v konečném důsledku tedy jestli IS pomáhá efektivně řešit daný problém. Pod kapotou aplikací se studenti setkají s koncepty, které využijí i v programování: datové typy, vzorce (a v nich závorky, logické operátory, tečkové notace, pojmenovaná data, práce se seznamy…).

Z těchto důvodů doporučujeme řadit IS před pokročilejší algoritmizaci a programování (zejm. v textovém jazyce). Hodně si tak studenti osahají předem, v přirozeném a užitečném kontextu, v poměrně „bezpečném“ prostředí (méně možností, tedy i méně možností udělat chybu). O získané zkušenosti se pak lze opírat. Plus nám to dá řadu příkladů ke zkoušení, studenti se mohou ptát, jak se vlastně ta která věc z databází dělá „ve skutečnosti“.


Kapitoly

  1. Úvodní hra - korporace metodické poznámky, plán hodiny
  2. První seznámení - úklid chodby metodické poznámky, plán hodiny pracovní list
  3. Aplikace Coda.io metodické poznámky, plán hodiny pracovní list
  4. Použitelnost metodické poznámky, plán hodiny
  5. Vývoj informačního systému (jednotlivé fáze) metodické poznámky, plán hodiny
  6. Závěrečný projekt (na několik týdnů) metodické poznámky, plán hodiny




Další zdroje