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. 2019/2020
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_U08, K_U07
Powiązane charakterystyki obszarowe: