Programowanie obiektowe dla AiR
0800-ARPROBIEKT
Program zajęć:
1. Projektowanie obiektowe - kapsułkowanie, ochrona danych
2. Klasy i obiekty, ochrona danych przez modyfikatory dostępu
3. Tworzenie i destrukcja obiektów i tablic obiektów
4. Polimorfizm - przeciążanie operatorów
5. Dziedziczenie,
a. Klasy bazowe i pochodne, hierarchie klas
b. Dziedziczenie wielokrotne, dziedziczenie wirtualne
6. Abstrakcyjne typy danych
a. Metody wirtualne, klasy abstrakcyjne, wirtualne destruktory
b. Interfejsy a klasy abstrakcyjne
7. Wzorce (ang. templates) funkcji i klas
8. Obsługa wyjątków
9. Specyfika C++
a. l-wartości i r-wartości, efektywne przekazywanie argumentów itp.
b. Przestrzenie nazw
c. RTTI - runtime type identification
d. Standard Template Library (STL)
10. Rozszerzenia języka C++ w standardach C++11, C++14, C++17 i C++20
Laboratorium obejmuje zajęcia komputerowe umożliwiające praktyczne przećwiczenie zagadnień omawianych na wykładzie.
Całkowity nakład pracy studenta
Godziny realizowane z udziałem nauczycieli (45 godz.):
- udział w wykładach – 15 godz.
- udział w laboratorium – 30 godz.
Czas poświęcony na pracę indywidualną studenta (45 godz.):
- przygotowanie do laboratorium – 15 godz.
- pisanie prac, projektów – 15 godz.
- przygotowanie do kolokwium – 15 godz.
Łącznie: 90 godz. (3 punkty ECTS)
Efekty uczenia się - wiedza
W01: posiada wiedzę w zakresie tworzenia i analizy algorytmów, analizy ich złożoności obliczeniowej, zapisu algorytmów w języku C++.
W02: posiada wiedzę na temat projektowania i programowania obiektowego z użyciem narzędzi dostępnych w języku C++.
W03: ma podstawową wiedzę o cyklach życia systemów projektowanych i implementowanych obiektowo; posiada wiedzę w zakresie obiektowych konstrukcji systemów, posiada wiedzę o przydatnych narzędziach, bibliotekach programowania obiektowego i sposobach ich wykorzystania do budowania systemów.
W04: zna metody i techniki rozwiązywania zadań inżynierskich poprzez odpowiednie projektowanie obiektowych modeli.
W05: zna możliwości narzędzi programistycznych w zakresie tworzenia obiektowo-zorientowanych rozwiązań.
Efekty przedmiotowe W01-W05 realizują efekty kierunkowe K_W03, K_W05.
Efekty uczenia się - umiejętności
U01: ma umiejętność formułowania algorytmów i ich programowania z użyciem wybranych narzędzi programistycznych oraz potrafi ocenić złożoność obliczeniową algorytmów i problemów informatycznych
U02: potrafi stworzyć model obiektowy prostego systemu informatycznego; potrafi zastosować metody analizy problemu, wyodrębniania niezależnych modułów, uogólniania zagadnień dla tworzenia rozwiązań problemów w postaci obiektowo zorientowanych modeli
U03: potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań informatyczno-inżynierskich; potrafi wykorzystywać właściwe narzędzia programistyczne w celu obsługi obiektowo zorientowanych projektów
U04: potrafi ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych oraz wybrać i zastosować właściwą metodę i narzędzia do typowych zadań informatycznych
U05: umie planować i przeprowadzać zaawansowane eksperymenty lub obserwacje zbudowanych modeli informatycznych dla różnego rodzaju zadań,
Efekty przedmiotowe U01-U05 realizują efekty kierunkowe K_U03, K_U05, K_U10,
Efekty uczenia się - kompetencje społeczne
K01: jest świadomy odpowiedzialności za zadania programistyczno-inżynierskie realizowane w zespole i potrafi przyjąć funkcję lidera
Efekt przedmiotowy K01 realizuje efekty kierunkowe K_K02, K_K03
Metody dydaktyczne
Wykład ilustrowany jest licznymi przykładami. Materiały są udostępniane w formie elektronicznej.
Problemy projektowe i implementacyjne są dyskutowane i rozwiązywane na bieżąco w ramach laboratorium.
Metody dydaktyczne podające:
- wykład informacyjny (konwencjonalny)
Metody dydaktyczne poszukujące:
- klasyczna metoda problemowa
- laboratoryjna
- projektu
Metody dydaktyczne podające
- wykład informacyjny (konwencjonalny)
Metody dydaktyczne poszukujące
- klasyczna metoda problemowa
- laboratoryjna
- projektu
Rodzaj przedmiotu
przedmiot obligatoryjny
Wymagania wstępne
Podstawy programowania w języku C.
Koordynatorzy przedmiotu
Kryteria oceniania
Metody oceniania:
kolokwium sprawdzające efekty przedmiotowe W01-W05,
projekty i praca bieżąca w ramach laboratorium sprawdzające umiejętności U01-U05.
Kryteria oceniania:
Wykład: zaliczenie bez oceny na podstawie kolokwium przeprowadzonego w ramach laboratorium
nznal < 50%
zal >= 50%
Laboratorium – zaliczenie na ocenę na podstawie wyników kolokwium (40%) oraz oceny przygotowanych projektów i pracy bieżącej (60%):
ndst- 50%
dst- 60%
dst plus- 65%
db- 70%
db plus- 75%
bdb- od 80%
Praktyki zawodowe
Literatura
1. Bjarne Stroustrup "Język C++", WNT 2002.
2. Stanley B. Lippman, Josee Lajoie "Podstawy języka C++", WNT 2001.
3. Specyfikacja standardu języka C++ - "draft" – 2.12.1996.
4. https://www.stroustrup.com/C++.html
5. https://en.cppreference.com/w/cpp/language
6. https://lhcb.github.io/developkit-lessons/first-development-steps/05-cpp.html
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i
terminach zajęć) mogą być dostępne w serwisie USOSweb: