Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)

Sylabus przedmiotu Programowanie 2:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Programowanie 2
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Inżynierii Oprogramowania i Cyberbezpieczeństwa
Nauczyciel odpowiedzialny Michał Fedorov <Michal.Fedorov@zut.edu.pl>
Inni nauczyciele Michał Fedorov <Michal.Fedorov@zut.edu.pl>
ECTS (planowane) 6,0 ECTS (formy) 6,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW2 30 3,00,50zaliczenie
laboratoriaL2 30 3,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Algebra liniowa
W-2Wprowadzenie do informatyki
W-3Programowanie 1

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie studentów z zasadami programowania obiektowego.
C-2Ukształtowanie umiejętności z zakresu technik programowania obiektowego
C-3Ukształtowanie umiejętności praktycznych z zakresu procesu wytwarzania oprogramowania - dyscypliny implementacji (tworzenie, kompilacja, refaktoring, debugowanie).

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
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.2
T-L-2Tworzenie 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.2
T-L-3Konstruowanie złożonych obiektów: agregacja i kompozycja. Programowanie konstruktorów, destruktorów, inicjalizacja i kasowanie obiektów dynamicznych.2
T-L-4Programowanie klas zagnieżdżonych, statycznych oraz lokalnych. Wykorzystanie deklaracji friend, wskaźnika this oraz uzycie wskaźników do składowych, w tym statycznych.2
T-L-5Przeciążanie operatorów oraz programowanie operatorów konwersji typów.2
T-L-6Klasy podstawowe i pochodne. Programowanie dziedziczenia. Dostęp do składowych, inicjowanie klasy dziedziczonych, dziedziczenie a konwersja typu, dziedziczenie operatorów.2
T-L-7Metody 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.2
T-L-8Definicja 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.2
T-L-9Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa.2
T-L-10Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset.2
T-L-11Strumieni wejścia –wyjścia: pojęcie strumienia, strumienie związane z plikami, łańcuchowe strumienie, formatowanie strumienie, manipulatory.2
T-L-12Poję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.2
T-L-13Rzutowanie 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.2
T-L-14Techniki programowania bazowane na inteligentnych wskaźnikach: weak_ptr, shared_ptr, unique_ptr. Dynamiczne tablice intelegentnych wskaźników.2
T-L-15Definicja 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).2
30
wykłady
T-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.3
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.3
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.2
T-W-4Dziedziczenie. Technika programowania.2
T-W-5Polimorfizm. Metody wirtualne i klasy polimorficzne.2
T-W-6Programowanie uogólnione. Funkcje wzorcowe i wzorce klas.2
T-W-7Programowanie generyczne za pomocą biblioteki standardowej, STL. Obiekty funkcyjne i lambda funkcje.4
T-W-8Liczby losowe. Biblioteka wejścia-wyjscia. Manipulatory.3
T-W-9Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.3
T-W-10Inteligentne wskaźniki2
T-W-11Podstawy biblioteki Boost i Blas.4
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Udział w laboratoriach30
A-L-2Praca własna45
75
wykłady
A-W-1Udział w wykładach30
A-W-2Samodzielne studiowanie tematyki wykładów41
A-W-3Egzamin2
A-W-4Konsultacje2
75

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją
M-2Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Wejciówka. Pozwala oceniać przygotowanie studenta do ćwiczeń laboratoryjnych.
S-2Ocena formująca: Sprawdzenie programistycznych zadań domowych. Pozwala ocenić przyswojoną wiedzę z wcześniejszych tematów .
S-3Ocena formująca: Ocena zadań ćwiczeniowych wykonywanych w ramach zajęć laboratorinyjch. Pozwala ocenić stopień przygotowania studenta do samodzielnego wykonania programistycznych ćwiczeń domowych.
S-4Ocena podsumowująca: Testowy ekzamin pisemny

Zamierzone efekty uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
Itest_1A_C02.2_W01
Student jest w stanie wytłumaczyć zasady paradygmatu obiektowego oraz podstawowe programistyczne mechanizmy implementacji paradygmatu obiektowego
I_1A_W05, I_1A_W04C-2, C-1T-W-4, T-W-6, T-W-2, T-W-9, T-W-3, T-W-1, T-W-7, T-W-5M-1, M-2S-3, S-1, S-4, S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
Itest_1A_C02.2_U01
Student powinien umieć od podstaw implementować specyfikację rozwiązywanego problemu wykorzystując programistyczne mechanizmy implementacji paradygmatu obiektowego
I_1A_U06, I_1A_U05C-2, C-1T-L-10, T-L-14, T-L-2, T-L-12, T-L-6, T-L-9, T-L-7, T-L-8, T-L-13, T-L-1, T-L-15, T-L-11, T-L-5, T-L-3, T-L-4, T-W-4, T-W-6, T-W-2, T-W-9, T-W-3, T-W-1, T-W-7, T-W-5M-1, M-2S-3, S-1, S-4, S-2

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
Itest_1A_C02.2_W01
Student jest w stanie wytłumaczyć zasady paradygmatu obiektowego oraz podstawowe programistyczne mechanizmy implementacji paradygmatu obiektowego
2,0nie spełnia kryteriów okreslonych dla oceny 3
3,0potrafi wymienic i zdefiniowac główne podstatowe zasady paradygmatu obiektowego
3,5potrafi wymienic i zdefiniowac główne podstatowe zasady paradygmatu obiektowego oraz zarządzania wyjątkami
4,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarządzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego.
4,5potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego.
5,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego oraz biblioteki standardowej.

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
Itest_1A_C02.2_U01
Student powinien umieć od podstaw implementować specyfikację rozwiązywanego problemu wykorzystując programistyczne mechanizmy implementacji paradygmatu obiektowego
2,0nie spełnia kryteriów okreslonych dla oceny 3
3,0potrafi implementować główne podstatowe zasady paradygmatu obiektowego
3,5potrafi implementować główne podstawowe zasady paradygmatu obiektowego oraz zarządzania wyjątkami
4,0potrafi implementować podstawowe zasady paradygmatu obiektowego, zasady zarządzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego.
4,5potrafi implementować podstawowe zasady paradygmatu obiektowego, zasady zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego oraz podstawowo używać bibliotekę standardową.
5,0potrafi implementować podstawowe zasady paradygmatu obiektowego, zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego, algorytmy biblioteki standardowej, podstawy Boost oraz Blas.

Literatura podstawowa

  1. J. Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 2000
  2. Jesse Liberty, C++ dla każdego, Helion, Gliwice, 2002
  3. Bruce Eckel, Thinking in C++. Edycja polska, Helion, Gliwice, 2002
  4. Bruce Eckel, Chuck Allison, Thinking in C++. Edycja polska. Tom 2, Helion, Gliwice, 2004
  5. Stephen Prata, Język C++. Szkoła programowania. Wydanie V, Helion, Gliwice, 2006
  6. Nicolai M. Josuttis, C++. Biblioteka standardowa. Podręcznik programisty, Helion, Glewice, 2003
  7. J. Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 2003

Literatura dodatkowa

  1. Bjarne Stroustrup, Programowanie. Teoria i praktyka z wykorzystaniem C++, Helion, Gliwice, 2010

Treści programowe - laboratoria

KODTreść programowaGodziny
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.2
T-L-2Tworzenie 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.2
T-L-3Konstruowanie złożonych obiektów: agregacja i kompozycja. Programowanie konstruktorów, destruktorów, inicjalizacja i kasowanie obiektów dynamicznych.2
T-L-4Programowanie klas zagnieżdżonych, statycznych oraz lokalnych. Wykorzystanie deklaracji friend, wskaźnika this oraz uzycie wskaźników do składowych, w tym statycznych.2
T-L-5Przeciążanie operatorów oraz programowanie operatorów konwersji typów.2
T-L-6Klasy podstawowe i pochodne. Programowanie dziedziczenia. Dostęp do składowych, inicjowanie klasy dziedziczonych, dziedziczenie a konwersja typu, dziedziczenie operatorów.2
T-L-7Metody 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.2
T-L-8Definicja 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.2
T-L-9Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa.2
T-L-10Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset.2
T-L-11Strumieni wejścia –wyjścia: pojęcie strumienia, strumienie związane z plikami, łańcuchowe strumienie, formatowanie strumienie, manipulatory.2
T-L-12Poję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.2
T-L-13Rzutowanie 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.2
T-L-14Techniki programowania bazowane na inteligentnych wskaźnikach: weak_ptr, shared_ptr, unique_ptr. Dynamiczne tablice intelegentnych wskaźników.2
T-L-15Definicja 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).2
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.3
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.3
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.2
T-W-4Dziedziczenie. Technika programowania.2
T-W-5Polimorfizm. Metody wirtualne i klasy polimorficzne.2
T-W-6Programowanie uogólnione. Funkcje wzorcowe i wzorce klas.2
T-W-7Programowanie generyczne za pomocą biblioteki standardowej, STL. Obiekty funkcyjne i lambda funkcje.4
T-W-8Liczby losowe. Biblioteka wejścia-wyjscia. Manipulatory.3
T-W-9Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.3
T-W-10Inteligentne wskaźniki2
T-W-11Podstawy biblioteki Boost i Blas.4
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Udział w laboratoriach30
A-L-2Praca własna45
75
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach30
A-W-2Samodzielne studiowanie tematyki wykładów41
A-W-3Egzamin2
A-W-4Konsultacje2
75
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięItest_1A_C02.2_W01Student jest w stanie wytłumaczyć zasady paradygmatu obiektowego oraz podstawowe programistyczne mechanizmy implementacji paradygmatu obiektowego
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W05Ma wiedzę o nowoczesnych metodach projektowania, analizowania, wytwarzania, testowania oprogramowania oraz rozwiązywania wybranych zadań inżynierskich obejmujących w szczególności narzędzia wspomagające wytwarzanie oprogramowania na różnych etapach powstawania, eksploatacji i rozwoju systemów informatycznych.
I_1A_W04Ma wiedzę o stanie obecnym i kierunkach rozwoju kluczowych obszarów informatyki i wybranych aspektów dyscyplin z otoczenia informatyki.
Cel przedmiotuC-2Ukształtowanie umiejętności z zakresu technik programowania obiektowego
C-1Zapoznanie studentów z zasadami programowania obiektowego.
Treści programoweT-W-4Dziedziczenie. Technika programowania.
T-W-6Programowanie uogólnione. Funkcje wzorcowe i wzorce klas.
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.
T-W-9Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.
T-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.
T-W-7Programowanie generyczne za pomocą biblioteki standardowej, STL. Obiekty funkcyjne i lambda funkcje.
T-W-5Polimorfizm. Metody wirtualne i klasy polimorficzne.
Metody nauczaniaM-1Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-3Ocena formująca: Ocena zadań ćwiczeniowych wykonywanych w ramach zajęć laboratorinyjch. Pozwala ocenić stopień przygotowania studenta do samodzielnego wykonania programistycznych ćwiczeń domowych.
S-1Ocena formująca: Wejciówka. Pozwala oceniać przygotowanie studenta do ćwiczeń laboratoryjnych.
S-4Ocena podsumowująca: Testowy ekzamin pisemny
S-2Ocena formująca: Sprawdzenie programistycznych zadań domowych. Pozwala ocenić przyswojoną wiedzę z wcześniejszych tematów .
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów okreslonych dla oceny 3
3,0potrafi wymienic i zdefiniowac główne podstatowe zasady paradygmatu obiektowego
3,5potrafi wymienic i zdefiniowac główne podstatowe zasady paradygmatu obiektowego oraz zarządzania wyjątkami
4,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarządzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego.
4,5potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego.
5,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego oraz biblioteki standardowej.
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięItest_1A_C02.2_U01Student 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ówI_1A_U06Potrafi pozyskiwać, przesyłać, przetwarzać dane, podsumowywać wyniki eksperymentów empirycznych, dokonywać interpretacji uzyskanych wyników i formułować wynikające z nich wnioski.
I_1A_U05Potrafi zaplanować i zrealizować eksperymenty w zakresie oceny wydajności, złożoności, efektywności systemów informatycznych i ich składowych.
Cel przedmiotuC-2Ukształtowanie umiejętności z zakresu technik programowania obiektowego
C-1Zapoznanie studentów z zasadami programowania obiektowego.
Treści programoweT-L-10Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset.
T-L-14Techniki programowania bazowane na inteligentnych wskaźnikach: weak_ptr, shared_ptr, unique_ptr. Dynamiczne tablice intelegentnych wskaźników.
T-L-2Tworzenie 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-12Poję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-6Klasy podstawowe i pochodne. Programowanie dziedziczenia. Dostęp do składowych, inicjowanie klasy dziedziczonych, dziedziczenie a konwersja typu, dziedziczenie operatorów.
T-L-9Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa.
T-L-7Metody 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-8Definicja 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-13Rzutowanie 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-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-15Definicja 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).
T-L-11Strumieni wejścia –wyjścia: pojęcie strumienia, strumienie związane z plikami, łańcuchowe strumienie, formatowanie strumienie, manipulatory.
T-L-5Przeciążanie operatorów oraz programowanie operatorów konwersji typów.
T-L-3Konstruowanie złożonych obiektów: agregacja i kompozycja. Programowanie konstruktorów, destruktorów, inicjalizacja i kasowanie obiektów dynamicznych.
T-L-4Programowanie 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-W-4Dziedziczenie. Technika programowania.
T-W-6Programowanie uogólnione. Funkcje wzorcowe i wzorce klas.
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.
T-W-9Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.
T-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.
T-W-7Programowanie generyczne za pomocą biblioteki standardowej, STL. Obiekty funkcyjne i lambda funkcje.
T-W-5Polimorfizm. Metody wirtualne i klasy polimorficzne.
Metody nauczaniaM-1Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-3Ocena formująca: Ocena zadań ćwiczeniowych wykonywanych w ramach zajęć laboratorinyjch. Pozwala ocenić stopień przygotowania studenta do samodzielnego wykonania programistycznych ćwiczeń domowych.
S-1Ocena formująca: Wejciówka. Pozwala oceniać przygotowanie studenta do ćwiczeń laboratoryjnych.
S-4Ocena podsumowująca: Testowy ekzamin pisemny
S-2Ocena formująca: Sprawdzenie programistycznych zadań domowych. Pozwala ocenić przyswojoną wiedzę z wcześniejszych tematów .
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów okreslonych dla oceny 3
3,0potrafi implementować główne podstatowe zasady paradygmatu obiektowego
3,5potrafi implementować główne podstawowe zasady paradygmatu obiektowego oraz zarządzania wyjątkami
4,0potrafi implementować podstawowe zasady paradygmatu obiektowego, zasady zarządzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego.
4,5potrafi implementować podstawowe zasady paradygmatu obiektowego, zasady zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego oraz podstawowo używać bibliotekę standardową.
5,0potrafi implementować podstawowe zasady paradygmatu obiektowego, zarządzania wyjątkami, dowolne mechanizmy programowania uogólnionego, algorytmy biblioteki standardowej, podstawy Boost oraz Blas.