Jdi na navigaci předmětu

Domácí úkoly

Důležité:

V B242 dochází k významným změnám, přečtěte si pozorně dále uvedené informace.

V průběhu semestru budou postupně zadány celkem 3 programovací domácí úlohy. Termín odevzdání a podrobnosti jsou v níže uvedené tabulce.

Cílem úkolů je “rozcvičit” se (pro některé "zopakovat si python"), než se pustíte do většího projektu – semestrálky. Dáváme vám tím možnost zjistit, zda umíte danou úlohu skutečně sami vyřešit. Nebudeme vás omezovat ve využití moderních nástrojů pro generování kódu (typicky LLM). Dejte si ale pozor na přílišnou podobnost s cizím generovaným kódem - viz Hodnocení úkolů.

Pořád platí, že odevzdanému kódu musíte rozumnět a bez pochybností o tom po výzvě přesvědčit cvičícího. Student může být kdykoli vyzván ke konzultaci a prokázání porozumění jím odevzdaných úkolů. Pokud při konzultaci neprokáže na požadované úrovni porozumění odevzdanému kódu, bude takový úkol přirozeně ohodnocen v rozmezí -40 až 0 bodů a je to plně v kompetenci cvičícího. Celá situace bude dále řešena dle platných regulí FIT a ČVUT.

Zadané úkoly

ÚkolBodové ohodnoceníbude zpřístupněnodevzdání do
#1: Tree vizualization10cca 2. týden17. 3. 2025 23:59:59
#2: Image filtering10cca 2. týden31. 3. 2025 23:59:59
#3: ORB detector20cca 2. týden14. 4. 2025 23:59:59

Hodnocení úkolů

Z úkolů je možné získat maximálně 30 bodů, můžete si je poskládat libovolně (#1+#3, #2+#3, #1+#2+#3). Nabídka teoretických 40 bodů je i pojistkou pro případ popsaný dále.

Hodnocení úkolů probíhá zcela automaticky pomocí Gitlab CI, které spouští dvě sady testů. První sada testů je dostupná v repozitáři i studentům pro lokální ověření funkčnosti řešení. Druhá (neveřejná; studentům nepřístupná) sada testů slouží pro udělení bodů za řešení domácího úkolu.

Z důvodu nemožnosti objektivně rozlišit mezi situací, kdy dvě odevzdaná řešení jsou velmi podobná z důvodu, že je vygeneroval nějaký nástroj (LLM) a situací, kdy jsou řešení stejná z důvodu opsání jednoho od druhého, budou jakákoliv detekovaná příliš podobná řešení ohodnocena 0 body. Detekce probíhá na základě porovnávání AST (tj. řeší se struktura kódu, ne názvy identifikátorů). Příliš podobným bude označeno řešení s detekovanou úrovní podobností 90 %. Historická data ze čtyřech semestrů předmětu BI-PYT z dob před tím, než LLM dosáhly současné úrovně generování kódu ukazují, že podobnost vyšší než 80-85% znamenala vždy opsaná řešení.

Pokyny k vypracování úkolů

  • Úkol vypracovávejte vždy samostatně.
  • Váš kód musí být v souladu s PEP8, detaily viz Codestyle.
  • V případě užití generativních nástrojů (i přesto, že to u úkolů spíše nedoporučujeme) musíte kód anotovat/otagovat - viz Anotace / tagování generovaných částí kódu
  • Odevzdání úloh bude probíhat skrz fakultní Gitlab, kde najdete i podrobné instrukce.
    • Není třeba dělat merge request.
    • Stojíte-li o code-review, dohodněte se s vaším cvičícím individuálně.

Doporučení a nevyžádané dobré rady

  • Vyzkoušejte si včas, že umíte úkol odevzdat.
  • Přečtěte si zadání co nejdříve po zpřístupnění a ujasněte si, zda všemu rozumíte. V případě nejasností se ptejte na cvičeních, nebo klidně i svých kolegů – např. v patřičném kanále na teamsech/discordu.
  • Rozmyslete si, jak problém řešit a začněte částmi, kde víte jak na to.
  • Používejte lokálně pytest místo spouštění CI na Gitlabu.
  • Pracujte na úkolu průběžně.
    • Svou práci verzujte v Gitu. Může vám to pomoct při dokazovaní, že jste úkol vypracovali samostatně.
    • Necháte-li to těsně před deadline, zvyšujete riziko, že CI bude vytížené a na ohodnocení budete čekat déle. V krajním případě se může stát, že se váš úkol nestihne včas ohodnotit a nedostanete za něj body. Pak nemá smysl škermat u cvičících o jejich dodatečné uznání. ;-)