BSc Visual Computing and Game Engineering
PCG - Programming in C# for Games
Einführung in die Programmierung mit C# und .NET. Von den Grundlagen bis zu Fragen von Speicher, Laufzeit und Softwarearchitektur
Kurzüberblick
Das Modul PCG vermittelt C# von den Grundlagen bis zu Speicher-, Laufzeit- und Architekturthemen. Die Studierenden arbeiten mit Visual Studio, setzen objektorientierte, testbare Software um und ordnen das Ausführungsmodell von .NET fachlich ein. Damit wird eine Grundlage für Anwendungs- und Bibliotheksentwicklung sowie für wartbare, nachvollziehbar dokumentierte Projekte gelegt. Im Block PCG5 werden Echtzeit-Anwendungen vertieft behandelt, unter anderem interaktive Systeme und Computerspiele: Ressourcenbudgets, typische Schleifenstrukturen und datenorientierte Ansätze im Echtzeitkontext.
| Modulcode | PCG |
| Fachbereich | Visual Computing and Game Engineering |
| ECTS / Aufwand | 5 ECTS / ca. 150 Arbeitsstunden |
| Niveau | Basic (Kernmodul) |
| Unterrichtssprache | Deutsch (Fachliteratur teils Englisch) |
| Studiengang | BSc Visual Computing and Game Engineering |
Voraussetzungen
Das Modul richtet sich an Studierende des Bachelorstudiengangs Visual Computing and Game Engineering. Vorkenntnisse in der Programmierung werden nicht vorausgesetzt. Formale C#-Kenntnisse sind ebenfalls nicht erforderlich. Das erworbene Wissen bildet eine Basis für Softwarearchitektur und Anwendungsentwicklung mit .NET; der Schwerpunkt PCG5 bereitet insbesondere auf Echtzeit- und spielnahe Vertiefungen im Studienverlauf vor.
Abgangskompetenzen
Nach erfolgreichem Abschluss des Moduls können die Studierenden insbesondere:
- C# und Visual Studio: Konsolenanwendungen entwerfen, implementieren, debuggen und mit elementaren Tests absichern; ausführbaren, nachvollziehbar dokumentierten Code erstellen.
- Objektorientierung und Qualität: Klassen, Vererbung, Komposition, Events und Delegates für typische Software-Szenarien modellieren; Prinzipien wie SOLID, Lesbarkeit und klare Verantwortlichkeiten anwenden.
- .NET-Laufzeit: CLR, CIL, Assemblies, JIT und AOT erklären; managed und unmanaged Code sowie Speicher- und Sicherheitsaspekte einordnen.
- Projekte und Schnittstellen: Konsolen-, GUI- und Bibliotheksprojekte strukturieren; JSON- und XML-Serialisierung nutzen; bei Bedarf P/Invoke für native Bibliotheken einsetzen und Schnittstellen dokumentieren.
- Performance und Echtzeit (Schwerpunkt PCG5): Stack, Heap, Allokationen in Echtzeitschleifen, Garbage Collection sowie Kosten von Abstraktion und Indirektion analysieren; Wartbarkeit und Laufzeiteffizienz begründet gegeneinander abwägen – mit Bezug zu Anwendungen mit festem Zeitraster, unter anderem Spielen.
- Data-Oriented Design (Schwerpunkt PCG5): AoS und SoA, Datenlokalität, Cache und SIMD einordnen; den Bezug zu datenorientierten Architekturen in Echtzeit-Anwendungen (z. B. ECS in Game-Engines) beschreiben.
Struktur
Das Modul gliedert sich in fünf Submodule, die inhaltlich fünf Blöcken à 30 Stunden Arbeitsaufwand entsprechen.
| Block | Schwerpunkt | ECTS |
| PCG1 | Programmiergrundlagen, C#-Basics, Visual Studio, Debugging, Konsole und Dateien | 1 |
| PCG2 | Objektorientierung, Clean Code, SOLID, Unit Testing (NUnit/MSTest) | 1 |
| PCG3 | .NET-Laufzeit: VM, CLR, JIT/AOT, managed Code, Speicher und Sicherheit | 1 |
| PCG4 | Projekttypen, Build und Referenzen, Serialisierung, P/Invoke, reflektierter Werkzeugeinsatz | 1 |
| PCG5 | Speicher und GC im Echtzeitkontext (hier u. a. Spiele und interaktive Anwendungen), Abstraktionskosten, Clean Code und Performance, DOD und ECS-Bezug | 1 |
Leistungsnachweise
Zur Semesterarbeit gehört eine kurze mündliche oder schriftliche Validierung (z. B. ca. 10–15 Minuten) zum Nachweis von Verständnis und Eigenleistung. Einzelheiten und zulässige Hilfsmittel ergeben sich aus der Ausschreibung in Moodle und aus dem Modulplan.
| Prüfung | Gewicht | Form |
| Schriftliche Modulprüfung | 80 % | 120 Minuten, Prüfungsperiode FFHS; Open Book (Papier oder offline PDF, ohne Netzwerk, ohne KI) |
| Semesterarbeit | 20 % | Semesterbegleitend; Analyse, Konzept oder dokumentierte Implementierung gemäss Ausschreibung |
Richtlinien zur Nutzung von KI im Modul
Lernphase: Die Nutzung von KI-gestützten Werkzeugen ist im Rahmen der Kursregeln erlaubt. Dazu gehören z. B. Recherche, Refactoring-Vorschläge, Unterstützung bei Fehlermeldungen, Erstellung von Boilerplate-Code oder Dokumentationsentwürfe. Voraussetzung ist, dass die Nutzung transparent offengelegt wird.
Prüfung: Die schriftliche Modulprüfung erfolgt ohne den Einsatz von KI. Ziel ist es, nachzuweisen, dass die behandelten Konzepte eigenständig verstanden, erklärt und angewendet werden können.
Lehrmittel
- Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008, ISBN 978-0-13-235088-4 (Verfügbar über die Bibliothek oder Buchhandel; Hinweise in Moodle)
- Dezidiertes Online-Skript zum Modul (im Moodle-Kurs; Inhalt und Version siehe dort)
Verantwortlichkeiten
Hinweis: Diese Übersicht dient der Information und Orientierung. Massgeblich sind die im Modulplan und in Moodle veröffentlichten Regeln und Angaben.


