Projekt 2:

Obsah

Zadání

Vytvořte kalkulačku se základními matematickými operacemi (+,-,*,/), faktoriálem, umocňováním s přirozenými exponenty (exponenty jsou přirozená čísla), obecnou odmocninou (obecná odmocnina) a jednou další funkcí.

Doplňující podmínky:

Profiling

Pomocí funkcí z Vaší matematické knihovny vytvořte program (jako samostatný spustitelný soubor) pro výpočet výběrové směrodatné odchylky z posloupnosti čísel, kterou program čte ze standardního vstupu (v C např. pomocí funkce scanf) až do konce souboru a musí být schopen načíst min. 1000 čísel. Vstupní soubor obsahuje pouze čísla oddělená bílými znaky (mezera, konec řádku nebo tabulátor) a jejich počet není předem dán. Vzorec pro výběrovou směrodatnou odchylku, který bude využit:

Výběrová směrodatná odchylka

Příklad spuštění programu:

./stddev < data.txt

Tento program profilujte se vstupy o velikosti 10, 100 a 1000 číselných hodnot. Odevzdejte protokol obsahující výstup profileru a stručné shrnutí - ve kterých místech program tráví nejvíce času a uveďte, na co se při optimalizaci kódu nejlépe zaměřit.

Doplňující podmínky:

Volitelné rozšíření za 1 bonusový bod:

Virtuální prostředí

Uživatelé/hesla do všech virtuálních prostředí: ivs

Ve virtuálních prostředích pro vývoj můžete pracovat i na prvním projektu, jsou v nich připraveny všechny potřebné nástroje.

Pro testování a hodnocení

Pro vývoj

Pro vývoj ve Windows jsme Vám připravili ještě virtuální prostředí s MS Visual studio a Qt. Pro Linux s vývojovými nástroji, které studenti nejčastěji využívali v předchozích letech. Tato prostředí Vám můžou ušetřit práci s instalací, ale jejich využití je volitelné. Finální instalátor však musí fungovat na jednom z prostředí pro testování určených výše.

Všechna virtuální prostředí jsou ke stažení zde

Po rozbalení zip archivu s vybraným virtuálním prostředím přidáte toto prostředí do Virtualboxu pomocí položký Počítač --> Přidat (Machine --> Add), klávesová zkratka CTRL+A.

Pokud budete mít ve virtuálním prostředí problémy se sítí, mělo by být možné je vyřešit tak, že v Nastavení Virtualboxu v části Síť nastavíte, že je karta 1 připojena k síťovému mostu (Bridged adapter) a v pokročilém (Advanced) nastavení zaškrtnete, že je síťový kabel připojen (Cable Connected).

Vyjde-li v průběhu práce na projektu nová verze OS, neprovádějte aktualizaci distribuce (dist-upgrade).

Doplňky pro hosta

V prostředích nejsou nainstalovány doplňky pro hosta (Guest Additions). Pro snadnější práci je doporučeno je doinstalovat.

Pro jejich instalaci vyberte po spuštění prostředí Zařízení --> Vložit obraz disku CD s přídavky pro hosta (Devices --> Insert Guest Additions CD Image).

POZOR: Obraz disku, který je přiložen k Virtualboxu 5.2.6, případně 5.1.32 nepodporuje 3D akceleraci v Linuxu. Při použití těchto verzí je tedy nutné:

WSL 2

VirtualBox 6 nefunguje, pokud je současně provozován i WSL 2. Pokud WSL 2 používáte, je třeba se po dobu řešení projektu dočasně vrátit k WSL 1 a deaktivovat některé funkce Windows. Pro převod distribude běžící pod WSL 2 na WSL 1 je třeba:

Pokud chcete nadále používat WSL2, můžete vyzkoušet importovat virtuální disky ze zip archivů do Hyper-V nebo do VMVare Workstation Player (je nutná minimálně verze 16, funguje pouze na procesorech Intel). Toto řešení je ale bez záruky a nemusí fungovat.

Volitelná rozšíření

