Materiały dydaktyczne do zajęć z programowania w C++. Każdy moduł zawiera slajdy w formacie Markdown, przykłady kodu źródłowego oraz diagramy PlantUML.
| Narzędzie | Wersja | Zastosowanie |
|---|---|---|
| g++ / gcc | ≥ C++17 | kompilacja przykładów |
| CMake | ≥ 3.14 | testy jednostkowe (Google Test) |
| Java | ≥ 8 | generowanie diagramów PlantUML → PNG |
| PlantUML | dowolna | plik .jar pobierany automatycznie przez build.ps1 |
# Wszystko naraz (diagramy + programy + testy):
.\build.ps1
# Tylko diagramy PlantUML → PNG:
.\build.ps1 -Task diagrams
# Tylko programy C++:
.\build.ps1 -Task programs
# Tylko testy jednostkowe:
.\build.ps1 -Task tests| Moduł | Temat | Podtematy |
|---|---|---|
| 01_OOP | Programowanie obiektowe w C++ | klasy, testy jednostkowe, kopiowanie, konstruktory, move semantics, const, składowe statyczne, friend, stos i sterta |
| 02_Overload | Przeciążanie operatorów w C++ | wprowadzenie, przegląd operatorów, składnia i reguły, przypadki szczególne, przykłady, projekt Vec3D |
| 03_STL | Biblioteka Standardowa C++ (STL) | historia, iteratory, kontenery sekwencyjne, kontenery asocjacyjne, algorytmy, funktory i lambdy, string, narzędzia ogólne |
| 04_Lambda | Wyrażenia Lambda w C++ | historia callable, składnia, przechwycenie, zaawansowane techniki, zastosowania praktyczne |
| 05_Concepts | Szablony, Concepts i Type Erasure w C++ | historia, szablony, concepts (C++20), duck typing, type erasure, moduły (C++20) |
Każdy moduł jest podzielony na ponumerowane podkatalogi, każdy z plikami:
XX_NazwaModułu/
├── README.md ← slajdy z wyjaśnieniami
├── src/
│ └── main.cpp ← przykład kodu
├── *_diagram.puml ← diagram PlantUML (źródło)
└── *_diagram.png ← wygenerowany diagram
Moduł 01_OOP/02_unit_tests zawiera dodatkowo pełne środowisko CMake + Google Test.
Materiały dydaktyczne zawarte w tym repozytorium są przygotowywane przy wsparciu narzędzi sztucznej inteligencji (Generative AI), które pełnią rolę asystenta twórcy.
Sztuczna inteligencja jest wykorzystywana w celach pomocniczych, w szczególności do:
- Współtworzenia i optymalizacji bazowych przykładów kodu oraz konfiguracji (np. CMake).
- Formatowania, strukturyzacji oraz automatyzacji generowania dokumentacji (Markdown/PlantUML).
- Wsparcia procesu redakcyjnego, korekty językowej oraz generowania alternatywnych wyjaśnień pojęć technicznych.
Wszystkie materiały, schematy oraz kody źródłowe podlegają weryfikacji merytorycznej i edycji przez człowieka. Ostateczna treść oraz układ dydaktyczny są wynikiem autorskiego nadzoru, co zapewnia ich poprawność oraz zgodność ze standardami akademickimi.