Programowanie i projektowanie obiektowe 1100-3BP15
I. Programowanie obiektowe
Programowanie a programowanie obiektowe
Pojęcie obiektu w programowaniu, składowe obiektu. Różnica między klasą a obiektem. Pola oraz metody. Kontrola dostępu: składowe prywatne i publiczne
Tworzenie obiektów w języku Python: deklarowanie klasy. Nadawanie wartości (inicjalizacja), konstruktor, przeciążenie.
Dziedziczenie kontra zawieranie
Dziedziczenie - tworzenie hierarchii klas. Składowe chronione. Różnice między zawieraniem obiektu a dziedziczeniem (mieć vs. być).
Zaawansowane narzędzia konstruowania programu obiektowego
Pojęcie interfejsu - klasy abstrakcyjnej. Składowe statyczne. Przeciążenie operatorów i funkcje specjalne (magic functions)
II. Projektowanie obiektowe
Zapis hierarchii obiektów
Modelowanie hierarchii klas - język UML. Rodzaje powiązań: jeden do jednego, jeden do wielu, wiele do wielu, oraz sposoby ich modelowania
Wzorce projektowe
Factory method, Composite, Builder, Singleton, Dispatch, Interpreter
Ogólne zasady inżynierii oprogramowania
Podział odpowiedzialności pomiędzy klasy, projektowanie z zachowaniem wysokiej spójności i luźnego sprzężenia pomiędzy klasami. Testy jednostkowe. Wersjonowanie kodu
Obiektowa implementacja często spotykanych zagadnień
Implementacja drzewa i grafu. Omówienie wybranego kodu obiektowego (pakiet do modelowania molekularnego) pod kątem wykorzystanych rozwiązań projektowania obiektowego.
Opis sporządził Dominik Gront, październik 2020.
Tryb prowadzenia
Założenia (opisowo)
Koordynatorzy przedmiotu
Efekty kształcenia
Znajomość podstaw projektowania obiektowego. Umiejętność czytania i tworzenia diagramów UML. Znajomość języka Python w zakresie programowania obiektowego. Wiedza o jego wadach i zaletach w porównaniu z innymi językami obiektowymi.
Kryteria oceniania
Egzamin pisemny (przeprowadzony w sali) składający się z kilku pytań testowych oraz 2-3 zadań otwartych lub egzamin ustny (możliwy w trybie zdalnym).
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: