Pavel Ježek - Ročníkový projekt/Bakalářká práce/Diplomová práce (2022)
Následující témata jsou vhodná na bakalářskou, případně diplomovou práci (nebojte se napsat e-mail, a po domluvě si o níže uvedených [ale i jiných - třeba nějaký váš vlastní nápad na zajímavou aplikaci, knihovnu, hru, apod. pro RP, potenciální bakalářku, nebo diplomku] tématech přijít popovídat - rád vám sdělím svojí představu, a případně můžeme téma i bez problémů upravit na míru):
Témata připravená ve spoluráci s firmou Microsoft:
-
Mutation testing for .NET project based on CLR Instrumentation Engine:
Create mutation testing for .NET project based on CLR Instrumentation Engine. Similar to
https://github.com/stryker-mutator/stryker-net (Mutation testing for .NET core and .NET framework). The goal is to scale on large code bases (like Roslyn) by analyzing and reusing parts of Stryker, while migrating Stryker backend-logic to CLR Instrumentation Engine for collection of code coverage of each test and for performing the mutations.
-
Coverage-guided fuzzing for .NET/C#:
Create coverage-guided fuzzing for .NET/C#. Fuzzing is used for discovering security bugs (crashes, memory leaks, hangs) in SW by randomly changing its input (binary or text). Coverage-guided fuzzing uses program instrumentation to generate "smarter" random inputs to discover security problems faster. Similar tools exist for other languages, e.g.
https://github.com/dvyukov/go-fuzz
-
WebTransport in .NET Core based on already existing HTTP/3 and QUIC implementations:
Prototype WebTransport in .NET Core based on already existing HTTP/3 and QUIC implementations. WebTransport is new networking protocol based on HTTP/3 and QUIC protocols, currently in draft stage
https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-02. It supports sending data both reliably and unreliably. It can be viewed as next generation of popular WebSockets protocol (which is based on HTTP 1.1 and HTTP/2 protocols).
-
WebAssembly networking running inside WASI sandbox environment:
Explore, design and prototype WebAssembly networking running inside WASI sandbox environment. WebAssembly is portable binary format, currently used primarily inside browser environments. WASI is system interface for WebAssembly virtual machines sandbox. WASI currently lacks any networking capabilities, although there are ongoing experiments on the internet that you can build upon.
-
.NET runtime analyzers and code fixers:
Implement several .NET runtime analyzers and code fixers. .NET runtime (Roslyn) analyzers inspect your C# or Visual Basic code for code quality and style issues. Code fixers offer you options to fix your code. List of analyzers and code fixers can be found here: https://github.com/dotnet/runtime/issues?q=is%3Aissue+is%3Aopen+analyzers+label%3Acode-analyzer
-
Rust bindings for .NET:
Design and prototype Rust bindings for .NET embedding API in MonoVM. Bindings allow .NET to interop with other runtimes (Rust in this case).
-
Port .NET trimming tool from Cecil API to System.Reflection.Metadata backend:
.NET trimming tool is repo https://github.com/dotnet/linker. The goal is to replace old-style Cecil APIs with .NET Core inbox System.Reflection.Metadata-based implementation. Tracking issue: https://github.com/dotnet/linker/issues/1997
Moje témata:
-
Populous-like hra v Unity [nebo jiná zajímavá hra]:
Implementace hry ve stylu Populous (https://en.wikipedia.org/wiki/Populous_(video_game)) v enginu Unity.
-
Obecná C# knihovna pro tweening nezávislá na frameworku:
Implementace knihovny dávající programátorům možnost "animací" a "přechodů" hodnot na .NET objektech, která by nebyla závislá na nějakém jednom konkrétním frameworku (např. nebude pouze pro engine Unity, apod.).
-
Multiplatformí hexeditor:
Rozšiřitelný hexeditor s přehledným UI, který bude použitelný na různých cílových platformách.
-
Stavebnicový simulátor I2C zařízení:
Implementace rozšiřitelného simulátoru vybraných I2C zařízení s vizualizací chování I2C sběrnice.
-
Rychlá XML serializace .NET objektů:
Serializační framework pro .NET využívající moderní možnosti .NET a C# pro efektivní serializaci a deserializaci objektů (podobně jako System.Text.Json pro JSON).
-
Nástroj pro konverzi zvuků z Microsoft Train Simulator nebo RailWorks do formátu pro knihovnu FMOD:
Implementace nástroje, který načte definice komplexních zvuků ve formátu pro Microsoft Train Simulator nebo ve formátu RailWorks, a předevede je do jiného formátu tak, aby byly snadno a co nejpřeněji přehratelné pomocí audio knihovny FMOD.
-
Nástroj pro podporu práce s railML (RailTopoModel) daty:
Implementace nástroje pro práci s daty popisujícími železniční infrastrukturu ve formátu railML.
-
WYSIWYG editor markdownu:
Implementace základní varianty WYSIWYG editor pro markdown, tj. možnost editací i ve "formátovaném výstupu".
Pavel Ježek - NSWI120 Principy počítačů (ZS 2017/2018)
Informace k předmětu nyní najdete na zvláštní stránce - viz http://d3s.mff.cuni.cz/teaching/principles_of_computers/.
Pavel Ježek - NPRG035 Jazyk C# a platforma .NET (ZS 2017/2018)
Informace k předmětu nyní najdete na zvláštní stránce - viz http://d3s.mff.cuni.cz/teaching/csharp_dotnet/.
Pavel Ježek - Ročníkový projekt/Bakalářká práce/Diplomová práce (2018)
Následující témata jsou vhodná na bakalářskou, případně diplomovou práci (nebojte se napsat e-mail, a po domluvě si o níže uvedených [ale i jiných - třeba nějaký váš vlastní nápad na potenciální bakalářku, apod.] tématech přijít popovídat - rád vám sdělím svojí představu, a případně můžeme téma i upravit na míru):
• Analyzátor USB paketů
• Podpora pro načítání modelů vlaků z Microsoft Train Simulator do Unity
• Podpora pro simulaci zvuku motorů do Unity
• Simulátor počítače (procesor 6502 nebo 8080, jednoduché sběrnice, jednoduché řadiče)
• Analyzátor PDF dokumentů
• Editor JSON/XML dokumentů
• Rychlá XML serializace .NET objektů
• Závody motokár ve stylu Mario Kart (ideálně v Unity) [nebo jiná zajímavá hra]
• Editor 2D animací (jednoduchá varianta Powerpointu se systémem animací pomocí klíčových snímků jako v 3D animačních nástrojích)
• Prohlížeč obrázků s podporou hierarchického anotování
• Editor fotorealistických budov
Pavel Ježek - NPRG038 Pokročilé programování pro .NET I (LS 2016/2017)
Informace k předmětu nyní najdete na zvláštní stránce - viz http://d3s.mff.cuni.cz/teaching/advanced_dotnet/.
Pavel Ježek - Ročníkový projekt/Bakalářká práce/Diplomová práce/SW Projekt (2017)
Následující témata jsou vhodná na bakalářskou, případně diplomovou práci (nebojte se napsat e-mail, a po domluvě si o níže uvedených [ale i jiných - třeba nějaký váš vlastní nápad na potenciální bakalářku, apod.] tématech přijít popovídat - rád vám sdělím svojí představu, a případně můžeme téma i upravit na míru):
• Editor 2D animací (jednoduchá varianta Powerpointu se systémem animací pomocí klíčových snímků jako v 3D animačních nástrojích)
• Simulátor elektrických obvodů
• Portabilní grafický editor elektrických a pneumatických obvodů (ideálně pro SkiaSharp)
• Prohlížeč obrázků s podporou hierarchického anotování
• Nástroj pro ukládání a správa výstřižků z webu
• Inteligentní PropertyPanel s vlastními editory hodnot pro WPF (případně Xamarin Forms)
• Integrované prostředí editoru pro "cokoliv" s podporou Undo (pro WPF)
• Skinovatelný okenní systém pro SkiaSharp
• Simulátor GTN - vizualizace vlakových grafikonů
• Reimplementace 2D hry Populous (případně pro mobilní zařízení)
• Reimplementace 2D hry Lemmings pro mobilní zařízení
• Editor behavior trees - umělá inteligence do her
• Editor fotorealistických budov
• 3D hra - závody motokár (ideálně pro UrhoSharp)
Pavel Ježek - NPRG057 Pokročilé programování pro .NET II (LS 2015/2016)
Informace k předmětu nyní najdete na zvláštní stránce - viz http://d3s.mff.cuni.cz/teaching/advanced_dotnet_ii/.
Pavel Ježek - Ročníkový projekt/Bakalářká práce/Diplomová práce/SW Projekt (2016)
Následující témata jsou vhodná na bakalářskou, případně diplomovou práci (nebojte se napsat e-mail, a po domluvě si o níže uvedených [ale i jiných - třeba nějaký váš vlastní nápad na potenciální bakalářku, apod.] tématech přijít popovídat - rád vám sdělím svojí představu, a případně můžeme téma i upravit na míru):
(zatím první nástřel seznamu, na dalších tématech ještě pracuji)
□ Karts - závodní hra (motokáry)
□ Vektorový grafický editor obrázků pro XAML (Drawing)
- Jednodušší varianta Expression Design
- Možnost kontroly generovaného XAML kódu (možnosti využítí zabudovaných XAML primitiv)
□ Prohlížeč obrázků s anotací jejich částí
- Klasický prohlížeč obrázků ala FastStone Image Viewer
- Moznost anotovat vyznačené části obrázků, spravovat databázi anotací, apod.
□ Hexa editor neomezeně velkých souborů
- Klasický textový editor s možností editace v hexa režimu - ale bez omezení velikosti editovaného souboru, tj. možnost editovat soubory i GB až TB velikosti
□ Simulátor elektrodispečinku s grafickým editorem schématického zapojení elektrické sítě
□ Editor/prohlížeč struktury souborového systému
- Podpora minimálně pro FAT, Minix/SysV FS (případně i ext2, apod.)
□ Ovladač pro Minix/System V FS pro Windows
□ Intuitivní 3D editor
- Tvorba a editace 3D objektů kreslením, podobně jako ve SketchUp
□ Editor fotorealistických textur
- Cílem práce je umožnit jednoduchou editaci a mapování fotorealistických textur – tj. možnost „přeložení“ obrázku (fotografie předlohy) přes 3D model v daném pohledu a následné automatické vložení správně namapovaných (zdeformovaných) obrazových dat do textury 3D modelu (podobně jako v Google SketchUp nebo Adobe Photoshop Extended).
- Možnost mapování fotografie z různých pohledů a rozdělení mapovaných textur do více vrstev.
- Základní možnosti úpravy textur namapovaných na objektu (tj. prolínání, postupná změna průhlednosti, roztažení, opakování textury, apod.)
- Ideálně jako rozšíření open-source 3D modelovacího programu Blender, nebo open-source 2D bitmapového editoru Gimp (vhodná volba je součástí řešení práce), případně je akceptovatelné i řešení ve formě samostatné aplikace.
□ Systém pro zjednodušení tvorby umělé inteligence ve hrách - Mark 2
□ Implementace podpory pro C# stored procedury v PostgreSQL
- Propojení nějaké implementace platformy .NET na databázový server PostgreSQL
- Případně včetně propojení s IDE Visual Studio
Pavel Ježek - Ročníkový projekt/Bakalářká práce/Diplomová práce/SW Projekt (2015)
Následující témata jsou vhodná na bakalářskou, případně diplomovou práci (nebojte se napsat e-mail, a po domluvě si o níže uvedených [ale i jiných] tématech přijít popovídat - rád vám sdělím svojí představu, a případně můžeme téma i upravit na míru):
✓ Implementace podpory pro C# stored procedury v PostgreSQL
- Propojení nějaké implementace platformy .NET na databázový server PostgreSQL
- Případně včetně propojení s IDE Visual Studio
✓ Systém pro zjednodušení tvorby umělé inteligence ve hrách - Mark 2
✗ (zamluveno) Simulátor elektrických obvodů - Mark 2
✗ (zamluveno) Engine pro hry typu Dungeon Master
- Klasická (skoro) 3D hra s pohybem ve 2D bludišti po celých dlaždicích.
- V práci bude třeba se soustředit na extrémně kvalitní objektový návrh pro možnost využití ve výuce.
✗ (zamluveno) Navigace pro strojvedoucí
- Palubní informační systém pro stojvedoucí s možností využití aktuální polohy pro informování strojvedoucího o objektech na trati.
- Implementace pro mobilní zařízení (ideálně Android nebo iOS).
- Potřeba důkladného otestování pro případnou možnost nasazení v reálném provozu.
✗ (zamluveno) Analýza a čtení tabulek v PDF dokumentech
- Konfigurovatelný nástroj pro dolování tabulkových dat z PDF dokumentů.
✗ (zamluveno) Magic Carpet
- Počítačová hra: létání na koberci s kouzly
✓ Simulátor pneumatických systémů
- Návrh simulátoru a editoru sítí propojených tlakových nádob, potrubí a akčních prvků (tlaková relé, apod.)
✓ Simulátor jízdy železničních vozidel
✓ Překladatel mezi dialekty SQL
- Analýza a návrh co nejuniverzálnějšího způsobu pro překlad SQL dotazů mezi jednotlivými dialekty SQL.
- Ideálně podpora minimálně pro Teradata a Oracle.
✓ Simulace a vizualizace hradlových sítí
✓ XML serializace
- Konfigurovatelná serializace libovolných grafů objektů do XML formátu.
✗ (zamluveno) Hra Dungeon Keeper
- Hráč se jako pán jeskyně snaží pomocí různých příšer chránit svůj dungeon před otravnými hrdiny.
✓ Platforma pro IDE
- Vytvoření základní architektury otevřeného systému pro tvorbu IDE (Integrated Development Environment) a "editorů".
✓ Simulátor GTN a EDD
- Rozšiřitelná simulace elektronických pomůcek výpravčích: GTN (Graficko-Technologická Nadstavba) a EDD (Elektronický Dopravní Deník)
- Přehledové info o GTN viz: http://spz.logout.cz/zabezpec/gtn.html
✓ IDE pro FreePascal
- Základní návrh moderního vývojového prostředí pro FreePascal (případně integrace FreePascal překladače do existující IDE platformy).
✓ CodEx 3 pro Mono/Linux
- Reimplementace systému CodEx se zahrnutím zkušeností z dlouhodobého používání systému CodEx 2.
Pavel Ježek - Ročníkový projekt/Bakalářká práce/Diplomová práce/SW Projekt (2014)
Následující témata jsou vhodná na bakalářskou, případně diplomovou práci (nebojte se napsat e-mail, a po domluvě si o níže uvedených [ale i jiných] tématech přijít popovídat - rád vám sdělím svojí představu, a případně můžeme téma i upravit na míru):
(již zaalokováno) Interaktivní merge
- Minimálně 2-cestné porovnávání a slévání textu
- Zaměřeno na maximální uživatelskou přívětivost
- Integrovatelné minimálně s TortoiseHg
(předběžně zaalokováno) Vylepšená podpora pro unit testování v .NETu
- Minimálně generování private accessorů
- Podpora pro Visual Studio nebo SharpDevelop
- Podpora pro více unit testovacích frameworků
(již zaalokováno) Editor disků
- Podpora minimálně pro FAT, ext2 nebo Minix/SysV FS
(již zaalokováno) Simulátor/vizualizátor PC
- Potenciálně velmi široké - zaměření třeba domluvit osobně
(již zaalokováno) Vizualizátor Windows driver/device stacku
- Vlastně vylepšený správce zařízení (spojený s WinObj a částmi WinDbg)
Ovladač pro Minix/System V FS pro Windows
Nějaké vhodné rozšíření SharpDevelop
(předběžně zaalokováno) Intuitivní 3D editor
- Tvorba a editace 3D objektů kreslením, podobně jako ve SketchUp
Editor fotorealistických textur
- Cílem práce je umožnit jednoduchou editaci a mapování fotorealistických textur – tj. možnost „přeložení“ obrázku (fotografie předlohy) přes 3D model v daném pohledu a následné automatické vložení správně namapovaných (zdeformovaných) obrazových dat do textury 3D modelu (podobně jako v Google SketchUp nebo Adobe Photoshop Extended).
- Možnost mapování fotografie z různých pohledů a rozdělení mapovaných textur do více vrstev.
- Základní možnosti úpravy textur namapovaných na objektu (tj. prolínání, postupná změna průhlednosti, roztažení, opakování textury, apod.)
- Ideálně jako rozšíření open-source 3D modelovacího programu Blender, nebo open-source 2D bitmapového editoru Gimp (vhodná volba je součástí řešení práce), případně je akceptovatelné i řešení ve formě samostatné aplikace.