Inovace úvodních předmětů matematiky a programování za účelem zvýšení úspěšnosti ve studiu

Návrh projektu v IP 2016, okruh A1 Kvalitní vzdělávací činnost, části A1.1 a A1.2


Vybrané výstupy projektu

Využití tutorů

Tutoři jsou zkušení studenti, kteří jsou po celý semestr k dispozici ostatním studentům, aby s nimi konzultovali a procvičovali látku ve vybraných předmětech. Tento projekt zahrnuje využití tutorů v letním semestru akademického roku 2015/2016 a v zimním semestru akademického roku 2016/2017. Tutoři poskytovali své služby standardně ve vymezených termínech (dnech, časech a místnostech), individuálně (po dohodě, e-mailem, po Skype apod.) a nově také formou chatu na portálu Moodle.

Využití tutorů na katedře matematiky

Tutoři byli k dispozici k následujícím předmětům:

  • KMA/P113 Repetitorium matematiky (2 tutoři průměrně 2 hodiny týdně)
  • KMA/P135 resp. P136 Úvod do matematiky (1 tutorka průměrně 3 hodiny týdně)
  • KMA/P132 Úvod do infinitesimálního počtu (1 tutorka průměrně 1 hodinu týdně)
  • KMA/P231 Lineární algebra a geometrie (1 tutorka průměrně 1 hodinu týdně)
  • KMA/P232 Vybrané partie z matematiky (3 tutoři průměrně 4 hodiny týdně)
Využití tutorů na katedře informatiky

V letním semestru 2015/2016 byli k dispozici tři tutoři celkem minimálně 6 hodin týdně ve vymezených termínech pro předměty KI/PGL2 Programování II a KI/DSA Algoritmy a datové struktury. V zimním semestru 2016/2017 pak bylo k dispozici 5 nových tutorů celkem minimálně 6 hodin týdně ve vymezených termínech předmět KI/PGL1 Programování I.

Výukové materiály

V rámci přípravy výukových materiálů předmětů programování byl navržen nástroj pro vyznačování syntaxe zdrojových kódů. Vstupem aplikace jsou anotované zdrojové kódy, výstupem kód pro typografický systém LaTeX s vizuálně orientovaným značkováním, které lze převést do grafické podoby s vyznačením syntakticky i sémanticky významných míst.

Na rozdíl od existujících nástrojů se vkládají úseky skutečného (tj. přeložitelného) kódu, což snižuje pravděpodobnost překlepů a nechtěných deformací kódu. Nástroj také podporuje prostředky pro vzájemné provázání citovaného kódu s jeho popisem (řádkové odkazy, návěští apod.)

Použitelnost nástroje v praxi byla ověřena jeho použitím připravovaném glosáři základních termínů v oblasti programovacích jazyků (s optimalizací pro zobrazení na čtečkách elektronických knih).

Přílohy

V rámci předmětu KI/0187 Praktikum programování a algoritmizace byly studenty vytvořeny materiály zaměřené na vizualizaci některých třídících a vyhledávacích algoritmů. Materiály obsahují jak jednoduchá videa, kde jsou představeny principy těchto algoritmů, tak i doplňkové zdrojové kódy, v nichž je ukázán i zápis těchto algoritmů v různých programovacích jazycích.

V rámci přípravy na výuku předmětu KI/DSA Algoritmy a datové struktury vznikly názorné prezentace zaměřené na vizualizaci některých vybraných stromových struktur. Tyto materiály obsahují soubory ve formátu pdf, ve kterých je vysvětlen základní princip vytváření a odstraňování jednotlivých stromových struktur, které se využívají pro rychlé vyhledávání informací, a to především v databázových systémech.

K předmětu KMA/P113 Repetitorium matematiky byly do pomocného učebního textu se souborem testů doplněny výsledky.

K předmětu KMA/P135 resp. P136 Úvod do matematiky byly vytvořeny soubory typových úloh (po jednotlivých týdnech cvičení) s výsledky.

K předmětu KMA/P204 resp. P227 Teorie grafů byla vytvořena sbírka úloh.

K předmětu KMA/P231 Lineární algebra a geometrie byly připraveny následující materiály, které jsou po přihlášení rovněž k dispozici na portálu Moodle zde. Celý kurz je rozdělen do tematických celků, které jsou dále děleny na dílčí kapitoly, které téměř odpovídají jednotlivým přednáškám v průběhu semestru.

Přípravný kurz matematiky 2016

Na přípravný kurz matematiky se přihlásilo 32 studentů, kteří byli rozděleni na dvě výukové skupiny. Během čtyř dnů, kdy kurz probíhal, studenti psali a rozebírali vzorové testy k předmětu Repetitorium matematiky. Z přihlášených studentů jich 14 splnilo zápočet již v úvodní blokové výuce, dalších 13 získalo zápočet během výuky v semestru. 5 jich bylo neúspěšných (1 nesplnil zápočet a 4 zanechali studia).

Vysoká úspěšnost absolventů Přípravného kurzu matematiky v předmětu Repetitorium matematiky (27 z 32) je jistě zapříčiněna tím, jací studenti se na tuto akci přihlašují (mají zájem o studium).

