- Nazwa przedmiotu:
- Programowanie obiektowe (E)
- Koordynator przedmiotu:
- Jarosław ARABAS
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Elektronika
- Grupa przedmiotów:
- Przedmioty techniczne - podstawowe
- Kod przedmiotu:
- PROE
- Semestr nominalny:
- 1 / rok ak. 2018/2019
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 120
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- Formy zajęć i ich wymiar w semestrze:
- 
            
                - Wykład30h
- Ćwiczenia0h
- Laboratorium30h
- Projekt0h
- Lekcje komputerowe0h
 
- Wymagania wstępne:
- Znajomość języka C w stopniu umożliwiającym tworzenie programów o średnim stopniu złożoności. 
Podstawowe umiejętności w zakresie obsługi komputera. Umiejętność abstrakcyjnego myślenia. Umiejętność dostosowania się do regulaminu przedmiotu.
- Limit liczby studentów:
- 120
- Cel przedmiotu:
- Celem przedmiotu jest zapoznanie studentów z paradygmatem programowania obiektowego. W ramach przedmiotu przekazywana będzie dobra praktyka projektowania i programowania obiektowego oraz umiejętność abstrakcji problemów i ich zapisu w języku programowania. Przy okazji wykładu studenci zapoznają się także ze sposobami realizacji dynamicznych struktur danych. W ramach laboratorium studenci wykonywać będą programy według zaleceń prowadzących i będą nabywać sprawności w posługiwaniu się narzędziami wspomagającymi pracę programisty.
- Treści kształcenia:
- Treść wykładu	
Podstawowe pojęcia: typ abstrakcyjny (klasa), obiekt, metoda dostępu, ukrywanie implementacji, dziedziczenie. Paradygmat projektowania zorientowanego obiektowo. Programowanie obiektowe.
Zasadnicze rozszerzenia w stosunku do C. Referencja i wskaźnik. Modyfikator const. Identyfikacja funkcji przez nagłówek.
Przeciążanie funkcji. Przeciążanie operatorów. Domyślne wartości parametrów formalnych.
Klasa jako typ danych. Zasady dostępu: pola prywatne i publiczne. Kontekst wprowadzany przez klasę. Statyczne pola klasy.
Tworzenie i usuwanie obiektów klasy. Konstruktory i destruktory klasy. Konstruktor kopiujący. Sposoby przekazywania argumentów funkcji i zwracania wartości.
Funkcje i klasy zaprzyjaźnione.
Relacje między klasami: składnik, podzbiór. Dziedziczenie. Dziedziczenie wielokrotne klasy bazowej. Zasady dostępu do pól klasy bazowej. Szablony.
Sposób realizacji dziedziczenia. Wirtualne dziedziczenie. Wirtualne metody.
Wyjątki: sposób zgłaszania i przechwytywania, dziedziczenie wyjątków.
Pojęcie dynamicznej struktury danych. Lista liniowa. Pierścień. Graf. Drzewo binarne. Przykłady zastosowań.
Strumieniowe wejście/wyjście.
Standardowa biblioteka klas szablonowych.
Zakres laboratorium	
    Środowisko pracy. Podział kodu na fragmenty. Zarządzanie kompilacją i konsolidacją. Narzędzie make (2h).
    Proste klasy (2h).
    Przeciążanie funkcji i operatorów (2h).
    Rozdanie tematów zadań i ich analiza; zakres tematyczny: proste klasy i przeciążanie metod i operatorów (2h).
    Implementacja programów (2h).
    Testowanie i odbiór programów (2h).
    Dziedziczenie, metody wirtualne, wirtualne dziedziczenie (2h).
    Wyjątki, szablony (2h).
    Rozdanie tematów zadań i ich analiza; zakres tematyczny: złożone struktury klas, realizacja dynamicznych struktur danych (2h).
    Weryfikacja specyfikacji wstępnej programu (2h).
    Dekompozycja na klasy (2h).
    Implementacja klas (2h).
    Podział kodu źródłowego na pliki (2h).
    Uruchamianie i testowanie programów (2h).
    Odbiór programów i dokumentacji (2h).
- Metody oceny:
- 2 kolokwia wykładowe oceniane w skali 0-25 każde
laboratoria oceniane w skali 0-50
suma ocen przekłada się na ocenę wg skali:
0-50 -> 2
51-60 -> 3
61-70 -> 3.5
71-80 -> 4
81-90 -> 4.5
91-100 -> 5
warunkiem koniecznym zaliczenia jest uzyskanie po minimum 13 punktów z laboratorium i z wykładu
studenci mają możliwość przystąpić do kolokwium poprawkowego, ocenianego w skali 0-100. Ocena z tego kolokwium jest podstawą oceny z przedmiotu,  niezależnie od punktów uzyskanych w czasie semestru.
kolokwia sa pisemne z notatkami.
- Egzamin:
- nie
- Literatura:
-     Stroustrup, B.: Język C++.
    Lippmann, A.: Programowanie obiektowe.
    Silvester, P.: System operacyjny unix.
- Witryna www przedmiotu:
- zmienia się wraz z prowadzącym
- Uwagi:
- przedmiot prowadzony na spółkę przez IMiO, IRE, ISE i IT
Efekty uczenia się
    Profil ogólnoakademicki - wiedza
                    - Charakterystyka PROE_W01
- znajomość języka C++
 Weryfikacja: kolokwia i laboratorium
 Powiązane charakterystyki kierunkowe: 
                        K_W02, K_W06
 Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - umiejętności
                    - Charakterystyka PROE_U01
- umięjętność pisania i uruchamiania programów komputerowych
 Weryfikacja: laboratorium
 Powiązane charakterystyki kierunkowe: 
                        K_U07, K_U08
 Powiązane charakterystyki obszarowe: