Pole | KOD | Znaczenie kodu |
---|
Zamierzone efekty uczenia się | I_1A_C01.2_U01 | Student powinien umieć od podstaw implementować specyfikację rozwiązywanego problemu wykorzystując programistyczne mechanizmy implementacji paradygmatu obiektowego |
---|
Odniesienie do efektów kształcenia dla kierunku studiów | I_1A_U06 | Potrafi rozwiązywać podstawowe problemy algorytmiczne z uwzględnieniem ich złożoności posługując się kluczowymi językami programowania. |
---|
Cel przedmiotu | C-1 | Zapoznanie studentów z zasadami programowania obiektowego. |
---|
C-2 | Ukształtowanie umiejętności z zakresu technik programowania obiektowego |
Treści programowe | T-W-1 | Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu. |
---|
T-W-2 | Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja. |
T-W-3 | Przeładowanie operacji, funkcji oraz przeciążanie operatorów. |
T-W-4 | Dziedziczenie. Technika programowania. |
T-W-5 | Polimorfizm. Metody wirtualne i klasy polimorficzne. |
T-W-6 | Programowanie uogólnione. Funkcje wzorcowe i wzorce klas. |
T-W-7 | Programowanie generyczne za pomocą biblioteki standardowej, STL. Obiekty funkcyjne i lambda funkcje. |
T-W-9 | Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków. |
T-L-1 | Środowisko implementacji. Tworzenie obiektów na stosie za pomocą struktur.
Przekazanie obiektów przez argumenty funkcji globalnych i zwrot obiektów.
Programowanie funkcji przeładowanych. |
T-L-2 | Tworzenie obiektów na stercie za pomocą klas. Zarządzanie obiektami na stercie. Operatory new oraz delete. Tablicy obiektów i wskaźników na obiekty. |
T-L-3 | Konstruowanie złożonych obiektów: agregacja i kompozycja. Programowanie konstruktorów, destruktorów, inicjalizacja i kasowanie obiektów dynamicznych. |
T-L-4 | Programowanie klas zagnieżdżonych, statycznych oraz lokalnych. Wykorzystanie deklaracji friend, wskaźnika this oraz uzycie wskaźników do składowych, w tym statycznych. |
T-L-5 | Przeciążanie operatorów oraz programowanie operatorów konwersji typów. |
T-L-6 | Klasy podstawowe i pochodne. Programowanie dziedziczenia. Dostęp do składowych, inicjowanie klasy dziedziczonych, dziedziczenie a konwersja typu, dziedziczenie operatorów. |
T-L-7 | Metody wirtualne; definicja metody wirtualnej; wirtualne destruktory; wywołanie metody wirtualnej; wirtualne klasy podstawowe; definicja wirtualnej klasy podstawowej; dostęp do składowych wirtualnej klasy podstawowej; kolejność wywoływania konstruktorów i destruktorów. |
T-L-8 | Definicja klasy szablonowej; konkretyzowanie klasy szablonowej; specjalizowanie klasy szablonowej; pola statyczne klas szablonowych; wyrażenia stałe jako parametry klas szablonowych; typy zagnieżdżone w ciele klasy szablonowej; deklaracja zaprzyjaźnienia klas szablonowych. Specjalizacja szablonów. Dziedziczenie a klasy szablonowe - szablonowa klasa pochodna. |
T-L-9 | Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa. |
T-L-10 | Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset. |
T-L-11 | Strumieni wejścia –wyjścia: pojęcie strumienia, strumienie związane z plikami, łańcuchowe strumienie, formatowanie strumienie, manipulatory. |
T-L-12 | Pojęcie predykatu. Obiekty funkcyjne. Adaptacja obiektów funkcyjnych. Biblioteka predykatów. Algorytmy uogólnione: manipulowanie sekwencjami, sortowanie i operacji na sekwencjach posortowanych, algorytmy numeryczne. Liczby losowe. |
T-L-13 | Rzutowanie w czasie wykonania. Operator typeid. Zastosowanie mechanizmu RTTI. Przychwytywanie wyjątku, dopasowanie wyjątków, wyjątki standardowe, specyfikacja wyjątków, bezpieczeństwo wyjątków. |
T-L-14 | Techniki programowania bazowane na inteligentnych wskaźnikach: weak_ptr, shared_ptr, unique_ptr. Dynamiczne tablice intelegentnych wskaźników. |
T-L-15 | Definicja obiektów reprezentujących grafy. Operacje na grafach: dodawania werzchołków oraz krawędzi do grafu, wyświelanie stryktury grafu, znalezienie sąsiadów, macierzy sąsiedstwa, algorytmy poszukiwania w głąb i wszerz, znalezienie najkrótszej scieżki, zastosowanie algorytmu Dijkstra. Techniki programowania szybkich zadań algebry linowej za pomocą biblioteki Blas (m.in. iloczyny macierz-wektor, wektor-wektor, macierz-macierz, faktoryzacja macierzy). |
Metody nauczania | M-1 | Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją |
---|
M-2 | Ćwiczenia laboratoryjne |
Sposób oceny | S-1 | Ocena formująca: Wejciówka. Pozwala oceniać przygotowanie studenta do ćwiczeń laboratoryjnych. |
---|
S-2 | Ocena formująca: Sprawdzenie programistycznych zadań domowych. Pozwala ocenić przyswojoną wiedzę z wcześniejszych tematów . |
S-3 | Ocena formująca: Ocena zadań ćwiczeniowych wykonywanych w ramach zajęć laboratorinyjch. Pozwala ocenić stopień przygotowania studenta do samodzielnego wykonania programistycznych ćwiczeń domowych. |
S-4 | Ocena podsumowująca: Testowy ekzamin pisemny |
Kryteria oceny | Ocena | Kryterium oceny |
---|
2,0 | nie spełnia kryteriów okreslonych dla oceny 3 |
3,0 | potrafi implementować główne podstatowe zasady paradygmatu obiektowego |
3,5 | potrafi implementować główne podstatowe zasady paradygmatu obiektowego oraz zarządzania wyjątkami |
4,0 | potrafi implementować podstatowe zasady paradygmatu obiektowego, zasady zarządzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego. |
4,5 | potrafi implementować podstatowe zasady paradygmatu obiektowego, zasady zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego oraz podstawowo używać bibliotekę standardową. |
5,0 | potrafi implementować podstatowe zasady paradygmatu obiektowego, zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego, algorytmy biblioteki standardowej, podstawy Boost oraz Blas. |