Files
workspace-info/plans/informatyka/cpp.md
T

2.8 KiB

C++ — plan wielosemestralny i stan wdrożenia

Źródło zakresu: /home/user/dev/keys/cxx.md. Standard kursu: C++20 z wybranymi, jawnie oznaczonymi elementami C++23. Cykl obejmuje 53 lekcje teoretyczne. Projekty, FreeRTOS i praca na urządzeniu pozostają osobnymi zajęciami.

Etap Lekcje Oś merytoryczna Stan
Rok 2, semestr 1 10 fundamenty języka, klasy, czas życia i RAII wdrożony
Rok 2, semestr 2 10 OOP i C++ w systemach wbudowanych plan
Rok 3, semestr 1 16 STL i biblioteka standardowa plan
Rok 3, semestr 2 17 współbieżność, korutyny i Boost.Asio plan

Rok 2, semestr 1 — aktywna seria cpp

Książka prowadząca: Bjarne Stroustrup, A Tour of C++, 3rd Edition. The C++ Programming Language, 4th Edition jest źródłem uzupełniającym dla nauczyciela. Karty parafrazują pojęcia i zawierają własne eksperymenty; nie kopiują treści książek.

C++ · Rok 2 · Semestr 1
├── CPP01 · Oddzielna kompilacja, deklaracja, definicja, linkage i namespace
├── CPP02 · Typy, inicjalizacja, auto, const, enum class i typ użytkownika
├── CPP03 · Wskaźniki, referencje, tablice, nullptr i argumenty
├── CPP04 · Funkcje, przeciążanie, wartości zwracane, zakres i modułowość
├── CPP05 · Klasa i obiekt: pola, metody, dostęp, interfejs i implementacja
├── CPP06 · Hermetyzacja, niezmienniki i odpowiedzialność klasy
├── CPP07 · Konstruktory, destruktory i inicjalizacja obiektu
├── CPP08 · Zakres i czas życia obiektów automatycznych, statycznych i dynamicznych
├── CPP09 · RAII i powiązanie zasobu z czasem życia obiektu
└── CPP10 · Kopiowanie, przenoszenie, Rule of Zero/Five i własność zasobu

Każda karta ma trzy niezależne programy, kompilację -std=c++20 -Wall -Wextra -Wpedantic -Werror, dokładny kontrakt stdout, testy Node, widok React, PDF A4 i akcje build/test/run/debug dla profilu native-amd64. Generator źródeł znajduje się w tools/generate_cpp_y2s1.py tego repozytorium.

Granice kolejnych semestrów

  • Semestr 2 rozpoczyna się od typów wartościowych i operatorów, a kończy teorią wrapperów Task, StaticQueue<T,N>, Mutex i LockGuard.
  • Rok 3, semestr 1 należy do STL: kontenery, iteratory, algorytmy, ranges, typy pomocnicze, smart pointery i narzędzia biblioteki standardowej.
  • Rok 3, semestr 2 obejmuje thread/jthread, synchronizację, atomiki, futures, korutyny i Boost.Asio.
  • Szczegóły API FreeRTOS, portu, ISR i uruchamiania na płytce pozostają w seriach FreeRTOS C oraz FreeRTOS C++.

Kurs OOP/wzorców jest osobną serią odniesienia. Karta C++ linkuje do niej dopiero wtedy, gdy występuje rzeczywisty problem projektowy, a nie tylko pojedynczy mechanizm języka.