IB002 Algoritmy a datové struktury I

Organizace výuky

Výuka předmětu je realizována jako dvouhodinová přednáška a dvouhodinové cvičení každý týden, navíc bude možné navštívit pravidelné konzultace k implementaci domácích úkolů v programovacím jazyku Python 3.7.

Přednášky

V rámci přednášky budou představeny základní koncepty algoritmizace a vhodné typy datových struktur. Přednáška probíhá v místnosti D3 a je přenášena do místnosti D1.

Cvičení

Na začátku každého cvičení studenti řeší krátký ISový seminární odpovědník (max 5 minut) pro připomenutí základních pojmů z přednášky (projděte si i pojmy v úvodu příslušné kapitoly sbírky příkladů pro cvičení). Získání stanoveného počtu bodů ze seminárních odpovědníků za semestr je nutnou podmínkou absolvování předmětu, proto je nutné na cvičení chodit, chodit včas a znát odpřednášenou látku z minulého týdne. Odpovědník na prvním cvičení se bude věnovat znalostem organizačních pokynů k předmětu. Není dovoleno využívat při vyplňování studijní materiály ani vyplňovat odpovědník vzdáleně, tj. pokud nejste fyzicky přítomni na cvičení. Pokud nemáte zařízení (notebook, chytrý telefon), na kterém můžete odpovědník v ISu vyplnit, dostanete tištěnou verzi, která bude následně scanována. Informujte včas svého cvičícího, aby měl s sebou dostatek tištěných odpovědníků.

Po odpovědníku následuje procvičení učiva na příkladech. Účast na cvičeních je povinná a eviduje se pomocí odpovědníků, proto není možné odejít ze cvičení po vyplnění odpovědníku, ale je potřeba se účastnit celého cvičení. V případě omluvené absence doporučujeme navštívit dle možností cvičení v jiný den daného týdne. Zeptejte se však emailem cvičícího, jestli má volno. Pokud student nemůže navštívit jiné cvičení, napíše svému cvičícímu e-mail, cvičící zkontroluje omluvenku v ISu, a v nejbližším možném termínu nechá studenta vypracovat náhradní papírový odpovědník. Všechna cvičení začnou již v prvním týdnu výuky, i ta před přednáškou. Ve státní svátky, tj. v pátek 10. dubna, v pondělí 13. dubna a v pátky 1. května a 8. května, cvičení odpadnou - studenti navštíví libovolné cvičení v jiný den daného týdne, případně požádají cvičícího v nejbližším možném termínu o náhradní papírový odpovědník. Obdobně budeme řešit děkanské volno ve čtvrtek 14. května.

Ve cvičeních se neprogramuje na počítačích. Předmět není zaměřen primárně na programování, a proto si na cvičeních vystačíme s pseudokódem. Je tedy vhodné mít s sebou spíše tužku a papír. Programování je bráno jako prostředek k hlubšímu pochopení probíraných algoritmů a datových struktur a budou na něj zaměřeny domácí úkoly. Na konci cvičení mohou být stručně představeny domácí úkoly, které mají studenti odevzdat do následujícího týdne (půlnoci z úterý na středu).

Domácí úkoly

V studijních materiálech naleznete dva typy úkolů k implementaci. Soubory začínající "cv" jsou jednoduchá cvičení, většinou implementace algoritmů z přednášky. K těmto se bude zobrazovat i řešení. V implementační části zkoušky však musíte i něco vymyslet, proto jsme vytvořili domácí úkoly začínající "du". Zaměřte se hlavně na řešení těchto úkolů. Když se nebudete chytat, rozcvičte se na jednoduchých cvičeních z "cv".

Studenti řešící průběžně domácí úkoly se při řešení hodně naučí, takže budou lépe připraveni na implementační část zkoušky. Vypracování domácích úkolů bylo vždy vřele doporučené, ale studenti z předchozích let nás prosili, abychom jejich průběžné řešení bodově motivovali. Proto jsme zavedli navýšení limitu pro absolvování implementační části zkoušky o jeden bod za každý neodevzdaný úkol. Domácí úkoly můžete odevzdávat do ISu do speciálně vytvořených odpovědníků. Odpovědník zkontroluje Vaše řešení a vyhodnotí ho. Při vyhodnocení se používá Python 3.7. Pokud je řešení správné, máte úkol odevzdaný. Pokud je řešení chybné, vypíše Vám odpovědník, kde máte chybu. Na odevzdání každého domácího úkolu máte 5 pokusů. Zadání se zveřejňuje v pondělí ráno a příslušný odpovědník se zavírá o půlnoci mezi úterým a středou následujícího týdne. Nenechávejte odevzdávání na poslední chvíli, může dojít k přetížení systému a nemusíte dostat včas informaci o chybě v řešení. V případě nejasností se můžete ptát v diskuzním fóru nebo navštívit konzultace.

Konzultace

Pravidelně budou probíhat konzultace k domácím úkolům (vedené jako cvičení konzultace01, konzultace02 a konzultace03, viz rozvrh). Pokud máte problém s vypracováním aktuálního domácího úkolu, neváhejte přijít a zeptat se přítomného pedagoga (většinou jsou to studenti o něco starší než vy). Velmi vítaná bude i diskuze mezi studenty, kteří se dostaví. Jde o konzultace, pedagog nemá připravený program, zodpovídá dotazy. Studenti přichází s konkrétními dotazy po tom, co sami vyzkoušeli daný problém vyřešit, tj. nepřišli si jen poslechnout rady, jak to udělat, až si k tomu někdy sednou. Pokud jsou termíny konzultací z nějakého důvodu nevyhovující, můžete to konzultovat v diskuzním fóru předmětu a navrhnout lepší časy. Z toho důvodu se také mohou termíny konzultací v průběhu semestru měnit.

Diskuzní fóra

Kromě základního diskuzního fóra předmětu je připraveno i anonymní diskuzní fórum, kam můžete psát své dotazy bez obavy, že se ztrapníte před ostatními studenty. Vyučující Vaši identitu vidí, takže se lze snadno odkazovat například do svého chybného řešení domácího úkolu. Snažte se ale být maximálně věcní a obecní, aby z toho ostatní studenti taky něco mohli mít, pokud narazili na podobný problém. Zároveň ovšem svými dotazy prosím neprozrazujte hlavní myšlenku řešení.

Speciální domácí úkol

Zhruba v půlce semestru (ve středu 8. dubna) bude speciální domácí úkol, který bude simulovat implementační část zkoušky. Ve večerních hodinách (ve 20:00) bude zveřejněno zadání, jehož řešení budete muset odevzdat do ISu do dvou hodin, tj. do 22:00. Tento úkol bude výjimečný i tím, že ho cvičící opraví a na cvičení se studenty proberou nejčastější chyby. Speciální domácí úkol bude bodovaný. Můžete získat až 3 body, které se připočítávají k bodům z implementační části zkoušky. Úkol řešte samostatně.