Domácí úkoly

Harmonogram

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

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 kromě bonusů v časové zóně AoE. Bonusové úlohy můžete vypracovat až do konce výukové části semestru do finálního termínu 24.05.2024@23:59 CEST.

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 1b - - - so 02.03. 100
HW 01 - Kreslení (ASCII art) 2b - - so 16.03. 10
HW 02 - Prvočíselný rozklad 2b - 4b so 30.03.
Bonus 24.05.
20
HW 03 - Caesarova šifra 2b - 2b so 06.04.
Bonus 24.05.
20
HW 04 - Hledání textu v souborech 2b 3b - - so 13.04. 20
HW 05 - Maticové počty 2b 3b 4b so 20.04.
Bonus 24.05.
20
HW 06 - Kruhová fronta v poli 2b 2b - - so 27.04. 20
HW 07 - Fronta spojovým seznamem s řazením 2b 2b - - čt 23.05. 20
Celkem bodů za úlohy 15b 10b 10b
Ke kódování se můžete inspirovat ukázkami atutoriá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 dosažený počet bodů za úlohu bez kontroly stylů (tedy za úlohu lze ztratit až všechny body). Kontrola proběhne po uplynutí termínu odevzdání.

V případě zásadních nedostatků v čitelnosti a správnosti kódu může být uděleno přímo -100 % bodů s doporučením využití konzultace (ať už v rámci pravidelných pátečních, nebo po domluvě individuální). Na základě konzultace a následné reimplementace je možné odevzdat úlohu znovu. V takovém případě jsou případné dodatečné penalizace za pozdní odevzdání nebo nadměrný počet odevzdání manuálně anulovány.

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

Penalizace za případné pozdní odevzdání je stanovana na 1 bod za 3 dny (72 h). Body budou odečítány až do úspěšného splnění volitelné části. Může se tedy stát, že bude celkové hodnocení úlohy záporné.

Příklad časové penalizace pro úkoly HW03, kdy povinné i volitolné zadání je za 3 body:

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 (cat /etc/os-release):

PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

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

clang version 7.0.1-8 (tags/RELEASE_701/final)
Target: x86_64-pc-linux-gnu
Thread model: posix

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.
courses/b3b36prg/hw/start.txt · Last modified: 2024/02/11 17:02 by faiglj