Využití vizualizačních nástrojů při výuce programování

Studenti bez výrazné předchozí zkušenosti s programováním obvykle mají problém jak s pochopením algoritmů, tak i s jejich vlastním zápisem v daném programovacím jazyce, syntaxí a sémantikou daného jazyka. Jako vhodné se proto jeví použití vizualizačních nástrojů ukazujících různé obecné programovací vzory, tok daného kódu, případně použití pseudokódu. Standardní nástroje běžně dostupné v námi používaném Visual Studiu, jako je např. Debugger či generátor třídních diagramů, jsou spíše vhodné pro pokročilejší programátory než pro studenty začínající s programováním.

Z tohoto důvodu byl pořízen nástroj Code Rocket, který je jako modul začleněn do námi používaného Visual Studia. Nástroj umožňuje vyučujícímu na cvičeních vizualizovat různé části programu a implementované algoritmy jak pomocí diagramů, tak i pomocí pseudokódu. Navíc je možné pomocí tohoto nástroje vyvíjet elementární aplikace i vizuálně a nechat si vlastní kód v daném programovacím jazyce generovat.

Využití přenosné prezentační techniky

Koncem roku 2016 byly pořízeny přenosný dataprojektor a přenosný vizualizér. Oba prezentační nástroje by měly primárně sloužit přímo ve výuce. I z tohoto důvodu byl nakonec pořízen vizualizér namísto tabletu, který byl uveden v projektovém záměru. Grafický tablet totiž neumožňuje interaktivní vytváření a prezentaci grafických výstupů (schémat, diagramů) přímo během výuky. Vizualizér navíc není omezen na prezentaci 2D materiálů.

Interaktivní využití ovlivnilo i výběr dataprojektoru. Pořízen byl proto dataprojektor s moderní LED technologií, která výrazně snižuje hmotnost dataprojektoru při výrazně vyšší životnosti. Přenosný dataprojektor tak lze operativně využívat pro prezentaci v místnostech, kde není stabilně k dispozici dataprojektor, resp. k dodatečné projekci v místnostech s audiovizuální technikou (prezentovat lze i bez propojení s počítačem). Lze tak například prezentovat zároveň výukový materiál a průběžně vytvářený zdrojový kód.

Analýza příčin neúspěšnosti ve studiu matematiky

Tato analýza je zaměřena na příčiny neúspěšnosti plnění zápočtu u předmětů KMA/P135 a KMA/P136 Úvod do matematiky, která je poměrně vysoká (více než 60 %). Jednou z příčin jsou jistě rozdílné a nedostatečné znalosti studentů ze středoškolské matematiky, na které se navazuje. Opakování středoškolské matematiky se věnuje předmět KMA/P113 Repetitorium matematiky, v němž si mají studenti potřebnou látku připomenout. Tento předmět však probíhá souběžně s předmětem Úvod do matematiky a jeho úspěšnost je zhruba 63 %.

Za neúspěšností tohoto předmětu však stojí také fakt, že studenti na výuku vůbec nedochází nebo přestanou docházet v průběhu semestru (takových je 38,5 %). Studentů, kteří nesplní zápočet, je tak sice celkově 60,4 %, ale ze studentů, kteří se výuky účastnili pravidelně a splnili docházku, neuspělo jen 35,5 %.

Analýza příčin neúspěšnosti ve studiu programování

V první fázi projektu bylo provedeno statistické šetření výuky programovacích jazyků na středních školách z pohledu studentů našeho prvního ročníku (s využitím elektronického zpracování programem sdaps). Šetření ukázalo velké rozdíly mezi školami s informatickým zaměřením (9 respondentů) a školami ostatními (28 respondentů).

Výuka na informatických školách má rozsah vyšší než 40 hodin (jen 11 % s rozsahem 20-40 hodin) a studenti se seznámí s téměř všemi druhy vytvářených programů (včetně GUI a interaktivních webových služeb: podíl vyšší než 67 %). Studenti také relativně často programovali i mimo výuku (77 %) a seznámili se i s vyspělejšími partiemi, které tvoří základ výuky v 2. semestru (Programování II, Algoritmy a datové struktury).

V případě studentů jiných škol je situace výrazně horší (přestože většina studentů tj. 57 % absolvovala gymnázia). Programování se na těchto školách vůbec nevyučuje resp. jen ve velmi malém rozsahu (do 40 hodin, 22 %). Pokud se vyučuje, tak se často využívá relativně zastaralý Pascal (cca 1/3), a i v případě moderních OOP jazyků (C#, Java) je výuka omezena na jejich procedurální část (ve více než ve 2/3 případů!). Poněkud lepší je jen znalost HTML (cca 68 %, u odborných škol je však 100 %).

Základním problémem úvodní výuky programování tak stále zůstávají velké rozdíly mezi studenty včetně velkého počtu studentů, kteří nemají s programováním žádné zkušenosti (cca 50 %).

Určitou výhodou je relativně dobrá pozice jazyka C# (základní programovací jazyk našeho bakalářského studia), se kterým se seznámilo cca 22 % studentů (je to více než polovina studentů s dostatečnou výukou programování, pokud zohledníme studenty, kteří se seznámili s více jazyky).

Přílohy