Výuka algoritmizace oboru Informatika v prvním ročníku ČZU Jiří Vaníček, Josef Pavlíček Česká zemědělská univerzita v Praze, Provozně ekonomická fakulta, Katedra informačního inženýrství
Úvod V prvním ročníku oboru Informatika na ČZU vyučuje katedra Informačního inženýrství předmět Výpočetní systémy. Předmět je dvousemestrový, v zimním semestru ukončen zápočtem. Souhrnná zkouška je až po druhém semestru. Složením zkoušky by student měl dokázat, že dostatečně zvládl základy Informatiky a je připraven na výuku předmětů zaměřených podrobněji na jednotlivá témata. Tento předmět je v prvém roce bakalářského studia oboru informatika a systémové inženýrství jediným předmětem, který je zaměřen přímo na výuku informatiky
Cíl výuky Obecně lze rozlišit tři možné cíle učení a jím odpovídající tři úrovně výuky [2]. 1. Vytvořit u studenta návyky pro správné, účinné a spolehlivé vykonávání určitých činností. U výuky informatiky například obsluhovat účelně správně a hbitě určitý produkt. Takový výcvik obvykle nárokují firmy pro to, aby mohly ihned po nástupu uplatnit absolventy školy při řešení svých úkolů. 2. Předat studentovi znalosti fakt a pravidel, která adekvátně odrážejí pracovní i mimopracovní oblasti světa kolem nás, včetně znalostí jak další znalosti vyhledávat a hodnotit. V našem případě tedy dát studentovi přehled o základech na kterých informatika a systémové inženýrství spočívají a připravit ho na podrobnější studium jednotlivých speciálních oblastí. 3. Kultivovat myšlení studenta směrem k nalézání dalších vztahů a souvislostí, vytváření systému v dané oblasti, k analytickému, syntetickému a tvůrčímu, ale přitom kritickému přístupu k znalostem a problémům, včetně hledání nových přístupů. Zkušenosti autorů příspěvku vedou jednoznačně k závěru, že každý z těchto cílů vyžaduje výrazně odlišné přístupy pedagoga.
Rozhodli jsme se, že úvodní kurs pro informatiky a systémové inženýry zaměříme především na dosažení cílů číslo 2 a číslo 3. Jsme přesvědčeni, že to má být úkolem vysokých škol univerzitního typu, navzdory tomu, že řada „odběratelů“ našich absolventů s tímto názorem nesouhlasí a dala by přednost „hotovým“ praktikům v té specializované oblasti, kterou právě teď potřebují krátkodobě pokrýt. Pro tento účel není ani tak důležité „co“ se učí, ale mnohem důležitější je „jak“ se to učí. Není zdaleka nezbytné, aby se výklad rok od roku měnil spolu se změnami parametrů výpočetních systémů. Podstatnější je zaměřit se na podstatné věci, které mají trvalou, nadčasovou platnost. Z tohoto pohledu lze i dnes považovat například knížku [1] za vynikající publikaci pro pochopení principů práce výpočetních systémů, včetně těch současných.
Vstupní předpoklady našich studentů Studenti prvního ročníku jsou absolventi široké skupiny středních škol od specializovaně zaměřených „průmyslovek“ a „obchodních akademií“ až po obecně orientovaná gymnázia. V prvním ročníku se tudíž cvičící lektor potýká nejen s problémem vysvětlení a dostatečného procvičení obsahu předmětu, ale také s problémem nejednotné znalostní úrovně studentů. Studenti obecně mají problém s elementární matematikou. Pro mnohé z nich je např. pojem matice, či diagonála matice cizí. Základní operace jako jsou sčítání a násobení studenti provádí zcela automaticky a bezmyšlenkovitě. Většině zcela chybí abstraktní myšlení, schopnost odlišit definici od tvrzení. Jsou často zvyklí pouze memorovat a o porozumění se často ani nesnaží. Někteří nemají ani přibližnou představu o velikosti čísel, spojenou s nějakým údajem z běžného života. Často dělá potíže i látka ze základní školy, například procenta. Pro základní pochopení funkce počítače však není třeba matic ani složité matematiky. Počítač je stroj zpracovávající postupně triviální instrukce. Každá operace se dá rozložit do konečného množství zcela triviálních kroků. Není tedy principielně důvod tomu jak počítač pracuje nerozumět. Přes to je pochopení funkce počítače pro řadu studentů tvrdým oříškem. Problémy s porozuměním funkce počítače a principům informatiky nespočívá patrně v tom, že se matematiky na středních školách učí málo, ale v tom, že se učí špatně a nedůsledně. Pro velký rozsah látky se učitelé často spokojí s tím, že student „zná“ poměrně hodně látky povrchně a bez porozumění. Student často používá slov, pod kterými si nic nepředstavuje a vlastně vůbec neví co znamenají. Řada studentů se domnívá, že s tímto přístupem k učení vystačí i na vysoké škole univerzitního typu a je překvapena, je-li požadováno něco jiného.
Studentské znalosti a schopnosti jsou různé Protože studenti mají různé úrovně matematických a logických znalostí ze svých škol, je třeba vzít ohled na tento fakt. Kromě toho je třeba brát ohled na skutečnost, že někteří studenti měli na střední škole předmět základy informatiky s velice různým obsahem a někteří tento předmět neměli vůbec.V prvních hodinách předmětu Výpočetní systémy vysvětlujeme co je to bit, Byte, jaké existují různé číselné soustavy. Poté vysvětlíme jak počítač pracuje a v obecné poloze probíráme jednotlivé vrstvy rozhraní, na kterých se může člověk s výpočetním systémem setkat. Od strojového kódu, přes základy algoritmizace a vyjádření algoritmů v různých grafických prostředcích i principy programovacích jazyků různé úrovně. Dále jsou probírány obecné zásady funkce operačních systémů až po principy na kterých je vytvářen a pracuje aplikační software. Letní semestr, který absolvují pouze informatici, nikoliv systémoví inženýři je pak zaměřen spíše na hardwarovou architekturu výpočetních systémů s kterou se již studenti informatiky v dalších semestrech bakalářského programu nesetkávají. V prvých cvičeních se snažíme především srovnat vstupní úrovně studentů tak, aby ti, co nemají dostatečné základy mohli rychle dohnat ty zkušenější. To ovšem předpokládá u studentů, kteří základy postrádají, zvýšenou píli a pracovní nasazení na počátku vysokoškolského studia, kdy se studenti na škole teprve orientují. V některých případech je to pro ně obtížné.
V zimním semestru roku 2007 jsme udělali následující pokus: Dvěma kroužkům (44 studentům), byly vždy na začátku každé hodiny předloženy jednoduché úlohy, které měly studenti samostatně vypracovat. Úlohy obsahovaly varianty příkladů cvičených na předchozích cvičení a teoretickou otázku z látky, která byla probírána na přednášce.
Výsledky můžeme shrnout následovně: 1. Studenti dosahovali mnohem lepších výsledků u odpovědí, které byly procvičovány na předchozím cvičení než v případě teoretických otázek a přednášky. Důvod je patrně následující: Účast na přednáškách byla zhruba 30%. Jsou sice teoreticky povinné, ale kontrola účasti téměř tří set studentů na přednášce je zcela nereálná. Vše, co je na přednášce promítáno mají studenti již před přednáškou a po celý rok přístupné, spolu s dalšími materiály, na systému pro podporu studia Moodle. Vše lze též nalézt v tištěných skriptech. To spolu s faktem, že je zkouška čeká až v druhém semestru
u studentů vzbuzuje pocit, že chodit na přednášku není třeba. Průběžně látku nestudují. Před zkouškou jim pak výklad souvislostí z přednášky chybí a na zkoušku se z materiálu, který mají k dispozici učí jen „hesla“, jejichž význam neumí vysvětlit. Je vidět, že komfortní podpora studia má nejen své světlé, ale i stinné stránky. 2. Obecná úroveň studentů se po třetím cvičení téměř srovnala. Zatím co během prvních dvou cvičení byla probírána elementární látka, po třetím vyučujícím týdnu se studenti již pravděpodobně dostali nad úroveň jejich znalostí získaných na středních školách. Výsledky se tak srovnaly a pilní studenti z „méně kvalitních“ škol většinou dohnali jejich zkušenější kolegy. 3. Počínaje čtvrtým cvičením studenti začali dostávat za úkol řešit také úlohy, které vyžadují představivost. Nešlo již pouze o úkoly typu převeďte z jedné soustavy do jiné nějaké číslo (fakticky úlohy typu „použijte vzorec ze strany 29 příslušných skript“), ale o úlohy, kdy je třeba zadání analyzovat. Tedy vyžadující schopnost si představit, co je obsahem zadání. Pak, na základě vlastních znalostí a zkušeností navrhnout řešení. i. Více jak polovina studentů měla s „alogritmickými úlohami“ problémy. ii. Úlohy, jejichž řešení vyžaduje využití jednoduchého vzorce, respektive řešení je dostupné buď ve skriptech nebo na internetu, bylo schopno řešit zhruba 70 % studentů.
4. U otázek, jejichž řešení vyžaduje jistou dávku abstraktního myšlení – návrhy algoritmů, se odpovědi rozdělily fakticky na dvě skupiny: a. Vývojové diagramy – většinou kreslili a preferovali studenti, kteří měli předchozí zkušenosti z programování. Někdy je obtížné tyto studenty zbavit špatných návyků. b. Strukturogramy – většinou kreslili studenti, kteří se s algoritmizací setkali až v naší výuce. Zde je totiž jako nástroj pro tvorbu algoritmů preferujeme. c. Paradoxně, žádný ze studentů nepreferoval plošné struktorogramy (ač na přednášce byly též preferovány a též jsme je probírali – studenti uváděli, že je považují za zastaralé). Zhruba v polovině semestru byla studentům na přednáškách předložena znalostní prověrka. Výsledky prověrky byly alarmující. Úlohy, které vyžadovaly vlastní úsudek ( byť minimální – nešlo je memorovat) studenti řešili s velkými obtížemi.
Prověrka byla procvičena na následujícím cvičení a ukázalo se, že s „vedením“ a pomocí je více jak polovina studentů schopna téměř všechny otázky vyřešit, samostatně však nikoliv. Tento poznatek ukázal, jak je třeba klást důraz na procvičování a na cvičeních vést studenty k aktivní spolupráci a fakticky k aktivnímu využití získaných znalostí. Součástí získání zápočtu z předmětu Výpočetní systémy bylo i připravit jednoduchou „semestrální práci“. Cvičící vypsal zhruba deset témat z různých oblastí Informatiky. I zde byly výsledky zarážející. 1. Ani jediná práce z 44 nebyla odevzdána, aby ji cvičící nemusel vracet k opravě. 2. Víc jak 50 % prací byla doslova okopírováno z internetu a bez studu odevzdáno jako samostatná práce. 3. Více jak polovina prací byla vrácena i po druhém pokusu o odevzdání. 4. Za vynikající bylo možno považovat 2 práce (jak obsahově, tak úpravou). 5. Dva studenti se přiznali, že jejich práce nebyla samostatná a kompletně ji opsali ze sešitu, který měli k dispozici ze střední školy. Přiznání v nich nevyvolalo pocit studu, ale více méně pocit uspokojení, že se jim podařilo cvičícího oklamat.
Změna myšlení studentů Jak výsledky ukazují, studenti jsou ze středních škol často zformováni na memorování obecně platných faktů. Dovedou provádět mechanické operace. Něco opsat, respektive poskládat z internetu, je jejich přirozeností. Požaduje-li učitel samostatnou práci, pak pod pojmem „samostatný“ pravděpodobně studenti vnímají „osamoceně nalézt“ či „osamoceně opsat“. Tedy, bez spolupráce spolužáka. Samostatné formulace problému a jeho popisu studenti spíše schopni nebyli. Jsou-li studenti přinuceni navrhnout samostatný postup pro řešení nějakého problému, postupují z valné většiny zcela chaoticky. Nedokáží navrhnout plán postupu a dodržovat jej. Tvrdí, že to na nich nikdo ve škole nikdy nepožadoval. Hledají nějaký „oficiálně posvěcený“ postup a nevadí jim, že mu vůbec nerozumí. Za „oficiální“ považují často cokoliv, co naleznou na Internetu. Domníváme se tudíž, že bychom měli vést studenty k tomu, že většina operací prováděných v jejich životě je pouze sekvence dílčích úkonů – jako v počítači instrukcí. To hlavní co je potřeba, je naučit se správně navrhnout postup a ten dodržet, nebo jej v nějakých cyklech upřesňovat, až dosáhneme stanoveného cíle. Tedy učit studenty přistupovat k řešenému problému analyticky: •
nejprve problém ujasnit a pojmenovat,
•
pak sepsat potřebné „vstupy“ k jeho řešení,
•
posléze navrhnout postup řešení,
•
a otestovat zda postup vede k správnému výsledku.
Je však třeba zdůraznit, že bez potřebných znalostí, které je možné získat např. na přednáškách, není tento postup možný. Pouze z vody polévku vařit nelze, i když příslušné postupy kuchařské umění připomínají a z hrnce se dokonce páří.
Závěr Během několika let jsme učili studenty nerůznějších oborů a to jak studenty české, tak i zahraniční. Ti studenti kteří během studia byli někde zaměstnáni byli po většinou schopni mnohem lépe adaptovat své znalosti za účelem řešení předloženého úkolu. U těchto lidí se projevoval analytický způsob uvažování, který je efektivnější i při studiu informatiky, než přístup učení se nazpaměť. Velký problém je problém morálních hodnot studentů. Víme, že vzorek o kterém hovoříme, je malý a statisticky bezvýznamný. Ale pokud více jak polovina našich testovaných studentů považuje podvod za společensky přijatelný způsob získání zkoušky či zápočtu, a často poukazují i na to jak to „těm okolo“ prochází, jak je máme poctivě připravit pro budoucí život? Možná že, když nechceme být tvrdí a „podvodníky“ ze studia nechat vyhodit, snažme se jim alespoň ukázat, že u nás s tímto přístupem neuspějí. Tato cesta je obtížná, ale někteří bývalí „podvodníci“ si podle našich zkušeností svůj prohřešek uvědomili a možná se jednou zapojí do výuky a budou v odstraňování tohoto nešvaru pomáhat.
Literatura: [1] Sokol, J.: Jak počítá počítač, SNTL, Praha, 1977 [2] Vaníček J.: Tři cíle učení, metody, prostředky a nástroje pro jejich dosažení, Sborník mezinárodní konference Agrární perspektivy, XV, ČZU – PEF, Praha, 2006, s. 347 - 353 Tento příspěvek byl zpracován v rámci řešení výzkumného záměru Ministerstva školství mládeže a tělovýchovy, MSM6046070904 - Informační a znalostní podpora strategického řízení