NI-PYT icon indicating copy to clipboard operation
NI-PYT copied to clipboard

Náročnost úloh

Open hroncok opened this issue 7 years ago • 8 comments

Ze studentské ankety:

Prva polovica semestra bola dobra, ucivo mozno az prilis jednoduche. Potom sa narocnost uciva vyrazne zvysila, chcelo by to narocnost trochu zrovnat. Mozno zacat narocnejsimi vecami (napr. spojit 1. a 2. ulohu do jednej), aby viac casu zvysilo na narocnejsie veci a tie rozdelit na viac cviceni.

Přišlo mi, že obtížnost, resp. náročnost úloh byla koncem semestru až moc velká. Chápu, že cílem je procvičit dané téma, ale např. v úkolu na implementaci různých typů postav v bludišti (async) by jich stačilo implementovat menší počet. Dále k asyncio - možná je to tím, že jsem se s asynchronním programováním poprvé potkal tady, ale rozdělil bych toto téma do dvou cvičení, bylo toho celkem dost najednou. Nevím jak moc je tohle reálné, ale počet kreditů bych klidně i navýšil. Řekl bych, že po matematice mi MI-PYT zabral nejvíc času, ale byl za nejméně kreditů.

Trochu snížit náročnost nebo intenzitu domácích úkolů. Na volitelný předmět toho bylo trochu hodně.

Požadavků na některé úlohy v semestru je podle mě zbytečně mnoho, obzvlášť vzhledem k týdenním deadlinům. Byl jsem nucen dávat přednost úlohám z povinných předmětů a tyto jsem pak stíhal jen s obtížemi (ke konci už vůbec).

Nesmyslně krátké deadliny, pokud by byl předmět povinný a byl za 8 kreditů pak my možná týdenní dedliny s nemožnosti konzultace na cvičení dávaly smysl Hrozné zadání úkolů, pouze text (jako vážně?) vrcholem pro mě bylo bludiště (kolik hodin času by ušetřil generátor bludišť nebo jedno ukázkové zadání a řešení) Předmět byl dle mého spíše zaměřený na lidi, kteří už si na zvolené technologie alespoň trochu sáhli Nesmyslně přísné hodnocení úkolů s nemožností opravy Úkoly vypadaly jako, že se nejdřív napsalo referenční řešení a až zpětně se psalo zadání

Některé úkoly mi přišli otravné a nezajímavé (dokumentace, testy), ale chápu, že je to potřeba vysvětlit a ukázat. Úkoly každý týden zabíraly poměrně hodně času, možná jsem si ale už odvykl na stresující kolotoč úkolů z PA2 a zlenivěl jsem.

Dostupnost materialov vopred, aby si bolo mozne prejst zadaniu uloh a uz pri navrhu prvej casti mysliet na dalsie upravy. Prva polovica semestra bola dobra, ucivo mozno az prilis jednoduche. Potom sa narocnost uciva vyrazne zvysila, chcelo by to narocnost trochu zrovnat. Mozno zacat narocnejsimi vecami (napr. spojit 1. a 2. ulohu do jednej), aby viac casu zvysilo na narocnejsie veci a tie rozdelit na viac cviceni.

hroncok avatar Mar 21 '17 11:03 hroncok

Několik věcí z naší strany (čistě informačně, není to výmluva):

  • koncept úkolů vznikl jako úlohy na cvičení, které lze dodělat doma, pokud to student nestihne
    • úlohy na sebe měly navazovat, proto je šlo dodělat jen do příštího cvičení
    • studenti z místnosti odešli, když se dozvěděli, že úkol se dá dodělat doma
      • nakonec ho většina studentů vypracovávala den před příštím cvičením (někteří v noci či ráno)
    • postupně jsme sami tedy začali o úlohách uvažovat jako o domácích úkolech a možná jsme je přestali plánovat tak, aby se více či méně daly stihnout na cvičení

V ideálním světě bychom příští běh měli udělat úlohy tak, aby se na cvičení daly stihnout všechny (což určitě na konci semestru neplatilo, omlouvám se) a motivovat studenty k tomu, aby na úlohách dělali na cvičení, protože tam jsme od toho, abychom jim poradili. nemá smysl dělat 2hodinovou přednášku a pak to rozpustit v předmětu s časovou dotací 0-3 (0 hodin přednášek, 3 hodiny cvičení).

Nerad bych však studenty motivoval k práci na úloze na cvičení tím, že ji musí odevzdat na cvičení a jinak nedostanou body, protože to je opět demotivační.

Čím motivovat studenty, aby dělali úlohy na cvičení?

hroncok avatar Mar 21 '17 12:03 hroncok

