Programowanie Obiektowe

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:

  1. Operatory, tablice i arytmetyka wskaźników
  2. Funkcje, C-napisy, struktury i unie, dostęp do plików
  3. Dostęp do plików, zmienne dynamiczne
  4. Listy dynamiczne jedno i dwukierunkowe
  5. Weryfikacja założeń projektowych i sprawdzanie błędów (assert), podział kodu programu na pliki, inne funkcje (time, system)
  6. Analiza i projektowanie obiektowe
  7. Różnice C i C++. Wprowadzenie do klas i obiektów
  8. Relacja „friend”. Konstruktory i destruktory: tworzenie i usuwanie obiektu
  9. Inne sposoby inicjalizacji pól obiektu, listy dynamiczne obiektów
  10. Dziedziczenie i prawa dostępu, polimorfizm i destruktory wirtualne
  11. Wskaźniki klasowe, przestrzenie nazw, przeciążanie operatorów
  12. Przeciążanie a dziedziczenie, operatory globalne i składowe klas, automatyczna konwersja typów
  13. Szablony funkcji i klas
  14. Strumienie, przeciążanie operatorów wejścia i wyjścia
  15. 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