Project #
As part of the course credit, students can implement any project in C#. The number of points depends on quality and effort invested.
Below are example projects:
1. Raytracer (Raytracing in One Weekend) #
Description: Implement the first book “Raytracing in One Weekend” in C#.
Important: Minimize memory allocations during rendering (choice: class or struct).
Welcome additions: Parallelizing loops, saving to different formats, implementing further parts of the book.
Points: approx. 4
2. CityBike - LINQ Data Analysis #
Description: Download data (e.g., from https://citibikenyc.com/system-data), load it, and perform at least 5 LINQ queries.
Welcome additions: Combine rental data with weather data.
Points: approx. 4 (depending on query complexity)
3. Backup Program #
Description: Implement the requirements of the OPS project, but use threads, tasks, or asynchronous programming instead of processes.
Points: approx. 4
4. Photo Organization Program #
Description: Monitor a folder (also recursively and in ZIP/TAR archives). Sort new photos by date and location. Read EXIF data, fetch location names from coordinates (e.g., Nominatim), and save in structure “year/month/day/” and “country/city”.
Points: approx. 4
5. Network Game #
Description: Create a network game of any genre.
Points: 4-12 (e.g., 4 pts for a turn-based console game, 8 pts for an agar.io clone in 2D)
Welcome additions: Use of a library for 2D/3D graphics rendering, physics engine.
6. Game in Godot or Unity #
Description: Create a game in the chosen engine, with C# as the scripting language.
Points: Depending on complexity 4-8
7. Raytracer + P/Invoke #
Description: Add a C API to a C++ Raytracer (you can use an existing implementation). In C#, create structure equivalents and import functions through P/Invoke. Define the scene on the C# side and call rendering by passing a progress callback (progress could be, e.g., render for X samples).
Points: approx. 8 (as part of a planned project)