Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Náročnost úloh #79

Open
hroncok opened this issue Mar 21, 2017 · 8 comments
Open

Náročnost úloh #79

hroncok opened this issue Mar 21, 2017 · 8 comments

Comments

@hroncok
Copy link
Member

hroncok commented Mar 21, 2017

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
Copy link
Member Author

hroncok commented Mar 21, 2017

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
Copy link
Member Author

hroncok commented Mar 21, 2017

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.

@jirutka
Copy link
Member

jirutka commented Mar 21, 2017

…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.

@hroncok
Copy link
Member Author

hroncok commented Apr 17, 2017

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
Copy link
Member Author

hroncok commented Apr 19, 2017

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
Copy link
Member Author

hroncok commented Jul 26, 2017

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
Copy link
Member Author

hroncok commented Feb 14, 2018

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

@hroncok
Copy link
Member Author

hroncok commented Feb 23, 2018

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 %

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants