Pravidla pro týmové projekty informatických magisterských programů

Studijní plány informatických studijních programů nabízejí studentům od ak.r. 2020/2021 možnost účasti v týmovém projektu. Hlavním smyslem těchto projektů je získání zkušeností s prací v týmu při řešení softwarově orientovaného projektu. V programech Informatika - Softwarové a datové inženýrství, Informatika - Softwarové systémy, Informatika - Vizuální výpočty a vývoj počítačových her je týmový projekt povinný, v programech Informatika - Umělá inteligence, Informatika - Jazykové technologie a počítačová lingvistika je povinně volitelný. Týmový projekt se nabízí ve třech variantách, ze kterých si student vybírá jeden - Softwarový projekt, Výzkumný projekt a Firemní projekt. V Softwarovém projektu tým studentů samostatně realizuje větší softwarové dílo. Výzkumný projekt umožňuje studentovi zapojit se do stávajících výzkumných projektů na fakultě a stát se dočasně členem již existujícího týmu, v rámci něhož realizuje dílčí výzkumně-softwarový úkol. Firemní projekt umožňuje studentovi realizovat týmový softwarový projekt ve firemním prostředí za podmínek srovnatelných s ostatními typy projektů. Hlavním výsledkem všech typů týmových projektů je softwarové dílo splňující požadavky na spolehlivost, obecnou použitelnost, efektivitu a kvalitu zdrojových kódů.

Projektová komise a role v projektu

Každý studijní program má ustanovenou vlastní projektovou komisi (dále jen Komise). Kontaktní emailové adresy Komisí jednotlivých studijních programů (+ garantující katedra) jsou:

Následující text platí pro výše zmíněné programy kromě programu Vizuální výpočty a vývoj počítačových her, který má pravidla vlastní.

Kromě studentů řešících projekt se každého projektu účastní:

Supervizor
Vědecký nebo pedagogický pracovník nebo doktorand z garantující katedry, případně (se souhlasem Komise) jiný člen informatické sekce. Průběžně kontroluje práci na projektu, poskytuje členům týmu konzultace a při obhajobě práci na projektu hodnotí. Supervizor projektu může zastávat i roli konzultanta (typicky u výzkumných projektů).
Konzultant
Projekt může mít jako konzultanta libovolného člena informatické sekce, případně (se souhlasem Komise) externí osobu (mimo MFF UK). Konzultant je zodpovědný za odbornou (doménovou) část projektu. V případě Firemního projektu je konzultant povinný a typicky externí.
Oponent
Po odevzdání projektu je Komisí určen oponent, který se podrobně seznámí s odevzdaným projektem a sepíše posudek pro účely obhajoby.

Vlastní řízení projektu vykonává buď supervizor nebo konzultant, v případě Softwarového projektu lze i jeden ze členů týmu (student).

Vypisování a schvalování

Záměr každého projektu musí být schválen Komisí. Obsah záměru je specifický dle typu projektu v každém případě však musí obsahovat následující:

Záměr Komisi předkládá řešitel projektu (pokud je spoluřešitelů více, tak pověřený spoluřešitel).

Z projektového záměru musejí být zřejmé cíle a očekávané výsledky projektu, jeho hlavní součásti, základní použité technologie a celková pracnost. Typický záměr lze sepsat na 2-4 strany. Projektový záměr Komise posoudí a rozhodne o jeho schválení, neschválení nebo nutnosti doplnění.

Projektové záměry lze Komisi zasílat kdykoliv během akademického roku. Je doporučeno projekt začít během prvního roku navazujícího magisterského studia, nejpozději začátkem druhého roku studia.

Práce na projektu

Řešení projektu probíhá v součinnosti studentů se supervizorem a případně konzultantem.

Projekt je časově omezen na 9 měsíců od schválení záměru projektu Komisí do jeho odevzdání. V případě nedodržení termínu může projektový tým před uplynutím termínu požádat Komisi o prodloužení s podrobným uvedením důvodů nedodržení termínu, aktuálního stavu projektu, a odhadu doby potřebné na dokončení včetně vyjádření supervizora. Na prodloužení termínu není nárok.

Odevzdávání a obhajoby

Projekt se odevzdává v elektronické podobě, typicky ve fakultním úložišti GitLab.

Obhajoba probíhá před Komisí, účastní se jí supervizor a oponent jmenovaný Komisí. Obhajoby se může zúčastnit i konzultant. Obhajoba je veřejná. V případě obhájení projektu je studentům udělen zápočet za předmět, v případě uznaného zvýšeného rozsahu práce lze udělit zápočet i za předmět NPRG072 Zvýšený rozsah projektu. V případě neobhájení projektu určí Komise maximální termín odevzdání opravené a doplněné verze. Projekt má možnost jedné opravné obhajoby. Je vhodné formální zápis předmětu provést až před odevzdáním projektu.

Varianty projektů

Následující sekce popisují specifika jednotlivých projektů.

Softwarový projekt (NPRG069)

Jedná se o týmový softwarově orientovaný projekt tří až pěti (výjimečně šesti) studentů. Součástí odevzdání projektu k obhajobě musí být sestavitelné a spustitelné softwarové dílo včetně všech potřebných součástí (knihovny, datové a konfigurační soubory, apod).

Společné projekty studentů různých studijních programů jsou možné. Každý student je v rámci projektu povinen splnit požadavky toho programu, který studuje. V takovém případě studenti zasílají projektový záměr Komisi příslušné tomu studijnímu programu, který je dle jejich názoru v navrhovaném projektu dominantní. Projekt jako celek (zejména jeho schvalování a obhajoba) je posuzován společnou Komisí složenou po dohodě garantů ze zástupců příslušných studijních programů.

Pokud se některý z členů projektového týmu dostatečně neúčastní prací na projektu nebo neplní pokyny supervizora, může supervizor navrhnout Komisi jeho vyloučení z projektu. Komise v případě vyloučení studenta z projektového týmu může na návrh supervizora přizpůsobit podmínky projektu vzhledem k redukovanému týmu.

Záměr

Pro účely softwarového projektu neobsahuje Záměr žádný dodatečný obsah oproti společné části.

Práce na projektu

Před započetím implementace sepíše projektový tým detailní Technickou specifikaci obsahující:

  • konkrétní technické řešení díla
  • použité nástroje, technologie, frameworky, knihovny apod.
  • podrobnější harmonogram projektu a milníky
  • zodpovědnost konkrétních členů týmu za jednotlivé části a jejich předpokládanou pracnost

Detailní specifikaci po schválení supervizorem projektový tým zašle Komisi, která může vznést požadavky na doplnění nebo upřesnění nebo požadovat vysvětlení.

Pro vlastní vývoj je nutné průběžně používat repository / verzovací nástroj, ze kterého bude při obhajobě zřejmý průběh prací na projektu a podíl jednotlivých členů týmu. Primárně by měl být používán MFF GitLab, lze použít např. veřejný GitHub.

Odevzdávání a obhajoby

V projektovém záměru může být specifikována jiná forma odevzdání projektu. Povinné součásti odevzdávaného projektu:

  • zdrojové, konfigurační a datové soubory vytvořené studenty v souvislosti s projektem
  • vývojová dokumentace včetně popisu a zdůvodnění významnějších odchylek od zaslané detailní specifikace
  • záznam projektové historie, v typickém případě je tato zřejmá z GitLabu
  • instalační a uživatelská dokumentace

Výzkumný projekt (NPRG070)

Participace studenta (případně i několika studentů) na typicky dlouhodobějším výzkumném projektu garantující katedry (případně se souhlasem Komise i na softwarově orientovaném projektu jiné katedry inf. sekce). Student pracuje na zadaném dílčím úkolu v rámci výzkumného projektu a úzce spolupracuje s dalšími řešiteli (typicky členové výzkumné skupiny/katedry a doktorandi). Softwarovým výstupem Výzkumného projektu se typicky předpokládá nástroj (resp. sada nástrojů propojená do pipeline) pro experimenty související s doménou výzkumu a jeho aplikace (realizace experimentů).

Záměr

Projektový záměr předkládaný Komisi ke schválení musí u Výzkumného projektu obsahovat kromě společné části navíc:

  • detailní specifikaci stanovující konkrétní úkoly řešitele
  • technické řešení (včetně použitých nástrojů a technologií)
  • harmonogram a hlavní milníky
  • předpokládané využití výstupu projektu pro výzkumnou činnost

Specifikaci vypracuje student ve spolupráci se supervizorem, případně konzultantem.

Práce na projektu

