Základy algoritmizace, cvičení
Podmínky pro získání zápočtu
- Získat alespoň 20 bodů za aktivní účast na cvičeních a domácí úlohy
- Zápočtový program
Aktivní účast na cvičeních
- Za aktivní účast na jednom cvičení, tedy když student sleduje
výklad, reaguje na otázky a podílí se na řešení úloh, lze získat 1 bod (celkem bude 13 cvičení).
Domácí úlohy
- Téměř na každém cvičení budou zadány nějaké domácí úlohy.
Úlohy budou různě obodované dle obtížnosti, kvality a rychlosti
vypracování (obvykle budou úlohy z jednoho cvičení v součtu za cca. 2
body). Typickou úlohou bude odladit na počítači program, který na
cvičení budeme řešit na tabuli, popřípadě ho dokončit/modifikovat.
Domácí úlohy jsou z principu určeny pro studenty, kteří na příslušném cvičení byli.
- Obecné pokyny k vypracování domácích úloh:
- Pokud nebude řečeno jinak, termín pro vypracování domácího úkolu (nebo jeho další opravy) je do následujícího cvičení.
- Až bude moodle zprovozněný, řešení mi odevzdávejte prostřednictvím moodle (do té doby e-mailem). Do systému nahrajte pouze zdrojové a hlavičkové soubory (ne celý projekt.
Případné dotazy k domácím úlohám mi neposílejte prostřednictvím moodle, ale emailem.
- Program by měl být odladěný a otestovaný, měl by se držet principů a konvencí, o kterých jsme mluvili na (prvním) cvičení.
- Domácí úkol by měl každý student napsat sám. V případě nápadně
shodných řešení body získává jen ten řešitel, který program odevzdal
jako první.
- Pokud program nebude v pořádku, pošlu Vám výčet chyb (v
závislosti na srozumitelnosti programu i rady, jak program opravit) a
budete mít další týden na poslání opravy (počet iterací je omezen koncem
semestru :-)).
Body se započtou až za funkční verzi (s případnými malými
nedostatky).
- Programy můžete odevzdávat i později - po termínu. Za programy
nebo jejich opravy, které dorazí po termínu, lze ale získat jen
poloviční počet bodů. Finální termín pro odevzdání domácích úloh je do
konce května 2020.
Vypracování zápočtového programu
- Student odevzdá odladěný zápočtový program včetně uživatelské a programátorské dokumentace a případně vzorových testovacích dat.
- Prosím o dodržení následujícího postupu při odevzdávání zápočtového programu:
- Návrhy témat zápočtových úloh jsou zde). Je
možné navrhnout i vlastní téma, popř. téma popsané na stránkách dalších
cvičících.
- Termín pro výběr tématu: do 1.5.2020. V tomto termínu mi
pošlete ke schválení i stručnou specifikaci programu. V případě, že o
jedno zadání bude mít zájem více studentů než jeden (u vybraných úloh
dva), přednost budou mít ti, kdo se k zadání přihlásí dříve.
- Zápočtový program včetně požadovaných příloh mi odevzdávejte prostřednictvím systému moodle.
Ve chvíli, kdy se mi program bude zdát v pořádku, domluvíme se na
obhajobě v čase vypsaných konzultačních hodin. Na schůzce student
odprezentuje zápočtový program, odpoví na mé dotazy a případně provede
drobné modifikace programu.
- Pokud v průběhu vypracovávání zjistíte, že si se zvolenou úlohou nevíte rady, je možné se domluvit na náhradním tématu.
- Termín pro odevzdání zápočtového programu: do 11.9.2020. Zápočtový program je samozřejmě možné odevzdat již během semestru nebo ve zkouškovém období.
- Požadavky na zápočtový program:
- Srozumitelný kód: Zdrojový kód by měl být dobře
čitelný a srozumitelný a měl by být vhodným způsobem okomentovaný.
Povolené programovací jazyky jsou C++, C, Java, C#, Pascal, Python (jiné
pouze po předchozí domluvě).
- Technická dokumentace:
samostatný dokument v rozumném formátu (např. .doc, .docx, .html, .pdf,
.txt.). Typicky bude obsahovat především jméno
autora, přesné zadání úlohy, zvolený programovací jazyk a prostředí,
použité knihovny, popis použitých datových struktur a algoritmů (a
případně i další informace o struktuře programu a podprogramů).
- Uživatelská dokumentace: měla informovat o tom, jak s
programem pracovat (typicky zde bude návod spuštění programu a popis toho, jaký tvar by měla mít vstupní a výstupní data). Popřípadě můžete sepsat tutoriál nad
typickými úlohami. Jazyk dokumentace (čeština, slovenština či
angličtina) volte s rozmyslem.
- Testovací příklady vstupu nebo jednoduché úlohy, na kterých
předvedete, co váš program umí. Tvar testovacích dat bude záležet na
konkrétní úloze (v případě nejasností se mnou neváhejte zkonzultovat). Nebráním se ani unit testům.
- Jak může vypadat kód i dokumentace zápočtového programu je vtipně popsáno např. zde.
- Na co si dát obzvláštní pozor:
- Každý student by měl zápočtový program vypracovat sám. Pokud
zjistím, že student vydává za svůj cizí program nebo jeho část, je to
důvod k neudělení zápočtu (bez náhrady).
- Přestože v tomto předmětu je efektivita algoritmů důležitá, při
psaní zápočtového programu ve vlastním zájmu začněte s co nejjednodušší
funkční implementací a vyvarujte se předčasné optimalizace. Pokud se
rozhodnete v průběhu práce program přepracovat, nezapomeňte uchovat i
původní verzi.
- V dokumentaci po sobě zkontrolujte gramatické chyby a překlepy.