Wprowadzenie
Nauczymy się C# w Visual Studio. Poznamy zmienne, pętle, metody i instrukcje warunkowe. Stworzymy programy konsolowe i okienkowe. Z ChatGPT, Gemini i GitHub Copilot zaprojektujemy zgadywankę AI, kulinarnego doradcę i chat z NPC oraz wygenerujemy grafiki w ASCII art.
Program kursu
1Lekcja 1. Wstęp do C#
Celem lekcji jest stworzenie pierwszego programu w C# oraz zapoznanie ze środowiskiem Visual Studio Code.
2Lekcja 2. Zmienne i stałe
Celem lekcji jest przedstawienie pojęcia zmiennych oraz pokazanie najczęściej
stosowanych typów zmiennych.
3Lekcja 3. Operacje matematyczne
Celem lekcji jest przedstawienie pojęcia stałych oraz pokazanie najczęściej
stosowanych operacji matematycznych.
4Lekcja 4. Operatory logiczne i rzutowanie
Celem lekcji jest przedstawienie operatorów matematycznych i logicznych. Drugim
celem jest przedstawienie inkrementacji i dekrementacji w języku C#.
5Lekcja 5. Instrukcja warunkowa IF cz. I
Celem lekcji jest przedstawienie instrukcji warunkowej IF.
6Lekcja 6. Instrukcja warunkowa IF cz. II
Celem lekcji jest utrwalenie informacji o instrukcji warunkowej IF oraz zrozumienie działania klasy Random.
7Lekcja 7. Switch
Celem lekcji jest przedstawienie instrukcji warunkowej Switch.
8Lekcja 8. Dobre praktyki programistyczne
Celem zajęć jest nauka testowania i naprawiania swojego kodu oraz efektywne wykorzystywanie IDE w celu ułatwienia pracy.
9Lekcja 9. Wstęp do pętli
Celem lekcji jest zapoznanie się z pojęciem pętli.
10Lekcja 10. Pętle
Celem lekcji jest dalsze zgłębianie tematu pętli.
11Lekcja 11. Tablice
Celem lekcji jest omówienie zastosowania i używania tablic.
12Lekcja 12. Metody cz. I
Celem lekcji jest wprowadzenie do dzielenia kod na części i przedstawienie metod.
13Lekcja 13. Metody cz. II
Celem lekcji utrwalenie wiedzy o metodach na praktycznym przykładzie gry.
14Lekcja 14. Powtórzenie materiału
Celem lekcji jest podsumowanie zdobytych w trakcie semestru wiadomości.
15Lekcja 15. Wstęp do OOP
Celem lekcji jest zapoznanie uczestników z podstawowymi zagadnieniami, koncepcją programowania obiektowego oraz pracą w Solution Eksplorerze.
16Lekcja 16. Dziedziczenie
Celem lekcji jest pogłębienie wiedzy w tematyce programowania obiektowego.
Przedstawione zostaną zagadnienia takie jak dziedziczenie, nadpisywanie metod oraz elementy statyczne w programowaniu.
17Lekcja 17. Dziedziczenie cd., elementy statyczne, listy
Celem lekcji jest powtórka i utrwalenie materiału z podstaw programowania
obiektowego oraz poznanie elementów takich jak przeładowanie metod, pętla
foreach oraz listy.
18Lekcja 18. Powtórka OOP gra RPG
Celem lekcji jest powtórka i utrwalenie materiału z podstaw programowania obiektowego.
19Lekcja 19. Wstęp do Raylib
Celem lekcji jest zapoznanie uczestników z instalacją i konfiguracją projektów
używających Raylib na podstawie implementacji projektu ze spadającą piłeczką.
20Lekcja 20. Gra Snake część 1
Celem lekcji jest rozpoczęcie pracy nad projektem popularnej gry Snake, w której
będziemy tworzyć podstawową mechanikę gry, implementować ruch węża,
generowanie jedzenia oraz obsługę kolizji.
21Lekcja 21. Gra Snake część 2
Celem lekcji jest kontynuacja pracy nad projektem popularnej gry Snake.
22Lekcja 22. Pong
Celem lekcji jest nauczenie się pracy z kodem napisanym przez inne osoby oraz
naprawienie projektu gry Pong.
23Lekcja 23. Sposoby przechowywania danych
Celem lekcji jest omówienie sposobów przechowywania danych w języku C#. Przedstawione zostaną koncepcje rekordów, słowników, kolejek oraz zbiorów.
24Lekcja 24. Bazy danych w C#
Celem lekcji jest poruszenie tematu baz danych oraz wykonanie komend SQL przy pomocy
języka programowania C#. Wiedza ta będzie wykorzystywana przy późniejszym tworzeniu
aplikacji webowej.
25Lekcja 25. Bazy danych w C# cz. II
Celem lekcji jest dalsze omówienie tematu baz danych z użyciem języka C#. Wiedza ta
będzie wykorzystywana przy późniejszym tworzeniu aplikacji webowej.
26Lekcja 26. LINQ
Celem lekcji jest omówienie LINQ w języku programowania C#. Poznamy też nowe operacje,
które można wykonać do uzyskania elementów z bazy danych.
27Lekcja 27. Testy
Celem lekcji jest omówienie w jaki sposób pisze się testy w programowaniu na przykładach
testów jednostkowych i integracyjnych.
28Lekcja 28. LeetCode oraz HackerRank.
Celem lekcji jest omówienie stron z zadaniami programistycznymi oraz wspólne zrobienie
tych zadań.
29Lekcja 29. LeetCode oraz HackerRank część 2
Dalsze wykonywanie zadań. Pokazanie i wspólne wykonanie zadań, które mogą występować na rozmowach kwalifikacyjnych w korporacjach.
30Lekcja 30. Interfejsy i klasy abstrakcyjne
Celem lekcji jest omówienie różnic między interfejsami a klasami abstrakcyjnymi w C# oraz
pokazanie, jak je właściwie stosować w złożonych projektach. Nauczymy się
implementować interfejsy i tworzyć klasy abstrakcyjne, korzystając z dobrych praktyk
projektowych.
31Lekcja 31. Singleton
Celem lekcji jest zrozumienie, czym są wzorce projektowe i dlaczego są istotne w
programowaniu. Poznamy zasady działania i zastosowanie wzorca Singleton.
32Lekcja 32. Odczytywanie danych z plików
Celem lekcji jest nauczenie się metod oraz bibliotek w C# służących do odczytu danych z
różnych formatów plików (PDF, JSON). W trakcie zajęć omówione zostaną aspekty obsługi
wyjątków przy obsłudze uszkodzonych plików oraz praktyki walidacji poprawności danych.
33Lekcja 33. Sztuczna inteligencja w C#, omówienie ML.NET część 1
W tej lekcji poznajemy podstawowe pojęcia sztucznej inteligencji i uczenia maszynowego w
kontekście języka C# oraz biblioteki ML.NET. Uczymy się także, jak w prosty sposób
wczytywać dane, trenować model i wykonywać podstawowe przewidywania w oparciu o
realne przykłady (np. klasyfikację ulubionych filmów).
34Lekcja 34. Sztuczna inteligencja w C#, omówienie ML.NET część 2
W tej lekcji poznamy podstawowe miary oceny jakości modelu (accuracy, precision, recall).
Nauczymy się dzielić dane na zbiór treningowy i testowy. Wzbogacimy model o nowe cechy
(np. rok wydania, ocena użytkowników) i zaobserwujemy wpływ tych zmian na wyniki.
Dodamy interakcję z użytkownikiem w konsoli.
35Lekcja 35. Kino Gigant część 1
Celem lekcji jest zaprojektowanie i zaimplementowanie aplikacji konsolowej do rezerwacji
miejsc w kinie, która obejmuje tworzenie seansów, zarządzanie miejscami i obsługę
rezerwacji. Nauczymy się pisać klasy odzwierciedlające logikę biznesową i przechowywać
informacje o rezerwacjach w pliku lub prostej bazie danych.
36Lekcja 36. Kino Gigant część 2 oraz wstęp do Unity
Celem lekcji jest zaprojektowanie i zaimplementowanie aplikacji konsolowej do rezerwacji
miejsc w kinie, która obejmuje tworzenie seansów, zarządzanie miejscami i obsługę
rezerwacji. Nauczymy się pisać klasy odzwierciedlające logikę biznesową i przechowywać
informacje o rezerwacjach w pliku. Poznamy silnik graficzny Unity.

