Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)

Sylabus przedmiotu Programowanie obiektowe:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauk technicznych, studiów inżynierskich
Profil ogólnoakademicki
Moduł
Przedmiot Programowanie obiektowe
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Michał Fedorov <Michal.Fedorov@zut.edu.pl>
Inni nauczyciele Michał Fedorov <Michal.Fedorov@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia egzamin Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL3 24 2,40,38zaliczenie
wykładyW3 12 1,60,62egzamin

Wymagania wstępne

KODWymaganie wstępne
W-1Ukończony kurs Analiza matematyczna i Algebra
W-2Ukończony kurs Podstawy informatyki
W-3Ukończony kurs Wstęp do algorytmizacji
W-4Ukonczony kurs Podstawy programowania
W-5Ukończony kurs ze struktur danych i złożoności obliczeniowej

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.1
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.1
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.1
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 wzorcowej; konkretyzowanie klasy wzorcowej; specjalizowanie klasy wzorcowej; pola statyczne klas wzorcowych; wyrażenia stałe jako parametry klas wzorcowych; typy zagnieżdżone w treść klasy wzorcowej; deklaracja zaprzyjaźnienia klas wzorcowych. Specjalizacja szablonów. Dziedziczenie a klasy wzorcowe - wzorcowa klasa pochodna.2
T-L-9Listy jednokierunkowe i dwukierunkowe; tworzenie węzła; pojęcie i opracowanie iteratora; definicje metod podstawowych listy. Definicja metod podstawowych stosu i kolejki. Rekursja. Drzewa binarne.2
T-L-10Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa.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-12Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset.1
T-L-13Pojęcie predykatu. Obiekty funkcyjne. Adaptowanie obiektów funkcyjnych. Biblioteka predykatów. Algorytmy uogólnione: manipulowanie sekwencjami, sortowanie i operacji na sekwencjach posortowanych, algorytmy numeryczne.2
T-L-14Rzutowanie w czasie wykonania. Operator typeid. Zastosowanie mechanizmu RTTI.1
T-L-15Przychwytywanie wyjątku, dopasowanie wyjątków, wyjątki standardowe, specyfikacja wyjątków, bezpieczeństwo wyjątków.1
24
wykłady
T-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.2
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.1
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.1
T-W-4Dziedziczenie. Technika programowania.1
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.2
T-W-8Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.1
12

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

KODForma aktywnościGodziny
laboratoria
A-L-1Udział w laboratoriach24
A-L-2Przygotowanie się do zajęć laboratoryjnych12
A-L-3Wykonanie programistycznych zadań domowych32
A-L-4konsultacje2
A-L-5zaliczenie2
72
wykłady
A-W-1Udział w wykładach12
A-W-2Samodzielne studiowanie tematyki wykładów26
A-W-3Przygotowanie się do egzaminu6
A-W-4Egzamin2
A-W-5Konsultacje2
48

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 kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C/04_W01
Student jest w stanie wytłumaczyć zasady paradygmatu obiektowego oraz podstawowe programistyczne mechanizmy implementacji paradygmatu obiektowego
I_1A_W06, I_1A_W05T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09InzA_W01, InzA_W02, InzA_W04, InzA_W05C-2, C-1, C-3T-W-1, T-W-2, T-W-8, T-W-5, T-W-3, T-W-4, T-W-6, T-W-7M-2, M-1S-3, S-2, S-4, S-1

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C/04_U01
Student powinien umiec od podstaw implementowac specyfikacje rozwiazywanego problemu wykorzystujac programistyczne mechanizmy implementacji paradygmatu obiektowego
I_1A_U19, I_1A_U20, I_1A_U02, I_1A_U01, I_1A_U03, I_1A_U04, I_1A_U05, I_1A_U17, I_1A_U14T1A_U01, T1A_U02, T1A_U03, T1A_U04, T1A_U05, T1A_U06, T1A_U07, T1A_U08, T1A_U09, T1A_U10, T1A_U11, T1A_U12, T1A_U13, T1A_U14, T1A_U15, T1A_U16InzA_U01, InzA_U02, InzA_U03, InzA_U05, InzA_U06, InzA_U07, InzA_U08C-1, C-2, C-3T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-L-14, T-L-4, T-L-6, T-L-13, T-L-8, T-L-7, T-L-3, T-L-11, T-L-5, T-L-12, T-L-1, T-L-9, T-L-15, T-L-2, T-L-10M-1, M-2S-1, S-2, S-3, S-4

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_C/04_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 zarzadzania wyjatkami
4,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego
4,5potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego
5,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego oraz biblioteki standardowej

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_C/04_U01
Student powinien umiec od podstaw implementowac specyfikacje rozwiazywanego problemu wykorzystujac programistyczne mechanizmy implementacji paradygmatu obiektowego
2,0nie spełnia kryteriów okreslonych dla oceny 3
3,0potrafi implementowac główne podstatowe zasady paradygmatu obiektowego
3,5potrafi implementowac główne podstatowe zasady paradygmatu obiektowego oraz zarzadzania wyjatkami
4,0potrafi implementowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego.
4,5potrafi implementowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego.
5,0potrafi implementowac podstatowe zasady paradygmatu obiektowego, zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego oraz biblioteki standardowej.

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.1
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.1
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.1
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 wzorcowej; konkretyzowanie klasy wzorcowej; specjalizowanie klasy wzorcowej; pola statyczne klas wzorcowych; wyrażenia stałe jako parametry klas wzorcowych; typy zagnieżdżone w treść klasy wzorcowej; deklaracja zaprzyjaźnienia klas wzorcowych. Specjalizacja szablonów. Dziedziczenie a klasy wzorcowe - wzorcowa klasa pochodna.2
T-L-9Listy jednokierunkowe i dwukierunkowe; tworzenie węzła; pojęcie i opracowanie iteratora; definicje metod podstawowych listy. Definicja metod podstawowych stosu i kolejki. Rekursja. Drzewa binarne.2
T-L-10Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa.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-12Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset.1
T-L-13Pojęcie predykatu. Obiekty funkcyjne. Adaptowanie obiektów funkcyjnych. Biblioteka predykatów. Algorytmy uogólnione: manipulowanie sekwencjami, sortowanie i operacji na sekwencjach posortowanych, algorytmy numeryczne.2
T-L-14Rzutowanie w czasie wykonania. Operator typeid. Zastosowanie mechanizmu RTTI.1
T-L-15Przychwytywanie wyjątku, dopasowanie wyjątków, wyjątki standardowe, specyfikacja wyjątków, bezpieczeństwo wyjątków.1
24

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.2
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.1
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.1
T-W-4Dziedziczenie. Technika programowania.1
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.2
T-W-8Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.1
12

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Udział w laboratoriach24
A-L-2Przygotowanie się do zajęć laboratoryjnych12
A-L-3Wykonanie programistycznych zadań domowych32
A-L-4konsultacje2
A-L-5zaliczenie2
72
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach12
A-W-2Samodzielne studiowanie tematyki wykładów26
A-W-3Przygotowanie się do egzaminu6
A-W-4Egzamin2
A-W-5Konsultacje2
48
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/04_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_W06zna wybrane języki i techniki programowania, podstawowe techniki projektowania i wytwarzania aplikacji oraz systemów informatycznych
I_1A_W05ma wiedzę w zakresie algorytmizacji i zasad tworzenia struktur danych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
T1A_W06ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W09ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W01ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
InzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W04ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-2Ukształtowanie umiejętności z zakresu technik programowania obiektowego.
C-1Zapoznanie studentów z zasadami programowania obiektowego.
C-3Ukształtowanie umiejętności praktycznych z zakresu procesu wytwarzania oprogramowania - dyscypliny implementacji (tworzenie, kompilacja, refaktoring, debugowanie).
Treści programoweT-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.
T-W-8Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.
T-W-5Polimorfizm. Metody wirtualne i klasy polimorficzne.
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.
T-W-4Dziedziczenie. Technika programowania.
T-W-6Programowanie uogólnione. Funkcje wzorcowe i wzorce klas.
T-W-7Programowanie generyczne za pomocą biblioteki standardowej, STL.
Metody nauczaniaM-2Ćwiczenia laboratoryjne
M-1Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją
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-2Ocena formująca: Sprawdzenie programistycznych zadań domowych. Pozwala ocenić przyswojoną wiedzę z wcześniejszych tematów .
S-4Ocena podsumowująca: Testowy ekzamin pisemny
S-1Ocena formująca: Wejciówka. Pozwala oceniać przygotowanie studenta do ćwiczeń laboratoryjnych.
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 zarzadzania wyjatkami
4,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego
4,5potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego
5,0potrafi wymienic i zdefiniowac podstatowe zasady paradygmatu obiektowego, zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego oraz biblioteki standardowej
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/04_U01Student powinien umiec od podstaw implementowac specyfikacje rozwiazywanego problemu wykorzystujac programistyczne mechanizmy implementacji paradygmatu obiektowego
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U19ma umiejętność wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego
I_1A_U20ma umiejętności samokształcania się
I_1A_U02potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych
I_1A_U01potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie
I_1A_U03umie oceniać przydatność i stosować różne paradygmaty programowania, języki i środowiska programistyczne do rozwiązywania problemów dziedzinowych
I_1A_U04ma podstawowe umiejętności w zakresie programowania i podnoszenia niezawodności systemów wbudowanych
I_1A_U05potrafi tworzyć i posługiwać się dokumentacją techniczną
I_1A_U17potrafi ocenić przydatność rutynowych metod i narzędzi rozwiązania prostego zadania inżynierskiego, typowego dla reprezentowanej dyscypliny inżynierskiej oraz wybrać i zastosować właściwą metodę i narzędzia
I_1A_U14ma umiejętność tworzenia interfejsów użytkownika oraz wykorzystania różnych sposobów komunikacji z systemami komputerowymi
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie
T1A_U02potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach
T1A_U03potrafi przygotować w języku polskim i języku obcym, uznawanym za podstawowy dla dziedzin nauki i dyscyplin naukowych właściwych dla studiowanego kierunku studiów, dobrze udokumentowane opracowanie problemów z zakresu studiowanego kierunku studiów
T1A_U04potrafi przygotować i przedstawić w języku polskim i języku obcym prezentację ustną, dotyczącą szczegółowych zagadnień z zakresu studiowanego kierunku studiów
T1A_U05ma umiejętność samokształcenia się
T1A_U06ma umiejętności językowe w zakresie dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów, zgodne z wymaganiami określonymi dla poziomu B2 Europejskiego Systemu Opisu Kształcenia Językowego
T1A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T1A_U08potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
T1A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
T1A_U10potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
T1A_U11ma przygotowanie niezbędne do pracy w środowisku przemysłowym oraz zna zasady bezpieczeństwa związane z tą pracą
T1A_U12potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działań inżynierskich
T1A_U13potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
T1A_U14potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
T1A_U16potrafi - zgodnie z zadaną specyfikacją - zaprojektować oraz zrealizować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U01potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
InzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U03potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
InzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
InzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-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 programoweT-W-1Paradygmat programowania obiektowego. Języki oraz środowiska programowania obiektowego. Inkapsulacja jako element paradygmatu.
T-W-2Zarządzanie czasem życia i dostępem do składowych obiektów złożonych. Agregacja a kompozycja.
T-W-3Przeładowanie operacji, funkcji oraz przeciążanie operatorów.
T-W-4Dziedziczenie. Technika programowania.
T-W-5Polimorfizm. Metody wirtualne i klasy polimorficzne.
T-W-6Programowanie uogólnione. Funkcje wzorcowe i wzorce klas.
T-W-7Programowanie generyczne za pomocą biblioteki standardowej, STL.
T-W-8Rozpoznanie typu w czasie wykonania programu. Obsługa wyjątków.
T-L-14Rzutowanie w czasie wykonania. Operator typeid. Zastosowanie mechanizmu RTTI.
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-L-6Klasy podstawowe i pochodne. Programowanie dziedziczenia. Dostęp do składowych, inicjowanie klasy dziedziczonych, dziedziczenie a konwersja typu, dziedziczenie operatorów.
T-L-13Pojęcie predykatu. Obiekty funkcyjne. Adaptowanie obiektów funkcyjnych. Biblioteka predykatów. Algorytmy uogólnione: manipulowanie sekwencjami, sortowanie i operacji na sekwencjach posortowanych, algorytmy numeryczne.
T-L-8Definicja klasy wzorcowej; konkretyzowanie klasy wzorcowej; specjalizowanie klasy wzorcowej; pola statyczne klas wzorcowych; wyrażenia stałe jako parametry klas wzorcowych; typy zagnieżdżone w treść klasy wzorcowej; deklaracja zaprzyjaźnienia klas wzorcowych. Specjalizacja szablonów. Dziedziczenie a klasy wzorcowe - wzorcowa klasa pochodna.
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-3Konstruowanie złożonych obiektów: agregacja i kompozycja. Programowanie konstruktorów, destruktorów, inicjalizacja i kasowanie obiektów dynamicznych.
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-12Programowanie kontenerów asocjacyjnych : map, multimap, set, multiset.
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-9Listy jednokierunkowe i dwukierunkowe; tworzenie węzła; pojęcie i opracowanie iteratora; definicje metod podstawowych listy. Definicja metod podstawowych stosu i kolejki. Rekursja. Drzewa binarne.
T-L-15Przychwytywanie wyjątku, dopasowanie wyjątków, wyjątki standardowe, specyfikacja wyjątków, bezpieczeństwo wyjątkó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-10Definicja i uzycie przestrzeni nazw, programowanie kontejnerów sekwencyjnych biblioteki STL: string, vector, lista, kolejka dwukierunkowa.
Metody nauczaniaM-1Wykład informacyjny połączony z metodą badania przypadków oraz komputerową demonstracją
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-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
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia kryteriów okreslonych dla oceny 3
3,0potrafi implementowac główne podstatowe zasady paradygmatu obiektowego
3,5potrafi implementowac główne podstatowe zasady paradygmatu obiektowego oraz zarzadzania wyjatkami
4,0potrafi implementowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjakami oraz wybrane podstawowe mechanizmy programowania uogólnionego.
4,5potrafi implementowac podstatowe zasady paradygmatu obiektowego, zasady zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego.
5,0potrafi implementowac podstatowe zasady paradygmatu obiektowego, zarzadzania wyjatkami, dowolne mechanizmy programowania uogólnionego oraz biblioteki standardowej.