Warning
This page is located in archive.

Závěrečný projekt

Téma projektu

Téma závěrečného projektu si student vybírá sám. Projekt musí být schválen do deadlinu uvedeného na hlavní stránce předmětu. Doporučujeme jednou z dvou následujících typů:

  • Vlastní projekt: Vyberte si svůj vlastní projekt a pracujte na něm. Projekt lze propojit s vaší bakalářskou nebo diplomovou prací.
  • Kaggle projekt: Kaggle je oblíbený web s veřejně dostupnými datasety a soutěžemi. Vyberte si jednu soutěž a zúčastněte se jí. Ačkoli si můžete vybrat libovolnou soutěž, doporučujeme jednu z následujících:
    • Facial Keypoints Detection předpovídá pozice klíčových bodů na obrázcích obličeje o velikosti 96×96 pixelů.
    • Titanic na základě osobních údajů předpovídá, zda cestující přežil potopení Titanicu.
    • HappyWhale je náročná velká datová sada k rozpoznání jednotlivých velryb a delfínů z obrázků.

Pro Kaggle projekt doporučujeme první dvě datové sady. Neexistují žádná omezení, jak postupovat. Vyzkoušet můžete jak tradiční techniky, tak neuronové sítě. Pokud si nevíte rady, zkontrolujte vysoce hodnocená řešení. Poslední datová sada je určeny pro ty, kteří se chtějí poprat s výzvou. Vytvořte skupinu až tří studentů a ohromte nás svými dovednostmi.

Schválení projektu

Projekt musí být schválen po osobní diskuzi s vyučujícím (optimálně po skončení jakékoli hodiny nebo na poslední přednášce vyhrazené projektům). Rozmyslete si téma a krátký popis (do minuty) toho, co chcete dělat. Při diskuzi nám prosím sdělte váš Github účet. Po schválení tématu vás pozveme do Github organizace, kde si vytvořte složku Projekt_{prijmeni}, pripadne Projekt_{CVUT username}.

Vypracování projektu

Struktura závěrečného projektu musí přibližně odpovídat struktuře ImageInspector z přednášky. Pro lepší orientaci jsme vytvořili ukázkový příspěvek pro tento balík.

Projekt musí splňovat následující strukturální požadavky:

  • Projekt musí být verzován pomocí Gitu a nahrán na Github nebo podobnou službu.
  • Root složka balíčku musí obsahovat LICENSE, Project.toml a README.md se stručným popisem napsaným v Markdownu. Popis by měl ideálně v několika bodech specifikovat zadání a dále obsahovat užitečné informace o balíčku jako takovém (cíl, použití, obrázky, atd.). Zahrnutí .gitignore je doporučeno.
  • Složka examples by měla obsahovat skripty nebo notebooky s příklady pro spuštění balíčku.
  • Složka src by měla obsahovat veškerý zdrojový kód. Jednotlivé funkce by měly být seskupeny do souborů.
  • Složka tests by měla obsahovat jednotkové testy. Jednotkové testy by neměly používat externí data.
  • Lze přidat další složky.
  • Nejdůležitější funkce musí obsahovat alespoň krátkou dokumentaci.

Pro obsahové požadavky nejsou striktní pokyny. Jediný požadavek je to, že obsah balíku musí být netriviální. Například pro Kaggle soutěže nestačí použít balíček ke zpracování dat a spuštění klasifikátoru. Projekt by měl snažit využít silných stránek Julie jako multiple dispatch, broadcasting nebo faktorizace kódu na jednoduché funkce.

Obhajoba projektu

Na obhajobu projektu se přihlašuje v KOSu. Obhajoba probíhá osobní konzultací s jedním z vyučujících. Student si může přinést vlastní notebook, případně bude obhajoba probíhat na fakultním počítači. Obhajoba bude probíhat následujícím zůsobem:

  • Krátké vysvětlení problému, jeho problematiky a důležitosti.
  • Ukázání základních výsledků. Je doporučeno prezentovat kombinaci pouštění funkcí a ukazování předpřipravených výsledků.
  • Ukázání a spuštění jednotkových testů. Tato část bude vždy probíhat na fakultním počítači, aby se ukázala přenositelnost.
  • Ukázání historie Git commitů. Projekt by neměl obsahovat pouze jeden commit.
  • Stručný popis struktury balíčku.
  • Ukázání vybrané funkce a popis jejího obsahu.
courses/b0b36jul/project/start.txt · Last modified: 2023/11/30 11:16 by maskomic