Warning
This page is located in archive.

Rok 2013 Shrnutí, postřehy, anketa, plány

[1] Tématická náplň a rozsah předmětu
Témata předmětu jsou už druhým rokem stabilizovaná. Jsme si vědomi toho, že jeden semestr s hodinovou dotací 2+2 a s 6-i kreditovým ohodnocením je dosti nedostečnou základnou pro kurs, který chce probírat důležité algoritmy přesahující elementární bakalářskou úroveň a zároveň chce vyžadovat od posluchačů efektivní implementaci těchto algoritmů a navíc k tomu chce procvičovat nezbytné techniky praktické i teoretické.

Kurs PAL je jedním z hlavních kurzů na počátku magisterského studia OI a nastupují do něj posluchači s velmi rozdílnou odbornou úrovní. Podle našich zkušeností jeden semestr nestačí zejména méně disponovaným posluchačům na potřebné doplnění odborného profilu. Budeme během LS 20124 diskutovat s Radou OI, zda a v jakém časovém horizontu by bylo možné uvažovat o rozšíření hodinové/kreditové dotace PAL.

[2] Posluchači
Ve velké většině přichazejí do PAL posluchači nedostatečně odborně vybaveni pro magisterské studium. Také si v mnoha případech tuto skutečnost hned neuvědomují a někdy ji neodhalí ani po absolvovaní nebo častěji selhání v PAL. Tento nedostatek je o to smutnější, že naopak leckteří z nich jsou zdatní a pracovití, látku považují za zajímavou, a rádi by ji dobře ovládli. Malá zkušenost s programováním vůbec, mizivá matematická kompetence a nevypěstované návyky exaktního uvažování pak ale pro posluchače právem představují zásadní překážky, které lze velmi těžko překonat během jediného i jinak náročného semestru. Menší část posluchačů má přinejmenším programovací předpoklady relativně dobré, mají se při setkání s požadavky PAL „od čeho odpíchnout“. Kontrast s těmi, kteří tento předpoklad nemají, je veliký a nevíme o způsobu, jak strukturovat předmět, aby se dokázal užitečně věnovat zároveň oběma těmto skupinám (a také menším přechodovým skupinám mezi nimi).

[3] Semestr - cvičení
Do cvičení během semestru jsme zařadili prakticky výhradně zkouškové otázky z předchozích let, s úmyslem připravit posluchače co nejlépe právě na zkoušku. Ukazuje se ale, že tuto strategii by bylo třeba doplnit nějakou další a asi detailnější nebo obsáhlejší formou procvičování. Způsob, jakým nakonec posluchači řešili úlohy na zkoušce, se nezdál být nějak významně ovlivněn uvedeným procvičováním v semestru. V dřívějších letech, kdy cvičení v semestru byla mnohem méně svázána se zkouškou, naráželi posluchači u zkoušek na zcela stejné potíže a ve stejné míře jako letos.

[4] Semestr - domácí programovací úlohy
Jako domácí programovací úlohy v semestru jsme letos zadali 8 zkouškových programovacích úloh z předchozích let. Každou domácí úlohu předcházel referát posluchačů na cvičení, kde jsme probírali postup řešení úlohy. Charakteristická pro referáty bývala, nezávisle na větší či menší kvalitě referátu, malá aktivní účast posluchačů referátu. Posluchači většinou nenacházeli odvahu nebo znalosti k cílené diskusi, která by jim výrazně usnadnila následnou vlastní implementaci úlohy. Referát tak pro mnoho posluchačů ztratil většinu svého zamýšleného efektu.

Několik týdnů před koncem semestru se ukázalo, že celkový průměrný čas, o němž studenti referovali, že jej potřebují k řešení programovacích úloh, přesahuje cca o 10% - 15% čas odpovídající kreditové dotaci předmětu. Museli jsme proto dodatečně snížit bodové požadavky na zápočet, abychom adekvátně kompenzovali referovaný převis. Nakolik hlášené hodiny strávené nad úlohami odpovídaji skutečnosti jak u jednotlivců tak v celkovém průměru, je otázkou, o níž nevíme, zda se jí někdo někdy jakkoli seriózněji zabýval.

[5] Semestr - úvodní matematický test
V úvodním matematickém testu vyšlo najevo, že průměrná schopnost posluchače PAL zopdovědět elementární krátkou otázku středoškolské matematiky je asi 30%. Schopnost odpovídat na otázky vysokoškolské matematiky jsme netestovali. Identický test jsme zadali také jako kontrolní skupině všem posluchačům prvního ročníku OI na začátku 2. semestru. Kontrolní skupina dosáhla průměrné cca 37% úspěšnosti. Zdá se tedy na první pohled, že bakalářské studium nějakým způsobem přímo nebo nepřímo podporuje neznalost potřebného matematického aparátu, se kterou se setkáváme v PAL.

