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 je možné navštívit pravidelné konzultace k implementaci domácích úkolů v programovacím jazyku Python 3.10 a vyšším.

Přednášky

V rámci přednášky budou představeny základní koncepty algoritmizace a vhodné typy datových struktur. Přednášky nejsou nahrávány; videonahrávky přednášek z roku 2021 jsou k dispozici ve Studijních materiálech předmětu.

Cvičení, odpovědníky

Na začátku každého cvičení studenti řeší krátký ISový odpovědník (max 4 minuty) 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í). Odpovědník na prvním cvičení testuje znalost organizačních pokynů k předmětu. 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, pokud budete potřebovat tištěný odpovědník.

Účast na cvičeních je povinná a eviduje se pomocí odpovědníků. Proto není možné vyplňovat odpovědník vzdáleně ani odejít ze cvičení po vyplnění odpovědníku a je potřeba se aktivně účastnit celého 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 potřeba na cvičení chodit, chodit včas a znát odpřednášenou látku z minulého týdne. 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 e-mailem cvičícího, jestli má volno. Pokud student nemůže navštívit jiné cvičení, napíše svému cvičícímu neprodleně 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 29. března, v pondělí 1. dubna, ve středu 1. května a 8. května cvičení odpadnou - studenti navštíví libovolné cvičení v jiný den daného týdne. Podrobnější instrukce dostanou relevantní studenti v dostatečném předstihu. Ve čtvrtek 16. května je sice rektorské volno, ale cvičení budou vyučována. Případné absence studentů budeme řešit individuálně.

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

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. Řešení těchto úkolů se neodevzává a po termínu odevzdání odpovídajícího "du" se v ISu zpřístupní jejich vzorová řešení.

Druhý typ domácích úkolů najdete v souborech začínajících "du". Tyto úkoly vyžadují aktivní použití algoritmů probíraných na přednášce resp. implementovaných v rámci odpovídajícího úkolu "cv". Domácí úkoly "du" odevzdávejte do ISu do speciálně vytvořených odevzdáváren. V určené časy odevzdávárna zkontroluje Vaše řešení a vyhodnotí ho. Při vyhodnocení se používá Python 3.10. Testy se spouští každých cca 5 minut. Vyhodnocení testů samozřejmě nějakou chvíli trvá (zvlášť pokud se v jednu chvíli do fronty dostane více řešení), ale za normálních okolností by snad nemělo přesáhnout 15 minut. Pokud po delší době stále nevidíte výsledek v poznámkových blocích, nahlaste to prosím do vlákna: 

Nejdříve běží kontrola syntaxe. Pokud test syntaxe selže, odevzdání se nepočítá. V opačném případě se spustí testy fáze verity, které testují korektnost a složitost vašeho řešení. Na tyto testy máte celkem pět pokusů, odevzdání nad tento limit už nebudou bodována. Podrobnosti k vyhodnocovací službě, požadavkům na řešení a rady, jak se vyhnout nejčastějším chybám, naleznete přehledně sepsané v následujícím dokumentu.

Deadline pro odevzdávání je vždy o půlnoci ze středy na čtvrtek v týdnu následujícím po týdnu, v němž byl úkol zadán. V případě nejasností v zadání nebo problémů v řešení 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 (v rozvrhu vedené jako cvičení "konzultace", tj. v úterý od 16:00 do cca 17:50 v A319). 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í.