Matfyz Summer of Code (MSoC) je program určený studentům vyšších ročníků středních škol, který nabízí možnost podílet se na vývoji zajímavého software v rámci projektů běžících na informatické sekci Matfyzu (Matematicko-fyzikální fakulty Univerzity Karlovy).

Vybraní studenti se během letních měsíců (červen - srpen) aktivně zapojí do vývoje software formou "vzdálené brigády" pod vedením zaměstnance fakulty, získají nějaké zkušenosti s prací na rozsáhlejším software a novými technologiemi, a navíc poznají Matfyz zevnitř.

Úspěšní řešitelé na konci projektu také získají odměnu ve formě stipendia (v maximální výši 30 tisíc korun). Tato finanční odměna má za hlavní cíl umožnit studentům, aby mohli věnovat dostatek času práci na řešení projektu (ve smyslu motta "flip bits not burgers").

Všechny dotazy na program MSoC, pravidla a vypsané projekty, zasílejte prosím na emailovou adresu msoc@d3s.mff.cuni.cz. Aktuální seznam nabízených projektů je k dispozici zde ve spodní části této webové stránky.

Organizace - základní pravidla a časový přehled

V létě roku 2021 se uskuteční druhý ročník programu MSoC.

Zájemci se mohou přihlásit zasláním všech potřebných informací a dokumentů na emailovou adresu msoc@d3s.mff.cuni.cz nejpozději do 30. dubna.

Přihláška musí obsahovat zejména následující:

  • zvolené téma projektu z nabídky uvedené zde na této webové stránce
  • jméno a příjmení studenta
  • název a adresa střední školy
  • potvrzení o studiu v elektronické formě (podepsané zástupcem školy, naskenovaný výtisk nebo fotka)
  • popis dosavadních programátorských zkušeností
  • vyjádření učitele na příslušné střední škole například ve formě doporučujícího dopisu (podepsané, naskenovaný výtisk nebo fotka)

Doporučujeme zájemcům také přiložit zdrojáky několika reprezentativních programů, které doposud vytvořili.

Odesláním přihlášky udělujete souhlas se zpracováním poskytnutých informací a osobních údajů výhradně pro účely organizace programu MSoC.

Součástí procesu hodnocení jednotlivých přihlášek může být také vstupní "test" pro ověření technických znalostí a programátorských schopností uchazeče.

Výsledné rozhodnutí o přijetí do aktuálního kola programu MSoC bude každému zájemci oznámeno nejpozději do 17. května.

Průběh řešení každého projektu bude zahrnovat pravidelné konzultace s vedoucím projektu. Nabízíme také možnost osobní návštěvy Matfyzu, kde především v úvodní fázi řešení projektu to může být vhodná příležitost ke určení jednotlivých dílčích úloh a vytvoření hrubého plánu činnosti na celé léto. Další návštěva může proběhnout na konci projektu za účelem předvedení výsledku.

Očekávaný celkový průběh každého projektu je ten, že v červnu daného roku se řešitel důkladně seznámí se technologiemi nezbytnými pro úspěšné řešení, zatímco jádro programátorských prací bude rozvrženo na letní prázdniny (červenec, srpen).

Seznam projektů

Aplikace pro tvorbu výukových materiálů na středních školách nad databází Wikidata

Vytvořte webovou nebo mobilní aplikaci, která umožní učiteli na střední škole připravit interaktivní výukový materiál v podobě časové osy nebo geografické mapy, na které zobrazí vybranou množinu objektů. Takovou množinou objektů mohou být např. vědecké objevy v chemii, obrazy namalované vybraným malířem, literární díla autorů českého romantismu, období vlády evropských králů nebo přestupy fotbalistů mezi fotbalovými kluby. Učitel bude mít možnost uživatelsky přívětivým způsobem definovat množinu objektů, kterou chce zobrazit, a poté zvolí způsob zobrazení. K dispozici bude mít dva způsoby zobrazení - na mapovém podkladu a na časové ose. Aby bylo možné objekty zobrazit na mapě, musejí mít mezi svými atributy určení místa v podobě GPS souřadnic. Pro zobrazení v časové ose musí mít objekty časový údaj, nebo dva časové údaje od - do. Objekty budou zobrazovány se svými názvy, popisky a obrázky. Vytvořený výukový materiál bude mít učitel možnost zveřejnit a sdílet tak se studenty. Datovým zdrojem bude databáze Wikidata. S databází Wikidata je nutno pracovat prostřednictvím dotazovacího jazyka SPARQL. Abyste se nemuseli tento jazyk učit, budou vám pro práci poskytnuty šablony potřebných SPARQL dotazů, které si budete parametrizovat.

