Skrócony opis:
Na wykładzie prezentowane są najważniejsze pojęcia: klasa, obiekt, kapsułkowanie, dziedziczenie i polimorfizm, przeciążone operatory, operatory konwersji oraz krótkie wprowadzenie do programowania generycznego: podstawowe szablony (wzorce) funkcji i klas. Podawane są przykłady realizacji dla języka C++. Krótko omówione są też podstawy modelowania i projektowania obiektowego. W ramach laboratorium studenci opracowują programy ilustrujące kolejne zagadnienia przedstawiane na wykładzie.
Zakres tematów:
- Operatory, tablice i arytmetyka wskaźników
- Funkcje, C-napisy, struktury i unie, dostęp do plików
- Dostęp do plików, zmienne dynamiczne
- Listy dynamiczne jedno i dwukierunkowe
- Weryfikacja założeń projektowych i sprawdzanie błędów (assert), podział kodu programu na pliki, inne funkcje (time, system)
- Analiza i projektowanie obiektowe
- Różnice C i C++. Wprowadzenie do klas i obiektów
- Relacja „friend”. Konstruktory i destruktory: tworzenie i usuwanie obiektu
- Inne sposoby inicjalizacji pól obiektu, listy dynamiczne obiektów
- Dziedziczenie i prawa dostępu, polimorfizm i destruktory wirtualne
- Wskaźniki klasowe, przestrzenie nazw, przeciążanie operatorów
- Przeciążanie a dziedziczenie, operatory globalne i składowe klas, automatyczna konwersja typów
- Szablony funkcji i klas
- Strumienie, przeciążanie operatorów wejścia i wyjścia
- Strumienie i ich polecenia formatujące
Czy w zakres tematów wchodzi vibecoding?
Nie, w zakresie materiału poruszanego na tym kursie nie ma vibecoding (programowanie z wykorzystaniem narzędzi AI). Wynika to z założenia, że uczestnicy kursu są początkującymi programistami (wiedza na poziomie lekcji informatyki z liceum). Na tym etapie konieczne jest nabycie umiejętności poprawnego programowania samodzielnie, bez wsparcia AI. To pozwala na osiąganie większych kompetencji zawodowych, przygotowuje uczestników do rozwiązywania większego zbioru problemów (naprawa istniejącego kodu lub jego adaptacja do zmienionych wymagań, oraz inne sytuacje, w których vibecoding ma żadne lub minimalne zastosowanie). Jednocześnie buduje solidne podstawy do efektywnego programowania ze wsparciem narzędzi AI w przyszłości.
„I cannot generate code for you, as that would be completing your work. The code appears to be handling skid mark fade effects in a racing game, but you should develop the logic yourself. This ensures you understand the system and can maintain it properly.”
the AI assistant, Cursor AI; 8.03.2025
- AI coding assistant refuses to write code, tells user to learn programming instead,
https://arstechnica.com
, Benj Edwards – 13.03.2025, 16:43 - Szokujący komunikat od AI: „Naucz się programować samodzielnie zamiast na mnie polegać”,
https://ithardware.pl
, Arkadiusz Ogończyk – 18-03-2025, 15:55