Giganci Programowania
Wstęp do AI i programowania w C# ONLINE
Wiek 13-15 latNajczęściej wybierane

Wstęp do AI i programowania w C# ONLINE

Opanuj C# – język, w którym powstają największe hity. Projektuj programy, chaty z NPC i inteligentnych doradców przy wsparciu GitHub Copilot. Poznaj logikę kodu i buduj autorskie rozwiązania. To solidny start dla tych, którzy o programowaniu myślą na poważnie. Twój czas start!

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#, poznanie podstawowych funkcji wejścia-wyjścia oraz praca ze środowiskiem Visual Studio Code.
2Lekcja 2. Zmienne i stałe
Celem lekcji jest przedstawienie pojęcia zmiennych, stałych oraz pokazanie najczęściej stosowanych typów zmiennych.
3Lekcja 3. Operacje matematyczne
Celem lekcji jest przedstawienie najczęściej stosowanych operacji matematycznych.
4Lekcja 4. Operatory logiczne i rzutowanie
Celem lekcji jest zapoznanie z logiką w kontekście matematyki i programowania. Poznamy typ logiczny oraz operatory pozwalające na wnioskowanie.
5Lekcja 5. Poznanie środowiska programistycznego
Celem lekcji jest lepsze poznanie środowiska programistycznego Visual Studio Code. Na zajęciach popracujemy z katalogami projektów a także dodamy obsługę narzędzia Copilot.
6Lekcja 6. Instrukcje warunkowe
Celem lekcji jest zapoznanie z instrukcją warunkową. Poznamy jej mechanikę działania i przykłady zastosowania.
7Lekcja 7. Switch i enum
Celem lekcji jest przedstawienie instrukcji warunkowej Switch oraz typów wyliczeniowych
8Lekcja 8. Dobre praktyki programistyczne
Celem lekcji jest zapoznanie z dobrymi praktykami programistycznymi w C#, ze szczególnym naciskiem na debugowanie kodu. Uczniowie nauczą się wykorzystywać breakpointy, analizować działanie programu krok po kroku oraz wykrywać i naprawiać błędy w kodzie.
9Lekcja 9. Pętle
Celem lekcji jest poznanie mechanizmu pętli i zdobycie umiejętność wykorzystania w praktyce dwóch rodzajów pętli w C# - while i for.
10Lekcja 10. Tablice
Celem lekcji jest poznanie tablic.
11Lekcja 11. C# Skill Check - Junior
Celem lekcji jest powtórzenie i utrwalenie dotychczas zdobytej wiedzy. Uczniowie będą mieli możliwość zmierzyć się z programistycznymi wyzwaniami i rywalizować o punkty.
12Lekcja 12. Metody
Celem lekcji jest poznanie metod, pozwalających na dzielenie kodu na części i poprawę jego czytelności.
13Lekcja 13. Listy
Celem lekcji jest lepsze zrozumienie tablic i poznanie list.
14Lekcja 14. Zgadywanka
Celem lekcji jest zapoznanie z logiką w kontekście matematyki i programowania. Poznamy typ logiczny oraz operatory pozwalające na wnioskowanie.
15Lekcja 15. Struktury danych
Celem lekcji jest poznanie nowych struktur danych pozwalających na zaimplementowanie prostych mechanik z popularnych gier.
16Lekcja 16. Chatbot z NPC
Celem lekcji jest stworzenie symulatora rozmowy z postacią z gry, która bazować będzie na algorytmie wykorzystywanym przez Sztuczną inteligencję do stworzenia systemu przetwarzania, analizowania i generowania tekstu.
17Lekcja 17. Wstęp do programowania obiektowego
Celem lekcji jest wprowadzenie do programowania obiektowego w C#
18Lekcja 18. Programowanie obiektowe w praktyce
Na lekcji poznamy paradygmaty programowania obiektowego takie jak abstrakcja, dziedziczenie i polimorfizm. Zaprojektujemy logikę bohaterów do gry, w której wydzielimy typy postaci z różnymi umiejętnościami, posiłkując się obiektami.
19Lekcja 19. Wektory i struktury
Celem lekcji jest poznanie wektorów i ich zastosowania oraz poznanie sposobów ich implementacji z wykorzystaniem programowania obiektowego
20Lekcja 20. Przetwarzanie obrazu
Celem lekcji jest stworzenie programu przetwarzającego gotowe obrazy, z wykorzystaniem prostych filtrów macierzowych.
21Lekcja 21. Generowanie obrazu
Celem lekcji jest stworzenie programu generującego różne obrazy składające się z prostych kształtów.
22Lekcja 22. Programistyczny Photoshop - Automatyzacja z ImageSharp
Celem lekcji jest poznanie Menedżera Pakietów NuGet, instalacja zewnętrznej biblioteki ImageSharp oraz wykorzystanie jej do nakładania zaawansowanych filtrów na obrazy.
23Lekcja 23. Programistyczny Paint - Generowanie grafiki ze SkiaSharp
Celem lekcji jest poznanie potężnej biblioteki SkiaSharp służącej do generowania grafiki wektorowej od zera. Uczniowie dowiedzą się, jak tworzyć płótna, używać wirtualnych pędzli, rysować kształty z wygładzaniem krawędzi oraz dodawać tekst do obrazów.
24Lekcja 24. C# Skill Check - Middle
Celem lekcji jest powtórzenie i utrwalenie dotychczas zdobytej wiedzy. Uczniowie będą mieli możliwość zmierzyć się z programistycznymi wyzwaniami i rywalizować o punkty.
25Lekcja 25. Wstęp do Raylib
Celem lekcji jest poznanie biblioteki do tworzenia gier - Raylib. Poznamy najważniejsze komendy, mechanikę jej działania, a także zaprogramujemy mechanizmy najczęściej pojawiające się w grach komputerowych.
26Lekcja 26. Gra Snake część 1
Uczniowie zbudują podstawową strukturę gry Snake w języku C# przy użyciu biblioteki Raylib. Na koniec zajęć na ekranie wyświetli się plansza z wężem i jabłkiem, a wąż będzie poruszał się po siatce i reagował na naciśnięcia klawiszy W, A, S, D.
27Lekcja 27. Gra Snake część 2
Uczniowie dokończą implementację gry Snake w C# z biblioteką Raylib. W trakcie zajęć sprawią, że ogon węża podąża za głową, wąż rośnie po zjedzeniu jabłka (z efektem dźwiękowym), a wynik jest widoczny na ekranie. Na koniec zaimplementują detekcję kolizji głowy z ogonem i ekran końca gry z flagą gameOver.
28Lekcja 28. Gra Flappy Bird część 1
Uczniowie stworzą fragment gry Flappy Bird w C# z biblioteką Raylib. Poznają mechanikę sterowania stanem gry za pomocą enum, implementację grawitacji i skoku postaci, ładowanie i skalowanie tekstur oraz budowanie ekranów startowego i końcowego. Po lekcji gra będzie uruchamialna, grywalna i restartowalana klawiszem Enter.
29Lekcja 29. Gra Flappy Bird część 2
Uczniowie rozbudują grę Flappy Bird o klasę Pipe odpowiedzialną za generowanie, rysowanie i przesuwanie rur. Nauczą się wykrywać kolizje między kołem a prostokątem za pomocą metody CheckCollisionCircleRec z biblioteki Raylib oraz wdrożą licznik punktów oparty na fladze Passed.
30Lekcja 30. Pong
Celem lekcji jest wejście w rolę zawodowego programisty, który musi naprawić po kimś niedziałający kod. Zmierzymy się z wyzwaniem debuggerskim i poznamy sposoby na obsługę wyjątków.
31Lekcja 31. Space Invaders cz. 1 - Gracz
Celem lekcji jest stworzenie podstaw działania gry typu Space Invaders w C# z wykorzystaniem biblioteki Raylib. Uczestnicy poznają i przećwiczą pracę z pętlą gry, obsługą klawiatury, poruszaniem obiektów oraz rysowaniem elementów na ekranie, a także wykorzystanie list do zarządzania wieloma pociskami. W trakcie zajęć uruchomią okno gry, zaimplementują sterowanie i strzelanie oraz przetestują działanie projektu krok po kroku.
32Lekcja 32. Space Invaders cz 2 - Wrogowie
Celem lekcji jest rozbudowanie projektu gry Space invaders o przeciwników oraz warunki końca.
33Lekcja 33. Raylib 3D
Uczniowie poznają podstawowe koncepcje grafiki 3D w Raylib dla C# - przestrzeń trójwymiarową, kamerę pierwszoosobową i proste bryły. Tworzą scenę, w której gracz stoi na siatce i rozgląda się dookoła, a nad nim unoszą się jasne sześciany przypominające chmury. Na koniec lekcji każdy uczestnik ma działającą scenę 3D z wolną kamerą i proceduralnie rozmieszczonymi obiektami.
34Lekcja 34. Sniper 3D
Uczniowie rozbudują istniejący projekt 3D w C# i Raylib o mechanikę strzelania z opóźnionym raycastem, poruszającego się przeciwnika i system życia magazynka. Nauczą się stosować enkapsulację przez tworzenie klas Enemy i Bullet oraz rozumieć, jak czas lotu pocisku wpływa na pozycję celu w momencie trafienia. Na koniec lekcji gra będzie grywalna: uczeń celuje, oddaje strzał, a pocisk dociera do celu z uwzględnionym opóźnieniem.
35Lekcja 35. 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.
36Lekcja 36. Prototyp LLM cz. 1 - obsługa plików
Tematem zajęć jest obsługa plików i katalogów w C# oraz wprowadzenie do dużych modeli językowych (LLM) na przykładzie prostego prototypu generatora słów. Uczestnicy rozwiną umiejętności czytania i zapisywania danych w plikach, tworzenia oraz zarządzania strukturą folderów, a także poznają podstawowe różnice między NLP i LLM oraz zasady organizacji kodu w osobnych klasach i plikach.
37Lekcja 37. Prototyp LLM cz. 2 - uczenie maszynowe
Tematem zajęć jest tworzenie prostego prototypu „uczącego się” programu w C# oraz wprowadzenie do podstaw uczenia maszynowego. Uczestnicy poznają różne rodzaje uczenia (nadzorowane, nienadzorowane i ze wzmocnieniem) oraz przećwiczą praktyczne elementy pracy z danymi: zapisywanie i odczyt obiektów w formacie JSON, a także wykorzystanie właściwości (properties). Podczas lekcji będą rozwijać projekt: przetestują wygenerowane słowa, zbiorą statystyki ocen i zapiszą wyniki do pliku, aby móc analizować postępy programu.
38Lekcja 38. 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.
39Lekcja 39. Testy
Celem lekcji jest omówienie w jaki sposób pisze się testy w programowaniu na przykładach testów jednostkowych i integracyjnych.
40Lekcja 40. LeetCode oraz HackerRank
Celem lekcji jest omówienie stron z zadaniami programistycznymi oraz wspólne zrobienie tych zadań.
41Lekcja 41. LeetCode oraz HackerRank część 2
Dalsze wykonywanie zadań. Pokazanie i wspólne wykonanie zadań, które mogą występować na rozmowach kwalifikacyjnych w korporacjach.
42Lekcja 42. 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.
43Lekcja 43. Singleton
Celem lekcji jest zrozumienie, czym są wzorce projektowe i dlaczego są istotne w programowaniu. Poznamy zasady działania i zastosowanie wzorca Singleton.
44Lekcja 44. 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.
45Lekcja 45. 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).
46Lekcja 46. 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.
47Lekcja 47. 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.
48Lekcja 48. 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.