Table of Contents

Domácí úkoly

Harmonogram

Pro získání zápočtu je potřeba úspěšně odevzdat všechny povinné úlohy do 23.5.2026@23:59 AoE!

Domácí úkoly jsou zadány na přednášce, na které jsou představeny klíčové části nezbytné pro řešení úkolu. Dále je příslušná problematika řešena na následujících cvičení. Úlohu je možné (a doporučené) řešit v předstihu a seznámit se s tím co bude pro její řešení potřeba a využít cvičení na případné dotazy a pochopení principů. Nebojte se případně již nějak fungující program úplně přepsat tak, aby byl nejen funkční, ale také správný. Termíny odevzdání úloh jsou v časové zóně AoE. Bonusové úlohy můžete vypracovat až do konce výukové části semestru do finálního termínu 23.05.2026@23:59 AoE.

Součástí hodnocení domácích úkolů je hodnocení kódovacího stylu, které zahrnuje čitelný kód, ale zejména správnost a vhodnou dekompozici na jednodušší funkce. Cílem je implementovat nejen funkční programy, ale také programy, které jsou implementovány správně. Správný program je připraven na neočekávaný (netypický) vstup a ošetřuje tak výjimečné situace. Vhodná dekompozice na menší funkce umožňuje izolovat dílčí části a čitelně ošetřit všechny podstatné (chybové) stavy.
Číslo úkolu a název Povinné zadání Volitelné zadání Bonusové zadání Kontrola psaní čitelného kódu Termín odevzdání Počet uploadů
HW 00 - Upload do BRUTE 0b - - - so 28.02. 100
HW 01 - Načítání vstupu, výpočet a výstup 2b - - so 14.03. 10
HW 02 - První cyklus kontrola 2b - - so 21.03. 10
HW 03 - Kreslení (ASCII art) 2b - - so 28.03. 10
HW 04 - Četnost výskytu znaků 2b - - so 049.04. 120
HW 05 - Prvočíselný rozklad 2b - 3b so 11.04.
Bonus 23.05.
20
HW 06 - Caesarova šifra 2b 2b - so 18.04. 20
HW 07 - Maticové počty 2b 1b 2b so 25.04.
Bonus 23.05.
20
HW 08 - Hledání textu v souborech 2b 1b - - so 02.05. 20
HW 09 - Kruhová fronta v poli 2b - - - so 09.05. 20
HW 10 - Fronta spojovým seznamem s řazením 2b 1b - - so 16.05. 20
Celkem bodů za úlohy 20b 5b 5b
Ke kódování se můžete inspirovat ukázkami a tutoriály a ukázkami kódování k domácím úkolům.

Pro získání zápočtu je nutné odevzdat řešení všech domácích úkolů (kladně hodnoceny odevzdávacím systémem). Uvedené maximální počty body za úlohy platí pro včasné odevzdání úloh před uplynutím termínu a při maximálním počtu pokusů odevzdat funkční řešení. V případě překročení maximálního počtu se body snižují uměrně počtu dalších pokusů. Za pozdní odevzdání řešení úlohy jsou strhávány body úměrně době prodlení a to včetně záporných hodnot.

Pravidla

Toto jsou obecná pravidla uplatňovaná v mnoha předmětech, které používají tento CourseWare a UploadSystem. V případě nejasností se obraťte na svého cvičícího.

  1. Kód či text (dále jen kód) každé domácí úlohy musí být vypracován samostatně. Je běžné v programátorské praxi, že autor pro větší efektivitu své práce cizí kód přejímá a/nebo přizpůsobuje. Niceméně, pro studijní účely je takový postup nežádoucí1). Případné použítí cizího kódu je obvykle explicitně v zadání úlohy povoleno.
  2. Odevzdané práce jsou proto kontrolovány na přítomnost plagiátů. Za plagiát je pokládán každý kód, který se doslovně nebo po zřejmé mechanické syntaktické modifikaci shoduje s kódem jiného autora řešícího tutéž úlohu.
  3. V případě prvního odevzdaného plagiátu musí autor vypracovat úlohu znovu a samostatně. Řešení musí být funkční. I přesto bude řešení hodnoceno nulovým bodovým (procentuálním) ziskem. Bodové (procentuální) podmínky zápočtu jakož i termín odevzdání řešení se přitom nemění.
  4. V případě opakovaného2) odevzdaného plagiátu neudělí cvičící jeho autorovi zápočet a přednášející bez odkladu klasifikuje autora stupněm F - nedostatečně z celého předmětu.
  5. Vyučující nezaručují, že v případě shody více odevzdaných prací dokáží rozlišit původního autora a plagiátora.
  6. Posluchač, který se svým hodnocením nebo klasifikací nesouhlasí, se může obrátit na vedoucího katedry, která předmět zajišťuje, a dále postupovat podle Studijním a zkušebním řádem ČVUT, zejména podle článku 10, odstavce 3. nebo článku 10, odstavce 9.

Co je plagiát

Plagiátem je převzatý text, ilustrace, část počítačového kódu, metoda, i myšlenka (i část téhož) bez uvedení citace pramene.

Každý, kdo ve svém řešení použije výsledky jiného autora, musí tyto převzaté výsledky zřetelně označit a odkázat na původního autora. Jinak se dopouští plagiátorství. Z výukových důvodů dále také není možné používat cizí výsledky v konkrétních předmětech a úlohách, kde se výslovně požaduje samostatná práce, a to i v případě, že by byly převzaté výsledky řádně označeny.

Tato definice plagiátorství nijak nezužuje obvyklé chápání opisování na této univerzitě.

Bodová penalizace za nedodržení pravidel psaní čitelného kódu

U vybraných úloh označených v tabulce výše je manuálně hodnoceno dodržení pravidel psaní čitelného kódu. Penále se mohou sčítat až do -100% kde 100% je počet bodů dosažených nad 1 bod (po penalizaci může zbýt pouhý jeden bod). Kontrola proběhne po uplynutí termínu odevzdání.

Bodová penalizace za pozdní odevzdání úlohy

Penalizace za případné pozdní odevzdání je stanovana na 1 bod.

Bonusová zadání není možné odevzdávat po termínu.

Bodová penalizace za překročení maximálního počtu pokusů odevzdání řešení úlohy

Maximální počet pokusů $upload_{max}$ je stanoven pro každou úlohu. Při překročení této hranice větším počtem odevzdání $uploads$ vám bude stržena část bodů plného počtu $points _{max}$ podle následujícího vzorce:

$$ points = points_{max} \cdot \min\left(1, \dfrac{upload_{max}}{uploads}\right) $$

Příklad hodnocení pro úlohy s 5 a 10 pokusy:

Technické informace o Odevzdávacím systému

Operační systém (lsb_release -da):

Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

Použitý kompilátor (clang –version):

clang --version
Debian clang version 11.0.1-2

1)
V případě studia cizího kódu zkuste zapomínací test. Poté, co kódu porozumíte, počkejte minimálně 24, ale raději 48 hodin, než začnete s vlastní implementací.
2)
Toto opakování je míněno napříč předměty v celém studiu, nikoli pouze v rámci jednoho předmětu. Prohřešky jsou v databázi zaznamenány.