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"). Stipendia jsou poskytována ze soukromých prostředků podporovatelů, mezi něž patří Nadace RSJ, která rozjezd celého programu podpořila a nadále je jeho významným partnerem.

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 2025 se uskuteční pátý 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) adresovaného organizačnímu týmu MSoC

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 19. 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ů

Mapa připojených zařízení v emulátoru MSIM

MSIM je simulátor jednoduchých počítačů s procesory MIPS a RISC-V. Cílem MSIMu není být rychlým simulátorem, ale především být předvídatelným prostředím pro výuku operačních systémů. I z tohoto důvodu je simulace procesoru velmi věrná, ale periferní zařízení jsou emulována v co nejjednodušší podobě.

Cílem projektu je naprogramovat emulaci nového pseudo-zařízení, které bude popisovat ostatní připojená zařízení v právě běžícím (simulovaném) stroji. Inspirací pro podobné zařízení je například PCI configuration space nebo (Open firmware) Device tree. Cílem není emulovat žádný z podobně komplexních standardů, ale nabídnout jednoduchý způsob jak detekovat připojená zařízení, který bude koncepčně odpovídat běžným praktikám současného hardwaru.

Požadované znalosti řešitele: C, Git, chápání konceptu paměťově mapovaných registrů (zařízení). Znalost MIPS nebo RISC-V architektury výhodou.

Odkazy: MSIMOpen firmware Device tree

Podpora zástupných znaků (wildcards) v HelenOSím shellu

HelenOS je mikrojádrový operační systém, kde jsou služby operačního systému poskytovány pomocí samostatných (a relativně malých) aplikací. HelenOS běží na několika různých architekturách (Intel, MIPS, ARM, ...) a často slouží jako platforma pro experimentování s návrhem operačního systému nebo jeho komponent.

Cílem projektu by bylo přidat základní podporu pro tzv. zástupné znaky v shellu. Tj. v případě, že uživatel bude chtít například vymazat všechny soubory s příponou `.txt`, bude moci napsat jen `rm *.txt` místo nutnosti vyjmenovat všechny soubory (jak je tomu dosud).

Požadované znalosti řešitele: Git, C. Znalost shellu výhodou.