Project

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)

comments powered by Disqus