Kod przedmiotu |
07 67 3010 17 |
Liczba punktów ECTS |
6 |
Nazwa przedmiotu w języku prowadzenia |
Object Oriented Programming |
Nazwa przedmiotu w języku polskim |
Object Oriented Programming (Programowanie obiektowe) |
Nazwa przedmiotu w języku angielskim |
Object Oriented Programming |
Język prowadzenia zajęć |
angielski |
Poziom studiów |
studia I stopnia |
Kierownik przedmiotu |
dr inż. Arkadiusz Tomczyk |
Realizatorzy przedmiotu |
dr inż. Przemysław Nowak, mgr inż. Wiktor Wandachowicz |
Formy zajęć i liczba godzin w semestrze |
|
Wykład |
Ćwiczenia |
Laboratorium |
Projekt |
Seminarium |
Inne |
Suma godzin w semestrze |
Godziny kontaktowe |
30 |
|
30 |
|
|
0 |
60 |
Czy e-learning |
Nie |
Nie |
Nie |
Nie |
Nie |
Nie |
|
Kryteria oceny (waga) |
0,50 |
|
0,50 |
|
|
0,00 |
|
|
Cel przedmiotu |
- Zapoznanie studentów z obiektowym paradygmatem programowania.
- Nabycie przez studentów umiejętności praktycznego stosowania obiektowego paradygmatu programowania na przykładzie języka C++.
- Nabycie przez studentów podstawowych umiejętności analizy i projektowania programów obiektowych
|
Efekty kształcenia |
- Wyjaśnić ideę i podstawowe pojęcia obiektowego paradygmatu programowania.
- Objaśnić podstawową notację diagramów klas języka UML.
- Tworzyć na podstawie wymagań użytkownika, niezależne od języka programowania, projekty obiektowe zadanych aplikacji z wykorzystaniem diagramów klas języka UML.
- Wymienić mechanizmy języków programowania wspierające obiektowy paradygmat programowania oraz omówić je na przykładzie języka C++.
- Tworzyć programy obiektowe w języku C++ w oparciu o wcześniej stworzone projekty obiektowe.
- Korzystać z obiektowych elementów standardowej biblioteki języka C++, a także korzystać z istniejących oraz tworzyć własne biblioteki w tym języku.
- Dyskutować możliwe warianty projektu obiektowego oraz możliwe sposoby jego implementacji w języku C++ i uzasadniać przyjęte rozwiązania.
|
Metody weryfikacji efektów kształcenia |
1. egzamin
2. egzamin
3. projekt
4. egzamin
5. projekt, kolokwium laboratoryjne
6. projekt, kolokwium laboratoryjne
7. projekt
|
Wymagania wstępne |
Podstawy progamowania (student zna podstawy strukturalnego paradygmatu programowania, student potrafi wyrazić podstawowe algorytmy w języku C) |
Treści kształcenia z podziałem na formy |
WYKŁAD
Paradygmaty programowania. Programowanie strukturalne, proceduralne, obiektowe. Przykłady.
Podstawowe pojęcia programowania obiektowego: klasa, obiekt, atrybut, usługa, hermetyzacja, dziedziczenie, polimorfizm, interfejs. Zależności i komunikacja między obiektami.
Wybrane elementy inżynieria oprogramowania (projektowanie, implementacja, testowanie). Diagram klas UML. Wzorce projektowe. Tworzenie i wykorzystanie bibliotek.
Programowanie obiektowe a języki programowania. Język C++ jako przykład języka wspierającego programowanie obiektowe: klasy, obiekty, pola, metody, konstruktory, destruktory, kwalifikatory dostępu, dziedziczenie, lista inicjalizacyjna, konstruktory kopiujące, przeciążanie operatorów, metody wirtualne, klasy abstrakcyjne, metody czysto wirtualne.
Programowanie generyczne. Wzorce klas, funkcji i metod języka C++ jako przykład tworzenia oprogramowania generycznego.
Obsługa błędów z wykorzystaniem mechanizmu wyjątków. Standardowa biblioteka języka C++ ze szczególnym uwzględnieniem biblioteki STL. Korzystanie ze standardowej biblioteki ze szczególnym uwzględnieniem obsługi strumieni, wzorców klas kontenerowych oraz algorytmów uogólnionych.
Wybrane elementy nowego standardu języka C++: wyrażenia lambda, sprytne wskaźniki, metody inicjalizacji zmiennych i struktur, itp.
ĆWICZENIA LABORATORYJNE
Celem ćwiczeń laboratoryjnych jest nabycie praktycznych umiejętności w zakresie projektowania i implementacji z wykorzystaniem metodologii obiektowej i własności języka C++.
Zajęcia będą podzielone na dwie części. Przez pierwszą część zajęć grupy realizować będą projekt pod nadzorem prowadzącego bazując na wiedzy nabytej w trakcie wykładów. Ta część nie będzie oceniana. W drugiej części zajęć studenci będą przygotowywać własny projekt (dokumentacja i implementacja) oraz pisać kolokwium laboratoryjne. Ocena końcowa będzie średnią ważoną z oceny za projekt i oceny z kolokwium. |
Literatura podstawowa |
- Stroustrup B.: Programming: Principles and Practice Using C++, Addison-Wesley, 2014 (http://www.stroustrup.com)
- Eckel B.: Thinking in C++, Vol. 1: Introduction to Standard C++, 2nd Edition, Prentice Hall, 2000 (https://archive.org/details/TICPP2ndEdVolOne)
- Eckel B., Allison Ch.: Thinking in C++, Volume 2: Practical Programming, Pearson 2003 (https://archive.org/details/TICPP2ndEdVolTwo)
- UML specification, https://www.omg.org/spec/UML/2.0/
|
Literatura uzupełniająca |
- Subversion documentation, https://subversion.apache.org/
- Git documentation, https://git-scm.com/
- Make documentation, https://www.gnu.org/software/make/
- CMake documentation, https://cmake.org/
- Boost library documentation, https://www.boost.org/
|
Przeciętne obciążenie godzinowe studenta pracą własną |
98 |
Uwagi |
Metody i narzędzia dydaktyczne:
1. prezentacja, studium przypadku
2. prezentacja, zajęcia warsztatowe
3. studium przypadku, zajęcia warsztatowe, samodzielne przygotowanie projektu
4. studium przypadku, zajęcia warsztatowe
5. studium przypadku, zajęcia warsztatowe, samodzielna implementacja projektu
6. studium przypadku, zajęcia warsztatowe, samodzielna implementacja projektu
7. zajęcia warsztatowe, dyskusja |
Aktualizacja |
2018-09-12 22:01:39 |