Ročníkové projekty
Nabízím na MFF UK k vedení ročníkové projekty pro bakalářské
studenty informatiky. K mým zájmům patří UNIXové systémy,
některé oblasti umělé inteligence a high performance computing;
nejlépe nám společně půjdou projekty, které mají s jednou z těchto
oblastí alespoň něco společného. Preferuji projekty buď platformově
nezávislé nebo určené pro POSIXové platformy (třeba Linux).
Ve volbě jazyka jsem flexibilní, záleží na konkrétním tématu;
pro většinu projektů však doporučuji Python nebo C.
Při vývoji software kladu důraz na čistý, modulární návrh
a/nebo dobře definované API. Nebazíruji na zbytečně upovídané
dokumentaci, zato se domnívám, že výsledky akademické práce
je vhodné uvolnit do světa pod otevřenou licencí.
Netrvám na žádných tvrdých termínech, dokud se s nimi vyrovná
i studijní oddělení – budete-li Vy se trpělivě připomínat,
když Vám zrovna zapomenu odpovědět na mail.
Máte-li zájem, napište mi na pasky@ucw.cz
;
evolučně stabilní strategií je do předmětu zprávy napsat
[rp]
.
Nápady
- Víceméně cokoliv týkající se zpracování přirozeného jazyka s důrazem na sémantiku --- extrakce informací z textu, odpovídání na dotazy a inteligentní asistenti, hluboké neuronové modely, dialogové systémy, práce s nestrukturovanými daty
- Víceméně cokoliv týkající se deskové hry Go, co ještě nikdo (dobře či volně přístupně) nenaprogramoval:
- Neohraničený řešič tsumego – již ledaskdo naprogramoval exaktní řešítka problémů života a smrti, která dostanou na vstupu pouze problém a najdou jeho řešení. Třeba při analýze partie před sebou však máme celou desku a zajímá-li nás osud určité skupinky, nemůžeme se omezit na jasně ohraničenou oblast. Uvolníme-li však požadavky na přesnost řešení, šlo by jistě napsat program rychle řešící i takovou situaci a našel by v počítačovém Go širší uplatnění.
- Neuronová síť hrající Go – inspirovaná Google AlphaGo
- Chytřejší Monte Carlo simulace v Go programech
Většina z témat výše má naději pokračovat i zajímavou bakalářskou prací.
Hledáte-li standalone bakalářku, některé z témat lze naopak zúžit. Dále by byla velmi užitečná bakalářka např. na téma:
- Eyetracker – interdisciplinární skupina na UK provádí psychologické experimenty a potřebuje vědět, kam na obrazovku se uživatel dívá. Je hotový software (C++), který zařizuje kalibraci a sběr dat tak, jak je potřeba, bylo by však třeba změnit jeho backend tak, aby používal jednodušší hardware a rozumnější detekci oka. Hlavní pointou bakalářky je rešerše a srovnání publikovaných metod a technologií eyetrackingu (+ headtrackingu) a stávajících otevřených implementací. Rešerše by měla být završena zakomponováním vhodného algoritmu/knihovny do stávajícího software (nemělo by jít o příliš mnoho programování).
Archiv projektů
- Daniel Lovasko: Pokročilý gitk/blame (nedokončeno) – read-only uživatelské rozhraní soustředící se na nevyužitý potenciál sledování obsahu v kontextu historie. Vizuálně maximálně názorné "blame" zobrazení, select-and-click použití pickaxe a grepu, vizualizace pohybu kódu napříč soubory, atd. Jako výchozí bod můžete a nemusíte použít stařičký prototyp giddy.
- Tomáš Musil: Go partie z fotek (bakalářka obhájena za 1) – nástroj, který na vstupu dostane fotografii desky s rozehranou partií hry Go, sám rozpozná její geometrii a co nejspolehlivěji vygeneruje vhodný popis rozložení kamenů. Dostane-li sérii fotek po každém tahu, vygeneruje záznam partie ve formátu SGF.
- Dan Stahr: Obarvené Bitcoiny (bakalářka obhájena) – jeden konkrétnější aktuální problém v oblasti Bitcoinů je sledování tzv. obarvených bitcoinů; ty se mohou používat jako tokeny pro reálné či reálnější komodity, např. akcie, pozemky, auta... Je třeba z grafu transakcí v blockchainu efektivně spočítat, kolik bitcoinů na dané adrese je obarvených, tedy kolik jich pochází z dané adresy resp. z dané transakce. Měli bychom si rozmyslet jak teoretickou stránku věci, tak napsat a zběžně zoptimalizovat praktickou proof-of-concept implementaci.
- Tomáš Filípek: Save the World (bakalářka obhájena za 1) – zálohovací program, kterému se nebudete bát svěřit svá data. Klient-server architektura, chytré udržování historie (s ohledem na misto, které je na zálohy k dispozici), komprese, vyhledávání stejných a podobných souborů. O spolehlivost jde ovšem na prvním místě. Inspirací může být například Git a jeho systém packů nebo algoritmy používané programem rsync.
- Petr Votava: Server pro deskové hry (nedokončeno) – otevřený, uživatelsky přívětivý systém pro síťovou hru deskové hry Go (nebo obecnější třídy deskových her). Projekt by měl pokrývat základní featury serveru KGS – možnost hraní (herní výzvy, různé velikosti desky, časové omezení) a společenské prostředí (uživatelské profily, místnosti, soukromý chat, kibitz). Návrh by měl umožňovat rozšíření o další vlastnosti (review odehraných her, silové třídy, ...). Server by měl podporovat nějaký existující nebo dobře dokumentovaný vlastní protokol, součástí by měl být alespoň velmi minimalistický klient (či minimální úpravy existujícího klienta). Pokračuje Bc. prací.
Odkazy