Aplikace pro vizualizaci otevřených dat

Obce publikují řadu dat např. z oblasti dopravy nebo turistiky jako volně dostupná otevřená data. Aby se dala data snadno použít v různých aplikacích, pracuje Ministerstvo vnitra na standardech, které mají ujednotit způsob poskytování stejného typu dat napříč obcemi. Existuje tak např. standard pro turistická místa. Dle evropské legislativy o svobodném přístupu k informacím těmto standardům říkáme otevřené formální normy. Standardy vydané Ministerstvem vnitra jsou dostupné na doméně https://ofn.gov.cz. Vaším úkolem je vybrat si jednu nebo více ze zde uvedených norem a pro ně vytvořit aplikaci, která data prohledává, vizualizuje nebo nad nimi nabízí jinou vámi vymyšlenou funkcionalitu. V současnosti probíhá na Ministerstvu vnitra pilotní projekt s 12 obcemi, které data podle norem budou publikovat. V optimistickém scénáři budete pracovat s těmito daty. Pokud by se obcím data publikovat ještě nepodařilo, budou vám nabídnuta testovací data.

Infrastruktura pro strojové učení nad zdrojáky programů

Důležitou součástí procesu vývoje a udržování každé větši aplikace je hledání chyb ve zdrojovém kódu. V poslední době se také v této oblasti začínají více prosazovat metody strojového učení. Cílem tohoto projektu je příprava nezbytné infrastruktury pro strojové učení nad velkými kolekcemi zdrojáků. Dílčí úlohy zahrnují (1) stahování zdrojáků vybraných open-source programů z veřejných repozitářů, jako třeba github.com a gitlab.com, a to včetně stahování jednotlivých revizí, (2) vyhledávání relevantních programů na základě různých atributů jako "topics" nebo programovacího jazyka, (3) vytvoření skriptů na automatické spouštění programů za účelem generování dalších vstupních dat pro strojové učení (logy ze běhu těch programů, jejich výstup), a nakonec (4) vytvoření skriptů pro automatizaci trénovací fáze vybraných algoritmů založených na strojovém učení. Vhodný programovací jazyk na řešení tohoto projektu je například Python.
Návrh samotného trénovacího procesu automatizovaného v rámci úlohy 4, stejně jako implementace předzpracování vstupních dat pro strojové učení, nebudou součástí tohoto projektu.

Aplikace neuronových sítí pro predikci aktivních míst proteinů

Funkce proteinů je odvozena od jejich interakce s ostatními molekulami. Velice důležitý typ vazby je mezi proteiny a malými molekulami, tzv. ligandy. Příkladem takových molekul jsou léčiva, kdy naprostá většina současných lěčiv jsou právě malé molekuly, které inhibují funkci některého proteinu tím, že se váží do jeho aktivního místa a zabraňují tak šíření informace. Detekce těchto aktivních míst je ovšem experimentálně velice náročná a proto existují počítačové metody pro predikci aktivních míst. Jedna z nejlepších metod pro predikci protein-ligand aktivních míst z proteinové struktury, pojmenovaná P2Rank, byla vyvinuta na MFF UK (www.prankweb.cz). P2Rank vyžaduje pro svoje fungování známou 3D strukturu proteinu. V mnoha případech je ovšem známa jenom sekvence, tj. posloupnost aminokyselin, které pak tvoří konkrétní 3D strukturu. Cílem projektu bude aplikovat hluboké konvoluční neuronové sítě na úkol predikce aktivních míst ze sekvence. Součástí projektu bude vyhodnocení vlivu různých kódovaní vlastností aminokyselin (fyzikálně chemické charakteristiky, Bio Embeddings, ...) a architektury neuronové sítě (1DCNN, 2DCNN, …) na schopnost predikce a srovnání tohoto přístupu se strukturní predikcí.