Einführung
Wir lernen C# in Visual Studio. Wir beschäftigen uns mit Variablen, Schleifen, Methoden und bedingten Anweisungen. Wir erstellen konsolen- und fensterbasierte Programme. Mit ChatGPT, Gemini und GitHub Copilot entwerfen wir ein KI-Ratespiel, einen Kochberater und einen NPC-Chat und generieren Grafiken in ASCII-Kunst.
Kursprogramm
1Lektion 1. Einführung in C#
Das Ziel dieser Lektion ist es, das erste Programm in C# zu erstellen und sich mit der Visual Studio Code-Umgebung vertraut zu machen.
2Lektion 2. Variablen und Konstanten
Das Ziel dieser Lektion ist es, das Konzept von Variablen und Konstanten vorzustellen und die am häufigsten verwendeten Variablentypen zu zeigen.
3Lektion 3. Mathematische Operationen
Das Ziel dieser Lektion ist es, die am häufigsten verwendeten mathematischen Operationen vorzustellen.
4Lektion 4. Logische Operatoren und Typumwandlung
Das Ziel dieser Lektion ist es, Logik im Zusammenhang mit Mathematik und Programmierung vorzustellen. Wir lernen den logischen Typ und Operatoren kennen, die logisches Denken ermöglichen.
5Lektion 5. Die Programmierumgebung kennenlernen
Das Ziel dieser Lektion ist es, die Visual Studio Code-Umgebung besser kennenzulernen, häufige Fehler zu erkennen und zu beheben und GitHub Copilot in den Editor zu integrieren.
6Lektion 6. Bedingte Anweisungen
Das Ziel dieser Lektion ist es, bedingte Anweisungen vorzustellen. Wir werden lernen, wie sie funktionieren, und Beispiele für ihre Anwendung sehen.
7Lektion 7. Switch und Enum
Das Ziel dieser Lektion ist es, die switch-Anweisung vorzustellen. Wir werden eine Alternative zur if-Anweisung kennenlernen. Außerdem werden wir entdecken, was ein Aufzählungstyp – enum – ist.
8Lektion 8. Best Practices der Programmierung
Das Ziel der Unterrichtsstunde ist es, gute Programmierpraktiken in C# einzuführen, mit besonderem Schwerpunkt auf dem Debugging von Code. Die Schülerinnen und Schüler lernen, Breakpoints zu verwenden, die Programmausführung Schritt für Schritt zu analysieren sowie Fehler im Code zu erkennen und zu beheben.
9Lektion 9. Schleifen
Das Ziel der Unterrichtsstunde ist es, den Mechanismus von Schleifen zu verstehen und die Fähigkeit zu erwerben, zwei Arten von Schleifen in C# praktisch anzuwenden – while und for.
10Lektion 10. Arrays
Das Ziel der Unterrichtsstunde ist es, etwas über Arrays zu lernen.
11Lektion 11. C# Kompetenz-Check – Junior
Das Ziel der Unterrichtsstunde ist es, das bisher erworbene Wissen zu wiederholen und zu festigen. Die Schülerinnen und Schüler haben die Möglichkeit, sich Programmierherausforderungen zu stellen und um Punkte zu konkurrieren.
12Lektion 12. Methoden
Das Ziel der Unterrichtsstunde ist es, etwas über Methoden zu lernen, die es ermöglichen, den Code in Teile zu gliedern und seine Lesbarkeit zu verbessern.
13Lektion 13. Listen
Das Ziel der Unterrichtsstunde ist es, Arrays besser zu verstehen und etwas über Listen zu lernen.
14Lektion 14. Ratespiel
Ziel dieser Unterrichtsstunde ist es, die Kenntnisse über Methoden und Listen zu festigen.
15Lektion 15. Datenstrukturen
Ziel dieser Lektion ist es, neue Datenstrukturen kennenzulernen, mit denen sich einfache Spielmechaniken aus beliebten Spielen umsetzen lassen.
16Lektion 16. Chatbot mit einem NPC
Ziel dieser Lektion ist es, zu lernen, wie man einen einfachen Chatbot erstellt, und die Grundlagen der natürlichen Sprachverarbeitung (NLP) zu verstehen.
17Lektion 17. Einführung in die objektorientierte Programmierung
Das Ziel dieser Lektion ist es, in die objektorientierte Programmierung in C# einzuführen.
18Lektion 18. Objektorientierte Programmierung in der Praxis
In dieser Lektion lernen die Schüler die Paradigmen der objektorientierten Programmierung kennen: Abstraktion, Vererbung und Polymorphismus. Wir werden die Logik für Spielhelden entwerfen, indem wir Charaktertypen mit unterschiedlichen Fähigkeiten mithilfe von Objekten definieren.
19Lektion 19. Vektoren und 2D-Raum
Das Ziel dieser Lektion ist es, alle Kenntnisse der objektorientierten Programmierung in der Praxis anzuwenden, indem ein vollständiges RPG-Spielprojekt erstellt und ein Ökosystem-Simulationssystem analysiert wird.
20Lektion 20: Einführung in OOP
Ziel der Lektion ist es, sich mit grundlegenden Themen, dem Konzept der objektorientierten Programmierung und der Arbeit im Solution Explorer vertraut zu machen.
21Lektion 21: Vererbung (Teil 1)
Ziel der Lektion ist es, das Wissen über objektorientierte Programmierung zu vertiefen. Themen wie Vererbung, Methodenüberschreibung und statische Elemente in der Programmierung werden erläutert.
22Lektion 22: Vererbung (Teil 2), statische Elemente, Listen
Ziel dieser Lektion ist es, die Grundlagen der objektorientierten Programmierung zu wiederholen und zu festigen und Elemente wie Methodenüberladung, foreach Schleife und Listen kennenzulernen.
23Lektion 23: OOP-Wiederholung, Rollenspiel
Ziel der Lektion ist die Wiederholung und Vertiefung des Stoffes aus den Grundlagen der objektorientierten Programmierung.
24Lektion 24: Einführung in Raylib
Ziel der Lektion ist es, die Teilnehmer mit der Installation und Konfiguration von Projekten mit Raylib vertraut zu machen, und zwar anhand der Umsetzung eines Projekts mit einem fallenden Ball.
25Lektion 25: Snake (Teil 1)
Ziel dieser Lektion ist es, mit dem Aufbau des beliebten Snake-Spiels zu beginnen. Wir entwickeln die grundlegenden Mechanismen des Spiels, die Bewegung der Schlange, die Erzeugung von Nahrung und die Behandlung von Kollisionen.
26Lektion 26: Snake (Teil 2)
Ziel der Lektion ist es, die Arbeit an der Erstellung des beliebten Snake-Spiels fortzusetzen.
27Lektion 27: Flappy Bird (Teil 1)
Ziel der Lektion ist es, mit der Arbeit an einem Flappy Bird-Spiel zu beginnen. Die Teilnehmer lernen, wie man die Bewegungen der Figur steuert, Hindernisse erzeugt und Punkte zählt, um ein voll funktionierendes Spiel zu erstellen.
28Lektion 28: Flappy Bird (Teil 2)
Ziel der Lektion ist es, das Flappy Bird-Spiel weiter zu entwickeln.
29Lektion 29: Eigenständiges Arbeiten
Ziel der Lektion ist es, das Wissen aus den vorangegangenen Lektionen beim Lösen von eigenständigen Aufgaben anzuwenden.
30Lektion 30: Space Invaders (Teil 1)
Ziel der Lektion ist es, mit der Arbeit an einem Space Invaders-Spiel zu beginnen.
31Lektion 31: Space Invaders (Teil 2)
Ziel dieser Lektion ist es, die Arbeit am Space Invaders-Spiel fortzusetzen. In diesem Teil beschäftigen wir uns mit dem Hinzufügen von außerirdischen Raumschiffen, ihren Bewegungen und Kollisionen mit dem Spieler und Geschossen.
32Lektion 32: Pong
Ziel der Lektion ist es, zu lernen, wie man mit dem Code von anderen arbeitet und ein Pong-Spielprojekt zu korrigieren.
33Lektion 33: Das Spiel des Lebens
In diesem Unterricht bereiten wir unsere eigene Implementierung eines Spiels des Lebens vor. Dabei handelt es sich um eine Simulation, bei der es keinen typischen Spieler gibt und der einzige Einfluss auf das Spiel in der Festlegung der Anfangsbedingungen besteht. Die Simulation beinhaltet Zellen, die sich weiterentwickeln und verschiedene Strukturen bilden.
34Lektion 34: Das Spiel des Lebens (Fortsetzung)
In diesem Unterricht entwickeln wir unser Spiel des Lebens weiter. Wir verbessern die Leistung des Programms und fügen verschiedene Möglichkeiten zur Ausführung der Simulation hinzu. Dies ermöglicht uns, die Leistung eines zuvor vorbereiteten Organismus zu testen.
35Lektion 35: Methoden von Datenspeicherung
Ziel dieser Lektion ist es, die Speicherung von Daten in C# zu besprechen. Die Konzepte von Records, Dictionaries, Queues und Sets werden vorgestellt.
36Lektion 36: Datenbanken in C#
Ziel dieser Lektion ist es, das Thema Datenbanken und die Ausführung von SQL-Befehlen mit der Programmiersprache C# zu behandeln. Dieses Wissen wird bei der späteren Entwicklung einer Webanwendung eingesetzt.
37Lektion 37: Datenbanken in C# (Teil 2)
Ziel dieser Lektion ist es, das Thema Datenbanken in C# zu vertiefen. Dieses Wissen wird später bei der Entwicklung einer Webanwendung eingesetzt.
38Lektion 38: LINQ - Sprachintegrierte Abfrage
Ziel dieser Lektion ist es, LINQ in der Programmiersprache C# zu besprechen. Wir lernen auch neue Operationen kennen, die zum Abrufen von Elementen aus der Datenbank durchgeführt werden können.
39Lektion 39: Tests
Ziel der Lektion ist es, am Beispiel von Unit- und Integrationstests zu erklären, wie Tests in der Programmierung geschrieben werden.
40Lektion 40: LeetCode und HackerRank
Ziel der Lektion ist es, die Seiten mit den Programmieraufgaben zu besprechen und diese Aufgaben gemeinsam zu lösen.
41Lektion 41: LeetCode und HackerRank (Teil 2)
Weitere Durchführung von Aufgaben. Demonstration und gemeinsame Durchführung von Aufgaben, die bei Vorstellungsgesprächen in Unternehmen auftreten können.
42Lektion 42: Schnittstellen und abstrakte Klassen
Ziel dieser Lektion ist die Einführung in die Programmiersprache JavaScript. Es werden die grundlegenden Konzepte und Befehle gezeigt.
43 Lektion 43: Singleton
Ziel dieser Lektion ist es, die Programmiersprache JavaScript im Detail zu besprechen. Fortgeschrittene Befehle werden anhand von Beispielen gezeigt.
44Lektion 44: Lesen von Daten aus Dateien
Ziel dieser Lektion ist es, die Grundlagen des Angular-Frameworks zu vermitteln. Es werden die Hauptelemente der Programmierung mit Angular gezeigt.
45Lektion 45: Künstliche Intelligenz in C#, ML.NET – Überblick Teil 1
Ziel dieser Lektion ist es, die fortgeschrittenen Elemente des Angular-Frameworks zu besprechen. Es werden die Konzepte von Formularen und Services vorgestellt.
46Lektion 46: Künstliche Intelligenz in C#, ML.NET – Überblick Teil 2
Ziel der Lektion ist es, eine vereinfachte Version einer Social-Networking-Site zu programmieren, auf der du dein eigenes Konto anlegen, dich anmelden und eine Liste der verfügbaren Benutzer anzeigen kannst.
47Lektion 47: Gigantbook (Teil 2)
Ziel der Lektion ist es, unser soziales Netzwerk mit zusätzlichen Funktionen weiterzuentwickeln. Wir verwenden Elemente der künstlichen Intelligenz in unserem Projekt.
48Lektion 48: GiantBook (Teil 3) und Einführung in Unity
Ziel dieser Lektion ist es, unser soziales Netzwerk mit zusätzlichen Funktionen weiterzuentwickeln. Wir demonstrieren auch die Möglichkeiten der Unity-Spiel-Engine.
