Jdi na navigaci předmětu

Nabídky zadání SP

Vlastní zadání

Vlastní zadání je preferovannou formou, protože je možné uplatnit jednu práci ve více předmětech. Nebo dělat projekt, který bude prakticky využitelný – nechceme po vás tvořit akademická díla tzv. "do šuplíku". V každém případě je potřeba již rozmyšlené zadání konkretizovat a nechat si jej schválit cvičícím.

Inspirace

  • reimplementace zajímavého algoritmu / experimentu z vědeckého článku
  • úloha z oboru strojového učení (nutno vhoně omezit kvůli výpočetní náročnosti)
  • "mezioborová výpomoc" - v oborech mimo IT často lidé dělají nějakou více, či méně rutinní činnost i když by to mohl zvládnout program, protože je prostě nenapadne, že by to počítač/program dovedl. Nemohla by být vaše práce užitečná třeba v rodinné firmě?
    • automatické zpracování či kontrola mailů, faktur, objednávek
    • analýza logů (z výroby, ze serveru, z domácí automatizace)
    • analýza fotek z bezpečnostních kamer, výsledků měření/experimentů
  • multiplatformní ovládání externího HW (měřící přístroje apod.) – spousta zařízení má ovládací SW pouze pro OS Windows, ale v lepším případě má i nějaké standardizované API, nebo alespoň popsaný nízkoúrovňový protokol

GUI pro existující CLI aplikaci

Vytvořte multiplatformní GUI pro vhodnou existujicí CLI aplikaci. Cílem práce je poskytnout laickým uživatelům možnost využívat specializované programy, které mají pouze CLI. Není nutno podporovat zcela všechny možné přepínače a příkazy zvoleného programu, ale maximálně zpřijemnit použití nezkušeným uživatelům. To znamené především: odchytit všechny chyby a přívětivě je zobrazit uživateli (nabídnout např. nejpravděpodobnější správné parametry (zkuste třeba jak se chová CLI gitu, když zadáte neplatný příkaz), link na online výsledky vyhledávání dané chyby), v případě grafických/audio vstupů/výstupů zobrazit náhled či dát možnost zvuk přehrát.

Je žádoucí, aby GUI bylo použitelné minimálně na Linuxu a Windowsech (i Win 7, ideáně i archaických XP). Aplikace by měla mít minimálně 10 příkazů či parametrů a pracovat se soubory. Vhodný může být třeba generátor konfigurací pro komplexní apliace (sendmail, postfix, apod…​)

Příklady aplikací pro tvorbu GUI

O psaní GUI: https://docs.enthought.com/traitsui/tutorials/traits_ui_scientific_app.html

Web scraper (rámcové téma, nutno upřesnit)

Program, který bude například s využitím knihovny requests nebo frameworku https://scrapy.org dolovat data z webu a poskytovat je v agregované formě uživateli. Zadání se částečně překrývá se zadáním Vizualizace otevřených dat.

Inspirace:

  • Jak české dráhy pracují s nabízenou cenou jízdenek na vybraných tratích v závislosti na dni v týdnu/roce/dalších okolnostech.
  • Model vyprodanosti představení (divadlo, film, koncert) v závislosti na tématu/počasí/roční době.
  • Přehledy a tredny ve veřejných zakázkách https://www.uzsvm.cz/verejne-zakazky v korelaci s tím, kdo je získává.

Vizualizace otevřených dat (rámcové téma, nutno upřesnit)

Najděte si zdroj, například (a jakékoli jiné):

S využitím datových sad z otevřených zdrojů vizualizujte vhodnou formou v interaktivní webové aplikaci zvolené datasety. Součástí vizualizace by měla být i tabulka s prezentací zpracovaných dat a možnost exportu těchto dat do více formátů. Pro vizualizaci můžete použít například plot.ly Dash apod. Galerii s ukázkami vizualizací z Dashe naleznete zde: https://dash-gallery.plotly.host/Portal/.

Pokuste se upřesnit si zadání tak, aby výsledná vizualizace měla nějakou přidanou hodnotu. Přidanou hodnotou může být například propojení více datasetů a ukázání nebo naopak vyvrácení jejich vzájemné korelace.

Je možno využít i data dosud neveřejná, která si sami nasbíráte a předzpracujete. Příkladem může být měření teploty z vaší domácnosti. Zde je třeba upozornit, že pak je potřeba se semestrálkou poskytout i nějaký minimální funkční subset.

Příklad upřesněného zadání:

S využitím otevřených dat světové zdravotnické organizace (WHO) a národních epidemických dat příslušných orgánů jednotlivých států vizualizujte formou interaktivní webové aplikace postupné šíření koronaviru SARS-CoV-2. Součástí vizualizace bude i tabulka s prezentací zpracovaných dat a možnost exportu těchto dat. Pro vizualizaci využijte plot.ly Dash.

Hra v pyGletu / pyGame (rámcové téma, nutno upřesnit)

Úkolem je implementovat 2D počítačovou hru pomocí knihovny pyglet (https://pyglet.readthedocs.io/). Hra může být klonem nějaké existující známé hry (Arkanoid, Tetris, Pacman, …​) nebo i vlastní. Jediná nepovolená hra je asteroids, protože na ní existuje podrobný oficiální tutoriál na stránkách pyGletu. Pro grafiku hry lze použít vlastní tvorbu nebo volně dostupné assety (např. z https://opengameart.org/).

Tip: Můžete například naprogramovat řídící algoritmus hry had s cílem nahrát co nejlepší skóre, ideálně perfektní hru (had postupně vyplní celé herní pole). V průvodní zprávě můžete porovnat různé řídící algoritmy (genetické programování, reinforcement learning, A*, případně další). Herní situace by mohla být uložena v numpy poli.

U her bývá obtížnější testování (unit testy), takže je potřeba na to myslet a kód dostatečně členit do samostatně testovatelných jednotek.

Jak by mohla vypadat vizualizace: https://youtu.be/bIDCuC97Tgs (řešeno pomocí reinforcement learning).

Příklad upřesněného zadání:

Implementujte karetní hru Port Royal. Hra umožní hru až 8 hráčů po TCP/IP síti, umožní uživatelsky konfigurovat jména hráčů, bude si trvale pamatovat nejlepší výsledky, umožní rozehranou hru uložit a naopak ji později načíst a pokračovat v ní. Aplikace nedovolí hráčům provést neplatné herní akce (dovolí jen validní kroky).