Především studentům vyšších ročníků doporučujeme zadání rozšířit tak, aby pro ně projekt měl větší přínos. Příklady rozšíření:

Funkcionalita volitelných rozšíření není součástí hodnocení, ale může k ní být přihlédnuto při hodnocení jiné části projektu.

Tipy pro zlepšení výsledného hodnocení:

Týmy

Přihlašování

Registrace týmu musí být provedena do 3. 3. 2022 5. 3. 2022 7:00 ráno.

Přihlašování týmů bude realizováno v IS FIT. Bude-li s přihlášením problém, lze jej provést e-mailem, který vedoucí týmu zašle na adresu dytrych@fit.vutbr.cz: Ostatní členové týmu budou uvedeni také v seznamu příjemců kopie zprávy, aby věděli, že jsou přihlášeni.

Struktura repozitáře

Kostra repozitáře ke stažení je k dispozici zde. Nezapomeňte ukázkové soubory nahradit svými - pokud se soubor bude shodovat s ukázkovým, bude se počítat jako kdyby nebyl odevzdán. Kapitoly dokumentace jsou rovněž ukázkové (nemusí být správně) - udělejte svoji dokumentaci podle přednášky.
mockup/
  *.png|jpg|svg|pdf
plan/
profiling/
  vystup.*
  zprava.txt|pdf
src/
  zdrojový kód a testy
  Makefile
  Doxyfile
  zdrojový kód pro profiling
debugging.png|jpg|pdf|txt
dokumentace.pdf
screenshot.png|jpg
skutecnost.txt
hodnoceni.txt
README.md|txt
.gitignore
.editorconfig

Soubor hodnoceni.txt

Soubor hodnoceni.txt bude obsahovat osobní ohodnocení jednotlivých členů týmu v rozsahu 0-300 % či 0-400 % (dle počtu členů týmu a dle aktivity člena týmu a jeho přínosu pro projekt). Součet všech osobních ohodnocení musí být max. stonásobek počtu členů týmu. Hodnocení musejí odsouhlasit všichni členové týmu. Soubor bude ve formátu (X je počet procent od 0 do 400):

xlogin01 X (skutečně řešená část projektu)
xlogin02 X (skutečně řešená část projektu)
xlogin03 X (skutečně řešená část projektu)
xlogin04 X (skutečně řešená část projektu)

Příklad:

xlogin01 100 (základ GUI a základní mat. operace)
xlogin02 100 (pokročilé mat. operace)
xlogin03 90 (profiling, instalátor)
xlogin04 110 (testy, dokumentace)

Pokud by student přerozdělením bodů přesáhl maximum za celý projekt, body se oříznou na maximum 52 bodů.

Tento soubor je zpracováván automaticky, nedodržení struktury může vést na hodnocení nula bodů.

Soubor README.md nebo README.txt

Soubor bude v patičce povinně obsahovat alespoň následující informace. V části “Prostředí” uveďte pouze řádky s vybranými prostředími, ve kterých je projekt plně funkční (při hodnocení bude náhodně vybráno jedno z uvedených prostředí).

Prostredi
---------

Ubuntu 64bit
Windows 64bit

Autori
------

Nazev tymu
- xlogin01 jmeno prijmeni 
- xlogin02 jmeno prijmeni 
- xlogin03 jmeno prijmeni 
- xlogin04 jmeno prijmeni 

Licence
-------

Tento program je poskytovan...

Odevzdání

Věnujte prosím pozornost postupu odevzdání a dodržujte názvy souborů a další stanovené podmínky. Pro desítky projektů není v našich silách za pomoci správce prohledávat domovské adresáře na serveru ivs (častá chyba z předchozích let je odevzdání na toto místo) a jiná umístění, kde by se mohly nacházet odevzdané soubory. Značnou komplikací jsou i nesprávné názvy složek apod. Při hodnocení budou využívány i automatické skripty.

Do 18. 3. 2022 7:00 ráno vedoucí týmu v IS FIT odevzdá předběžný plán projektu v souboru xlogin01_xlogin02_xlogin03_xlogin04_plan.txt. Soubor bude obsahovat:

