Ročníkový projekt
Studijní informace
- For English-speaking students
-
NPRG045 Ročníkový projekt
- Garant: Filip Zavoral
- Studijní plány
- Upozornění: Předmět je určen zejména pro studenty 2. ročníku a začíná v letním semestru
- Možnost zápisu v zimním semestru je zejména pro ty, kteří během předchozího letního semestru nesplnili předepsané podmínky
- Studenti 2. ročníku si tedy předmět v zimním semestru nezapisují
- Vybraná nabízená témata (i pro BP, nejde o vyčerpávající seznam):
KSI
KDSS
KTIML
KAM
IUUK
Průběh semestru
- Cílem předmětu je vypracování rozsáhlejšího softwarového díla v libovolném běžném programovacím jazyce.
- Úvodní přednášky (předpokládaný harmonogram) v letním semestru:
- 1. týden - úvodní přednáška pro všechny studenty - pravidla, požadavky, doporučení, termíny [Zavoral]
- 2. týden - prezentace kateder - možná témata RP [Ježek]
- 3. týden - představení témat partnerských firem [Ježek] + pokyny a rady pro výběr a vypracování bakalářské práce, vazba RP a BP [Mareš, Brom]
- 4. týden - doporučení pro vypracování bakalářské práce (zejména pro 3. ročníky, ale perspektivně užitečné i pro 2. ročníky) [Ježek, Mareš, Brom]
- Předmět probíhá formou samostatné práce s průběžnými konzultacemi s vedoucím.
- Domluva s vedoucím a přiřazení - seznam vedoucích s možnými nabídkami témat je zveřejněn v SISu.
- Vedoucí může nabídnout vlastní návrhy projektů nebo omezit množinu možných projektů, toto omezení je uvedeno v poli Poznámka k rozvrhu.
- Skupiny mají nastavenou kapacitu na 0, vlastní přiřazení provede po domluvě se studentem vedoucí.
- Rozmyslete si, co a jak byste chtěli dělat a kontaktujte příslušného vedoucího. Ten vás pak případně po vzájemné domluvě přiřadí do své skupiny.
- Na ročníkový projekt typicky plynule navazuje bakalářský projekt (dle dohody s vedoucím už při předběžné domluvě tématu - je třeba zohlednit). Předpokládá se, že vedoucí RP bude i vedoucím BP, není to však nutné.
- Je možné absolvovat samostatný projekt v rámci NPRG045 a vypracovat zcela nesouvisející bakalářskou práci. Toto je vhodné zejména pro teoreticky zaměřené studenty.
Termíny
- Student si musí zapsat předmět nejpozději do standardního termínu zápisu
- Pro cvičení si zapíše 'sběrnou' paralelku bez vedoucího (x01)
- Vedoucího projektu si student může v rámci nabízených možností zvolit (příp. změnit) až do 28.3.
- Po domluvě s vedoucím požádejte vedoucího, aby vás přiřadil do své skupiny
- Přiřazení k vedoucímu včas zkontrolujte! Pokud nebudete do 28.3. k vedoucímu přiřazeni, po tomto datu už to nebude moci udělat ani vedoucí ani garant předmětu a vedoucí vám nebude schopen zapsat zápočet!
- Další konkrétní termíny určuje vedoucí dle svých možností a vlastností projektu, toto jsou běžné termíny:
- Konec března - zadání (předběžně dohodnutého tématu)
- Cca duben - podrobná specifikace
- Do konce semestru - rozpracovaná verze s předem domluvenou funkčností a stupněm dokončení
- Rozsah podrobné specifikace, obsah rozpracované verze a stupeň rozpracovanosti je nutné domluvit předem během zadávání a specifikace projektu.
Obsah projektu
- V zásadě jakýkoliv týkající se návrhu a vývoje softwarového díla.
- Téma by mělo být pokud možno zajímavé a netriviální, rozhodně ne implementace už 100x implementovaného, s alespoň částečně vlastní myšlenkou (určitě v případě, že bude projekt rozšířen na bakalářskou práci).
- Jako Ročníkový projekt nelze mít přavážně teoretická témata jako rešerše, návrh algoritmů, formální důkazy apod.
- Jazyk: v zásadě libovolný, preferovány jsou mainstreamové jazyky: C++, Java, C#. Další jazyky (Python, Ruby, Kotlin, Go, Scala, ...) je vhodné nejprve konzultovat s vedoucím. Webové, mobilní nebo cloudové aplikace jsou možné.
- Operační systém / platforma: v zásadě libovolné běžné, preferovány jsou běžné systémy Linuxové i Windowsové třídy, mobilní a webové platformy a platformově nezávislé projekty. U netradičních platforem je povinnost studenta zajistit dostupnost platformy pro vedoucího a vždy je nutné se předem s vedoucím domluvit.
Vývoj - GitLab
- Pro vlastní vývoj projektu je nutné průběžně používat repository / verzovací nástroj. Primárně by měl být používán MFF GitLab, po dohodě s vedoucím lze použít např. veřejný GitHub/GitLab.
- Vedoucí pro vás vytvoří repository v sekci určené pro ročníkové projekty.
- Záznam commitů bude použit pro hodnocení práce studenta, je proto nutné zdrojové a další relevantní soubory commitovat na denní bázi.
- Nahrání pouze výsledné verze projektu je nepřípustné a implikovalo by neudělení zápočtu.
- URL repository musí být uvedena u záznamu studenta v SISu (Záznamník učitele / Evidence studijních povinností).
- Repository musí obsahovat i veškerou dokumentaci včetně schválené specifikace.
Upřesnění součástí projektu
- Zadání - krátký popis dohodnutého programu:
- Název, cca 5-15 řádků popisu tématu, OS, jazyk, knihovny nebo jiné externí komponenty, vývojové prostředí, ...
- Podrobná specifikace - detailní popis problematiky, podle něhož by jiný programátor napsal "tentýž" program:
- Popis všech podstatných zamýšlených funkcí a vlastností programu
- Pokud je relevantní, tak stručná analýza existujících obdobných programů a popis odlišností (v čem bude lepší, co bude mít jiného, apod.)
- Návrh struktury programu (moduly, knihovny, framework, integrace, ...)
- OS, jazyk, vývojové prostředí, další využívané zdroje
- Rozpracovaná verze (pro zápočet - viz Zápočty a kredity)
- dostatečně velká uzavřená část aplikace, která v rámci specifikované/domluvené funkčnosti spolehlivě funguje.
- rozsah a funkčnost domluvit předem, nikoli pouze "naklikané" GUI apod.
- Finální verze
- Funkční stabilní softwarový produkt s použitelným uživatelským nebo aplikačním rozhraním.
- Instalační postup obsahujcí vše potřebné pro instalaci a spuštění (knihovny, konfigurace, data, ...) na všech podporovaných platformách.
- Testovací data - v případě, že projekt pro demonstraci své funkčnosti potřebuje nějaká data, musí být tato přiložena tak, aby bylo možné demostrovat plnou funkčnost řešení.
- Dokumentace
Standardní požadavky na dokumentaci
- Instalační příručka = popis instalace, konfigurace a spouštění programu
- Uživatelská příručka = popis ovládání programu (co a jak lze s programem dělat), popis rozhraní
- Vývojová dokumentace = postup překladu a sestavení programu, popis implementace (co, v čem, jak), popis netriviálních algoritmů a datových struktur
- Za vývojovou dokumentaci není považován text automaticky vygenerovaný za zdrojových kódů (Doxygen apod.)
- V dokumentaci musí být zejména to, co ve zdrojových kódech není.
Hodnocení
- Program: celková kvalita díla, stabilita programu, uživatelská přívětivost, kultura zdrojových kódů, rozšiřitelnost, komentáře
- Dokumentace: srozumitelnost, přehlednost, úplnost, kvalita provedení
Studijní formality
Zápočty a kredity
- RP a navazující BP se stejným vedoucím
- Zápočet za NPRG045 [4 kr] udělí vedoucí RP po splnění domluvených podmínek (podrobná specifikace, implementace podstatných částí, ...), avšak až poté, co se student přihlásí k jím vypsané navazující BP
- Za kompletně dokončený RP (včetně kompletní dokumentace) dostane student zápočet za NSZZ031 [6 kr]
- Nejběžnější případ
- RP s nenavazující BP
- Za kompletně dokončený RP dostane student zápočet za NPRG045 [4 kr]
- Zápočet za nenavazující NSZZ031 [6 kr] udělí vedoucí BP
- Určeno zejména pro teoreticky zaměřené BP (typicky s rozsáhlejší rešerší) nebo pro případy, kdy během práce na RP se student rozhodne v projektu nepokračovat a vypracovat nesouvisející BP
Zapisování předmětu pro studenty bez splněné prerekvizity
- Pokud nemáte splněnou prerekvizitu, typicky Programování 2, na předmět se nezapisujte
- Racionální důvod: během LS budete dodělávat zápočtové programy z Prog 2 a dále z Programování v XXX, takže byste stejně na intenzivní práci na RP neměli dostatečnou kapacitu
- RP si můžete zapsat v ZS
- Nic vám ale nebrání se neformálně předběžně domluvit s nějakým vedoucím a začít o vašem RP přemýšlet
- Promíjení prerekvizit není administrativně triviální proces a měl by být maximálně minimalizován
Odložení zápisu do ZS
- Pokud z jakýcholiv důvodů nechcete/nemůžete na ročníkovém projektu v LS pracovat dostatečně intenzivně a neplánujete ho dokončit během LS, případně pokud neseženete vhodného vedoucího, je lepší si v LS předmět nezapisovat (nebo se včas odhlásit) a předmět si zapsat až v ZS 3. ročníku.
- V ZS se nekonají úvodní přednášky ani nejsou v seznamu všichni možní vedoucí. Domluva s vedoucím je na vaší osobní iniciativě. Případně chybějícícho vedoucího na seznamu je možné během prvních týdnů ZS dopsat.
Zapisování předmětu pro studenty 3. ročníku
- Předmět zapsán letos v zimním semestru (bez ohledu na to, jestli jde o první nebo druhý zápis předmětu) - v LS se už nezapisujte, pokračujte v práci ze ZS
- Předmět zapsán vloni, letos ještě nezapsán - po domluvě s vedoucím se nechte standardně zapsat k vedoucímu, zápočet za předmět musíte získat nejpozději do konce LS
- Předmět doposud nezapsán - standardní postup
- I při zápisu do zimního semestru se přihlašte nejdříve do sběrné skupiny pro nepřiřazené a domluvte se s vaším vedoucím, aby vás přiřadil do své skupiny. Zápis předmětu musíte stihnout do konce termínu pro zápis předmětů,
nejzazší termín na přiřazení k vedoucímu je 15.11.