Pro vlastní vývoj je nutné průběžně používat repository / verzovací nástroj, ze kterého bude při obhajobě zřejmý průběh prací na projektu a podíl studenta. Předpokládá se použití stávající repository výzkumného projektu, jejíž relevantní část bude zpřístupněna projektové komisi pro účely obhajoby. Po domluvě s Komisí je možné i jiné řešení.

Obhajoba a publikační výstupy

Kromě obhajoby projektu se očekává i využití dosažených výsledků pro publikační účely. V rámci obhajoby by měl student představit očekávané využití výstupu projektu pro publikační účely. V případě užší integrace studenta do výzkumného projektu je možné jeho zapojení do běžících i připravovaných výzkumných grantů. V případě, že součástí odevzdávaného projektu nemůže být spustitelné softwarové dílo, musí být součástí projektového záměru způsob prezentace díla při obhajobě projektu

Firemní projekt (NPRG071)

Účast studenta na týmovém softwarovém projektu v prostředí firmy. Preferované jsou firmy zapojené do Partnerského programu MFF. Se souhlasem Komise lze firemní projekt vypracovat i ve spolupráci s jinou firmou. V tom případě je povinností studenta dodat Komisi podrobnější informace o firmě, projektu, do kterého by měl být student zapojen, a konzultantovi a jeho roli ve firmě.

Student se v rámci firmy zúčastní práce na rozsáhlejším softwarovém díle, kde bude mít na starosti jasně vymezenou část s předem specifikovanými výsledky a výstupy. Zodpovědnost za domluvu s firmou a za přípravu projektového záměru je na straně studenta.

Záměr

Projektový záměr předkládaný Komisi ke schválení musí u Firemního projektu obsahovat kromě společné části navíc:

  • firemního konzultanta, jeho roli ve firmě a kontakty na něj (nesmí být ve střetu zájmů)
  • věcné zadání schválené firemním konzultantem
  • firemní kontext, rozsah, roli studenta, způsob zapojení do týmu ve firmě
  • formu odevzdání projektu a jeho prezentace k obhajobě
  • souhlas firmy s odevzdáním práce a její prezentací u obhajoby

Nelze zpětně uznat již uskutečněné ad-hoc projekty / stáže / práci ve firmě.

Není nezbytně nutné odevzdat kompletní spustitelný produkt, to v řadě případů není technicky nebo organizačně možné. Student ve spolupráci s firmou ale musí umožnit supervizorovi a oponentovi projektu detailní seznámení se s funkčností studentem vytvořeného díla, všemi jím vytvořenými součástmi a funkčnost při obhajobě demonstrovat.

Specifika studijních programů

Kromě společných obecných požadavků mají jednotlivé studijní programy na týmové projekty některé specifické požadavky.

Informatika - Softwarové a datové inženýrství

Softwarový nebo převážně softwarově orientovaný projekt zpracovávaný dle zásad softwarového inženýrství. Za část projektu je možné považovat aplikaci data-science, metod strojového učení, HCI, zpracování big data (včetně multimedií), a další aplikace.

Informatika - Softwarové systémy

Preferují se projekty z oblasti systémového programování, programovacích jazyků, softwarových nástrojů, softwarových architektur a podobně - tedy projekty, které se nějakou svou částí zabývají fungováním software a softwarových systémů (oproti projektům, kde je softwarová část standardní a přínos leží v její aplikaci).

Informatika - Vizuální výpočty a vývoj počítačových her

Viz vlastní pravidla tohoto programu.

Informatika - Umělá inteligence

Projekty zaměřené na umělou inteligenci a její aplikace, včetně projektů robotických. Příkladem mohou být projekty z oblasti automatického plánování, strojového učení, reprezentace znalostí, zpracování neurčité informace, robotických soutěží apod.

Informatika - Jazykové technologie a počítačová lingvistika

Projekty zaměřené na jazykové technologie a jejich využití zejména při zpracování přirozeného jazyka v jeho psané i mluvené formě, např. v překladových a dialogových systémech, pro extrakci informací z textu, mluvené řeči, případně z obrázků či videa. Projekty typicky využívají metod strojového učení či hybridních postupů kombinujících strojové učení a symbolické metody. Obdobné technologie lze v rámci projektů využít obecně pro zpracování velkého množství nestrukturovaných dat.