Wprowadzenie
Nauczymy się C++ w Visual Studio Code. Poznamy zmienne, pętle, metody, instrukcje warunkowe i wskaźniki. Stworzymy aplikacje i gry. Nauczymy się wykorzystywać bibliotekę Raylib oraz korzystać z GitHub. Z ChatGPT, Gemini i GitHub Copilot nauczymy się logicznego myślenia i szukania rozwiązań krok po kroku. Wykorzystamy AI do grafiki (Canva AI, DALL·E) i muzyki (Suno, ElevenLabs).
Program kursu
1Lekcja 1. Wstęp do języka C++
Celem lekcji jest omówienie środowiska Visual Studio Code, sposobu działania komputera i
języków programowania, bibliotek conio.h i stdio, oraz formatowania tekstu.
2Lekcja 2. Zmienne i stałe
Celem lekcji jest przedstawienie pojęcia zmiennych i sposobu ich przechowywania w
pamięci komputera. Omówione zostaną typy zmiennych, oraz proces rzutowania.
3Lekcja 3. Operacje matematyczne i logiczne
Celem lekcji jest poznanie podstawowych operacji wykonywanych przez komputer,
zarówno matematycznych jak i logicznych. Wprowadzone zostanie pojęcie operacji
bitowych.
4Lekcja 4. Instrukcja warunkowa if
Celem lekcji jest wprowadzenie terminu instrukcji warunkowej,
oraz poznanie instrukcji if.
5Lekcja 5. Instrukcja warunkowa if cz2
Zajęcia stanowią kontynuację poprzedniej lekcji.
6Lekcja 6. Switch
Celem lekcji jest poznanie instrukcji warunkowej switch.
7Lekcja 7. Pętle
Celem lekcji jest wprowadzenie pojęcia inkrementacji i dekrementacji, oraz poznanie
typów pętli.
8Lekcja 8. Pętle cz2
Celem lekcji jest praktyczne przećwiczenie poznanych wcześniej zagadnień.
9Lekcja 9. Gra tekstowa RPG
Celem lekcji jest usystematyzowanie oraz powtórzenie poznanych wcześniej zagadnień,
poprzez stworzenie tekstowej gry rpg.
10Lekcja 10. Tablice
Celem lekcji jest wprowadzenie pojęcia tablicy oraz indeksowania.
11Lekcja 11. Funkcje
Celem lekcji jest poznanie i omówienie pojęcia funkcji.
12Lekcja 12. Funkcje cz2
Kontynuacja i przećwiczenie materiału z poprzednich zajęć.
13Lekcja 13. Powtórzenie materiału
Celem lekcji jest podsumowanie zdobytych w trakcie semestru wiadomości.
14Lekcja 14. Wstęp do zaawansowanego C++ - sortowanie
Celem lekcji jest pokazanie praktycznych zastosowań wiedzy zdobytej
w trakcie semestru.
15Lekcja 15. Gra w życie
Celem lekcji jest napisanie konsolowej wersji popularnej gry w życie.
16Lekcja 16. Gra w życie. Kontynuacja
Celem zajęć jest kontynuowanie projektu z poprzedniej lekcji.
17Lekcja 17. Gra w warcaby
Celem lekcji jest stworzenie gry w warcaby.
18Lekcja 18. Gra w warcaby. Kontynuacja
Celem lekcji jest zaimplementowanie logiki gry w warcaby.
19Lekcja 19. Powtórzenie wiadomości
Celem lekcji jest przypomnienie i utrwalenie podstawowych
zagadnień z języka programowania C++ omawianych w pierwszym
semestrze.
20Lekcja 20. Wstęp do programowania obiektowego cz.1
Celem lekcji jest wprowadzenie uczniów w świat programowania
obiektowego oraz jego podstawowych pojęć. Uczniowie nauczą się
tworzyć proste klasy w języku C++ oraz zrozumieją, dlaczego
programowanie obiektowe jest tak ważne w nowoczesnym
programowaniu.
21Lekcja 21. Wstęp do programowania obiektowego cz.2
Celem lekcji jest zapoznanie uczniów z bardziej zaawansowanymi
pojęciami programowania obiektowego, takimi jak enkapsulacja i
dziedziczenie, oraz zrozumienie roli klas bazowych i klas
pochodnych w C++.
22Lekcja 22. Wstęp do programowania obiektowego cz.3
Celem lekcji jest zapoznanie uczniów z zaawansowanymi pojęciami
programowania obiektowego, takimi jak polimorfizm, polimorfizm
statyczny i dynamiczny oraz wirtualne funkcje w języku C++.
23Lekcja 23. Wstęp do programowania obiektowego cz.4
Celem tej lekcji jest wprowadzenie uczniów w dwa ważne koncepty
programowania obiektowego w języku C++: referencje i destruktory.
Uczniowie będą mieli okazję zrozumieć, jak i kiedy używać tych
elementów w praktycznych zadaniach
24Lekcja 24. Gra konsolowa Papier Kamień Nożyce
Celem lekcji jest utrwalenie wiadomości o programowaniu
obiektowym poprzez implementacje gry papier, kamień, nożyce.
25Lekcja 25. Wskaźniki
Celem lekcji jest przedstawienie wiadomości o wskaźnikach i jak ich
używać w praktyce w C++.
26Lekcja 26. Konsolowa gra rpg z wykorzystaniem programowania obiektowego cz.1
Celem dzisiejszej lekcji jest zaprojektowanie struktury gry “Space
Rescue” oraz wstępne implementowanie gry w kodzie.
27Lekcja 27. Konsolowa gra rpg z wykorzystaniem programowania obiektowego cz.2
Celem lekcji jest kontynuacja projektu.
28Lekcja 28. Konsolowa gra rpg z wykorzystaniem programowania obiektowego cz.3
Celem lekcji jest kontynuacja implementacji gry RPG.
Na zajęciach zaimplementujemy bardziej zaawansowany system walk.
29Lekcja 29. Gra okienkowa - pong cz.1
Celem lekcji jest zaznajomienie uczniów z podstawami biblioteki
Raylib i stworzeniem podstaw do gry Pong.
30Lekcja 30. Gra okienkowa - pong cz.2
Celem lekcji jest kontynuacja tworzenia gry Pong za pomocą C++ i
biblioteki do gier Raylib.
31Lekcja 31. Gra okienkowa - pong cz.3
Celem lekcji jest kontynuacja tworzenia gry Pong za pomocą C++ i
biblioteki do gier Raylib.
32Lekcja 32. Zadania z algorytmiki cz.1
Celem lekcji jest sprawdzenie umiejętności grupy w
zadaniach z algorytmiki, głównie w celu powtórzenia.
33Lekcja 33. Zadania z algorytmiki cz.2
Celem lekcji jest kontynuacja sprawdzenia umiejętności
grupy w zadaniach z algorytmiki.
34Lekcja 34. Zadania na plikach
Celem lekcji jest zapoznanie się z operowaniem na
plikach tekstowych.
35Lekcja 35. System logowania
Celem lekcji jest stworzenie prostego systemu logowania
z pomocą pliku tekstowego.
36Lekcja 36. Build and Run
Celem zajęć jest przypomnienie dotychczas zdobytych informacji.
Zadaniem uczestników będzie trzykrotne rozwiązanie tego samego
problemu, za każdym razem wchodząc na coraz wyższy poziom
abstrakcji.
37Lekcja 37. C++ przez lata
Celem lekcji jest utrwalenie wiadomości i wiedzy zdobytej w dwóch
poprzednich semestrach oraz zapoznaniem się z tym czym jest
standard c++
38Lekcja 38. Git Gigant
Celem lekcji jest zapoznanie się z systemem kontroli wersji git.
39Lekcja 39. Praktyczne programowanie
Na lekcji zajmiemy się praktycznym wykorzystywaniem
programowania.
40Lekcja 40. Ręczna alokacja pamięci
Celem lekcji jest szczegółowe zapoznanie się z mechanizmami
zarządzania pamięcią RAM w naszych programach
41Lekcja 41. Struktury danych
Celem zajęć jest samodzielne przygotowanie struktury
danych w c++.
42Lekcja 42. Przeładowanie operatorów
Tematem zajęć będzie operator overloading, zwany
przeładowywaniem operatorów. Jest to jeden z bardziej
zaawansowanych tematów związanych z programowaniem
obiektowym w c++.
43Lekcja 43. Operator Overloading integracja
Tematem zajęć jest integracja, czyli połącznie rzeczy,
których nauczyliśmy się do tej pory, dzisiaj zintegrujemy operator
overloading i własne struktury danych. W ten sposób wprowadzimy
do naszej specjalnej struktury danych możliwość adresowania
elementów przez nawiasy kwadratowe, oraz łączenie struktur.
44Lekcja 44. Wstęp do rayliba – metoda Monte Carlo
Tematem zajęć jest wprowadzenie do biblioteki
graficznej raylib. Przy okazji po raz kolejny będziemy mieli do
czynienia z praktycznymi zastosowaniami programowania,
zajmiemy się przybliżaniem liczby PI, wykorzystamy w tym celu metodę Monte Carlo.
45Lekcja 45. Gigant mony
Celem lekcji jest rozpoczęcie projektu Gigant monów, gry która
będzie przypominać klasyczne Pokemony.
46Lekcja 46. Gigant mony część 2
Celem lekcji jest zaimplementowanie klasy Poks oraz systemu
walki
47Lekcja 47. Gigant mony część 3
Celem lekcji jest rozwinięcie gry z wykorzystaniem function
pointerów. Na dzisiejszej lekcji przygotujemy klasę Poks w taki
sposób, aby każdy potworek mógł atakować w unikalny sposób.
48Lekcja 48. Powtórzenie wiadomości oraz wstęp do kursu Hacking i Cyberbezpieczeństwo
Celem dzisiejszych zajęć jest praca samodzielna, powtórzenie i utrwalenie wiadomości przez uczniów. Na zajęciach pokażemy również przykładowe tematyki ze specjalizacji Hacking i Cyberbezpieczeństwo.