[6] Zkouška - teoretická část
V teoretické části jsme vyšli z premisy, že každý adept má mít neomezený čas na přípravu a opakovanou korekci své odpovědi. V průměru každý posluchač strávil s examinátorem kolem 1/2 hodiny času v rozhovoru o svém řešení. Řešení se dosahovalo postupně, examinátor opakovaně upozorňoval adepta na nedostatky v jeho dosavadním návrhu, naváděl na cestu ke správnému návrhu a mnohdy adeptovi namáhavě vyvracel různé zcela mylné nebo nedostatečné představy. Zkouška se tak v tomto ohledu stala regulérní (a snad i efektivní?) součástí výuky. Představujeme si, že kdyby se podobné koncentrované úsilí dalo přenést do semestru, neslo by částečně ovoce, ale evidentně na to nemáme v semestru ani čas ani personální kapacitu.
K tomu všemu ale musím dodat, že až na malé výjimky byly zkouškové (tedy i semestrové!) otázky značně jednoduché, vyžadující jeden krátký obrat nebo výpočet. Zjištění z dřívejších let, že nejeden posluchač ma jiné teoretické znalosti, než jaké si s upřímným přesvědčením přisuzuje, platí plně i nadále.

[7] Zkouška - praktická část
Prakticky beze změny trvají zjištění z předchozích let (viz loňský rok odst [5]) o malé kompetenci mnoha adeptů. Letos jsme přidali před čtyři hodiny určené na programování ještě jednu hodinu, v níž adepti analyzují úlohu bez počítače a navrhují řešení ještě předtím, než začnou kódovat. Toto opatření posluchačům poněkud snížilo subjektivní nepohodlí zkoušky, na celkové výsledky asi ale nemělo vliv. Jedním z charakteristických prvků většiny navržených řešení, která jsme konzultovali s posluchači po uplynutí přípravné hodiny, bylo, že jejich autoři nedokázali ani odhadnout a natožpak jasně zdůvodnit asymptotickou složitost svého návrhu nebo jeho částí.
Letos jsme oproti loňským 13 vypsali jen 7 termínů praktické zkoušky (osmý bude v létě). A za všech těchto uvedených okolností jsme zcela pragmaticky mezi zkouškové úlohy zařadili také několik úloh na nejvýše bakalářské úrovni

[8] Komentáře v anketě
Shrnuji příspěvky posluchačů v rubrikách ankety [Váš komentář k předmětu…] a [Konkrétní připomínky ke zkouškám a zkoušejícím…]. K předmětu se vyjádřilo 36 respondentů, ke zkoušce a jejímu průběhu se vyjádřilo 37 respondentů, což je podobné loňsku, kdy tato čísla byla 34, resp. 40.

[8a] Ad tématická náplň předmětu
Přibližně se vyjádřilo 7 respondentů, 2 souhlasně, 5 nesouhlasně. Nesouhlasně reagující považují témata PAL za příliš jednoduchá, nenápaditá a známá z dřívějška nebo naopak roztříštěná. Respondent přicházející z FIT upozornil, že na FIT většinu látky PAL probral v bc. a navíc „mnohem hlouběji“. Relativně menší počet reakcí na tuto otázku znamená, že pro většinu posluchačů není zcela prioritní. Co je pro jednoho žadoucí hlubší poučení, je pro druhého nesmyslnou zátěží (cituji: „nedělejte nám z toho matfyz!“) a zřejmě se musíme v PAL vejít přibližně někam doprostřed. Zároveň s tím ovšem platí závěr [3] a [5] výše a také [6a] z loňska.

[8b] Ad obtížnost versus přínosnost předmětu
Náročnost předmětu je pro většinu respondentů dána individuální obtížností domácích úloh v semestru. Náročnost předmětu jako adekvátní výslovně uznali dva respondenti, dále 15 respondentů jej hodnotí jako náročnější nebo hodně náročný. S tím dobře kontrastuje, že předmět jako přínosný nebo hodně přínosný výslovně hodnotí 12 respondentů (někdy titíž, někdy jiní) a jako nepřínosný pouze 3. Uvedený poměr koreluje s přibližným zjištěním v [2], že posluchači jsou vědychtiví ale málo připravení. Pouze jeden respondent reflektoval fakt, že praktická subjektivní obtížnost úlohy souvisí s teoretickou připraveností řešitele. Respondenti nespokojení s přínosností předmětu vidí přičinu jak v jeho tématice tak i v (příslušně neadekvátní) volbě domácích úloh.

[8c] Domácí programovací úlohy
Zde hodnocení prakticky splývá s předchozím odstavcem, respondenti se v hodnocení obtížnosti/přínosnosti předmětu řídí převážně právě domácími úohami, jimž věnovali drtivou většinu svého času.

[8d] Ad zkouška - teoretická část
Jako celkem adekvátní vyhodnotilo ústní část 9 respondentů, jako příliš náročnou nebo nevhodnou tři respondenti. Další tři respondenti poukázali na nevhodnou organizaci této části. Jako snadnou hodnotil zkoušku jeden respondent. Šest respondentů bylo nespokojeno s požadavky dr. Vyskočila na exaktní přístup k řešení problému a hodnotí je jako nadměrné. Celkem se tedy tato část jeví jako převážně nekonfliktní.