K náročnosti úloh a nejasnému zadání by mohlo pomoct, kdybychom k (programovacím) úlohám dodávali nějaké integrační testy, které by si studenti mohli pustit a poznat, jestli splňují, co se od nich očekává. Znamená to ovšem také, že budeme muset (především na začátku) udělat více formální zadání a všechny vypracované úlohy se budou chovat prakticky stejně, takže tím omezíme kreativitu. Na druhou stranu se to bude i lépe kontrolovat.

hroncok avatar Mar 21 '17 12:03 hroncok

…kdybychom k (programovacím) úlohám dodávali nějaké integrační testy, které by si studenti mohli pustit a poznat, jestli splňují, co se od nich očekává.

Takhle to dělají kolegové v MI-RUB a přijde mi to jako ideální přístup. K úlohám jim dávají testy, proti kterým implementují a ověřují správnost řešení. Později pak přechází k tomu, že dopisují vlastní testy.

Má to mnoho velmi pozitivních konsekvencí. Studenti začínají programovat proti testům, což je nenásilně navede k TDD. Tím, že dostanou předepsané testy a proti nim implementují, spíše pochopí, jak je potřeba testy psát, aby k něčemu byly, tedy pomohly jim odhalit chyby. Schválně bych jim pro jednu úlohu dal špatně napsané testy, aby pocítili rozdíl.

jirutka avatar Mar 21 '17 13:03 jirutka

Co se týče pro někoho šibeničních termínů, napadlo mě, že pouhým přeskládáním témat by mohla zůstat zachována návaznost, ale prodloužily by se termíny na 2 týdny.

  • requests a click (jednoduché, termín 1 týden)
  • Webové aplikace: Flask (termín 2 týdny)
  • Pandas (termín 2 týdny)
  • moduly (termín 2 týdny)
  • NumPy (termín 2 týdny)
  • Testování (termín 2 týdny)
  • C API (termín 2 týdny)
  • Dokumentace (termín 2 týdny)
  • GUI v Pythonu: PyQt5 (termín 2 týdny)
  • Magie nebo MicroPython (bez úkolu)
  • Generátory a AsyncIO (termín 2 týdny)
  • MicroPython nebo Magie (bez úkolu)

Případně u termínů na 2 týdny by to ve skutečnosti mohlo být třeba 12 dní, abychom dali feedback před navazujícím cvičením a ne až po něm.

hroncok avatar Apr 17 '17 14:04 hroncok

Po diskuzi s @encukou:

  • změna pořadí dává smysl
  • testu k úlohám dávají smysl, jen je třeba vymyslet úlohu na testování, pokud ke všemu mají testy od nás a je třeba se ze začátku vyvarovat příliš komplikovanému testovacímu kódu (zapomenout na fixtures, parametrické testy, parametrické fixtures...)
    • je možné k prvním dvěma úlohám dodat neparametrické testy nad živým API a chtít po nich použít Betamax parametrické testy apod.
    • ve hře je také varianta, že k úlohám bude dostupný jen nějaký deparametrizovaný subset našich paramatrických testů, ty naše obsáhlejší budeme pouštět, abychom ověřili, že úlohy nejsou napsané stylem "if vstup je A, vrať B" (to se mně osobně ale příliš nelíbí)

hroncok avatar Apr 19 '17 10:04 hroncok

Je třeba stanovit termíny úloh. U navazujících úloh na dva týdny navrhuji termín vždy do konce pondělí, aby se v úterý mohla dát vazba.

hroncok avatar Jul 26 '17 14:07 hroncok

Nechávám otevřeno, moc to nepomohlo.

hroncok avatar Feb 14 '18 13:02 hroncok

Parafrázovaný související kritický feedback z ankety ČVUT:

  • první (dvoj)úloha byla killer - ano, víme to a mrzí nás to, příště asi spíše integrační testy k živému API než betamax a flexmock, myslím, že většina bojovala spíš s testy než s úlohou samotnou a zde TDD moc nezafungoval
  • přesunout část úlohy na hodinu - to stále chci, ale nevím, jak k tomu studenty motivoavat
  • časová náročnost celého předmětu je (stále) příliš vysoká - už nevím co s tím, napadá mě jen zvýšit počty bodů a mít celkový součet třeba 150 s tím že (zjevně) není třeba udělat všechno a stejně je možné skončit s áčkem, případně (jak mnozí navrhují) nechat náročnost jak je a zvýšit počet kreditů. otázka je, jak moc můžeme mít volitelný předmět za 6. mohlo by to odradit lidi, ale radši je odradit hned na začátku a otevřít třeba jen 1 paralelku, než mít průchodnost < 50 %

hroncok avatar Feb 23 '18 12:02 hroncok