Alternativně lze odevzdat archiv xlogin01_xlogin02_xlogin03_xlogin04_plan.zip, který bude obsahovat libovolný počet souborů xlogin01_xlogin02_xlogin03_xlogin04_plan* ("*" zastupuje libovolný počet libovolných znaků, tedy např. ".mpp" či "01.jpg"), přičemž plán zde může být vytvořený v MS Projectu či jiném programu (není-li daný program ve škole dostupný, je nutno odevzdat i exportovanou verzi v PDF či jpg).

Repozitář bude průběžně kontrolován vyučujícími/cvičícími, aby Vám bylo možné poskytnout zpětnou vazbu, zda jste jej využívali správným způsobem. Máte-li repozitář na serveru ivs.fit.vutbr.cz, vyučující se do něj dostanou bez problémů. Využijete-li github, gitlab či bitbucket, je třeba přidělit oprávnění pro uživatele ivskontrola (e-mail má ivs.kontrola@gmail.com, ale na tento e-mail prosím nic nezasílejte - byl vytvořen pouze pro účely vytvoření účtu na výše uvedených serverech). Při vytváření repozitáře na serveru merlin.fit.vutbr.cz je nutné k Vašim loginům přidat loginy všech cvičících: “dytrych, ibartl, iveigend, idolezal, ifajcik, imalik”.

Do 29. 4. 2022 7:00 ráno vedoucí týmu odevzdá: Zkontrolujte, zda repozitář obsahuje vše potřebné:

Struktura adresáře v odevzdávaném archivu

doc/
  vygenerovaná programová dokumentace
install/
  instalátory
repo/
  repozitář (musí být pracovní kopie i historie, tedy např. i složka .git)

Archiv se odevzdává do adresáře /ivs-proj2/odevzdane/xlogin01 (kde xlogin01 je login vedoucího týmu) na serveru ivs.fit.vutbr.cz. Odevzdání do jiného adresáře (např. do /home/xlogin01 či /home/xlogin01/ivs-proj2/...) bude značně penalizováno. Je-li vedoucí neaktivní, zvolte si včas nového a oznamte změnu cvičícím, aby mu mohl být vytvořen adresář pro odevzdání.

Do IS FIT uložíte archiv, který bude obsahovat

Každý člen týmu do 21. 5. 2022 7:00 ráno v IS FIT odevzdá soubor xloginNN_problemy.txt, který bude obsahovat seznam problémů, které podle daného člena týmu tým měl, včetně pravděpodobných příčin a navrhovaných řešení (co jste mohli udělat lépe). Pokud tým žádné problémy neměl, budou zde uvedeny pouze návrhy, co by bylo možné při příštím týmovém projektu řešit lépe. Povinně je nutné uvést nejméně 3 problémy či návrhy seřazené od nejdůležitějšího po nejméně důležitý. Zaměřte se při tom na následující oblasti:

Instalace u zákazníka

Instalace letos proběhnou potřetí, a to v reakci na problémy z předchozích let, kdy se asi 4 produkty z 82 cvičícím nepodařilo zprovoznit (většinou z důvodu, že bylo nutné provést nějaký nezdokumentovaný krok, nainstalovat nějakou závislost apod.) a u pár dalších se projevily problémy způsobené tím, že program očekával jinou verzi knihoven apod. Reklamace pak probíhaly po obhajobách na noteboocích za podmínek, které byly nekomfortní pro studenty i cvičící. Využijte proto možnost svůj produkt sami předvést a předejděte případným reklamacím. Dobře udělaný produkt lze nainstalovat a předvést během 10-15 minut.

Obhajoby

Hodnocení projektu

Části projektu hodnocené pro celý tým dohromady

Celý tým může získat 43 * počet členů týmu = 129 nebo 172 bodů.

Hodnocení každého člena týmu

Celkem může každý člen týmu za projekt získat 52b.

Dotazy a konzultace