[8e] Ad zkouška - praktická část
Jako snadnou hodnotil tuto část jeden respondent, jako přiměřenou 4 respondenti a jako příliš obtížnou 14 respondentů. Dále 10 respondentů uvedlo, že mezi obtížností úloh v jednotlivých termínech je přílišný nepoměr. Situace je tu do značné míry podobná jako v [8b] a ovlivněná [2]. Posluchač, který v semestru usilovně pracoval na problematice PAL, má pochopitelný pocit, že si už známku po tom všem přece zaslouží. Koneckonců, udělal už možná více, než v leckterém jiném a ne zrovna třeba bezvýznamném předmětu.

[9] Co na příště
Je zřejmé, že ztracené potřebné předpoklady, jaké uvádim v [2], [5] a i jinde, nelze dohnat, i přes maximální dobrou vůli všech zúčastněných, to jest studentů i učitelů, během jediného semestru. Studijní aktivitou a souvisejícími materiály je předmět naplněn pro mnohé účastníky až po okraj. Přidávání dalšího objemu práce není realistické. Na samostatnou domácí práci má posluchač PAL v semestru něco přes 80 hodin podle kreditové dotace. 85 hodin představuje cca dva pracovní týdny a to je vývoji odborníka informatika a programátora poměrně nepatrný okamžik. Typický pokulhávající posluchač by si za tu dobu měl alespoň letmo zopakovat kurs diskrétní matematiky, probrat opět základní grafové algoritmy a ubezpečit se v jejich používání cca desítkou vlastních kratších implementaci, totéž udělat s rekuzivními algoritmy, prolistovat většinu stránek některé standardní učebnice algoritmů, rozmyslet si a vyzkoušet záludnosti objektového přístupu k řešení algoritmických úloh a ovšem by se jistě hodil alespoň základní kurs C/C++ nebo nějaký jeho ekvivalent jako nácvik uvážlivého používání paměti počítače nebo prostředků jazyka. Pak by mohl dostatečně vybaven a s patřičnou sebedůvěrou přistoupit ve zbylém čase k řešení úloh pokročilé algoritmizace.

Další produktivní cesta kupředu v PAL tedy není aktuálně nijak zřejmá. Drobnější návrhy jsme ochotni i schopni zavádět, takový nebo jiný bodovací systém, takovu či jinou vobu úloh nebo režii zkoušky. Děláme to v týmu PAL již asi čtvrtým rokem, z ojedinělých reakcí se zdá, že se v tom postupně zlepšujeme. Oceníme každou další připomínku a námět.

[10] Poznámky a různé
Čryři respondenti ankety navrhují, aby po termínu odevzdání úlohy proběhl její rozbor a návod “jak se na to mělo jít”. Evidentně, nestačí rozbor a návod “jak na to jít” v referátu při zadání úlohy. Souvislosti viz [4]. Asi by pomohlo nejen to, ale také mít nějaké jednodušší ukázkové problémy s řešením, kde by se posluchači mohli poučit, jak se vyhnout alespoň nejtěžším kiksům. Lze také zveřejňovat řešení několika nejúspěšnějších řešitelů každé ulohy.

Rozdíly mezi zkoušejícími JV a MB považuju za adekvátní pro vysokou školu. Je zcela běžné, na ČVUT i jinde, že některý zkoušející je považován za “přísného” a jiný za “hodného”. Obojí má své výhody a není třeba se jich vzdávat. MB nedává zkoušku zadarmo a JV nechce od nikoho hlouposti.

Referenční časy pro řešení praktické úlohy u zkoušky jsou dány autorským a kontrolním řešením. Autor vyrobí řešení a pošle zadání cvičícímu. Ten vyrobí kontrolní řešeni a udá čas stráveny na řešení úlohy od přečtení zadání do ukončení implementace. Letos se tento čas pohyboval od cca 75 do cca 140 minut. Kontrolnm řešení musí řešit správně všechny datové instance úlohy a být stejně rychlé jako autorské řešení. Limit pro čas studentského řešení na zpracování jednoho datového souboru je dán takto: Systém spustí autorské řešení na stejné datové instanci, změří čas, vynásobí koeficientem 2 a zaokrouhlí nahoru na celé sekundy. Ihned poté spouští studentské řešení a kontroluje čas. Když je součástí úlohy rekurzivní postup, jehož složitost se pro různé možné reprezentace dat hůře odhaduje, pro jistotu nastavujeme uvedený časový koeficient vyšší, u úlohy Isomers to je 5.0, v úloze Isomorphic permutations to je 3.0. Identický postup je použit pro úlohy v semestru nebo jejich modifikace.

courses/a4m33pal/souhrn2013.txt · Last modified: 2018/02/09 14:41 by berezovs