- Nazwa przedmiotu:
- Języki i techniki programowania cz. 2
- Koordynator przedmiotu:
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Geoinformatyka
- Grupa przedmiotów:
- Obowiązkowe
- Kod przedmiotu:
- 1060-GI000-ISP-2008
- Semestr nominalny:
- 2 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 1) Liczba godzin kontaktowych - 47 godz., w tym: a) uczestnictwo w wykładach (15 godz.), b) uczestnictwo w ćwiczeniach (30 godz.), c) udział w konsultacjach (2 godz.). 2) Praca własna studenta - 60 godz. w tym: a) przygotowanie do ćwiczeń (15 godz.), b) samodzielna praca projektowa (30 godz.), c) przygotowanie do egzaminu (15 godz.). RAZEM: 107 godz. co odpowiada 4 pkt. ECTS.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 1,8 pkt. ECTS - liczba godzin kontaktowych - 47 godz., w tym: a) uczestnictwo w wykładach (15 godz.), b) uczestnictwo w ćwiczeniach (30 godz.), c) udział w konsultacjach (2 godz.).
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 2,2 pkt. ECTS - 60 godz., w tym: a) uczestnictwo w ćwiczeniach (30 godz.), b) samodzielna praca projektowa (30 godz.).
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład15h
- Ćwiczenia30h
- Laboratorium0h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Znajomość podstaw informatyki i techniki komputerowej, umiejętność programowania strukturalnego, znajomość podstawowych algorytmów i struktur danych wykorzystywanych w programowaniu
- Limit liczby studentów:
- -
- Cel przedmiotu:
- Celem przedmiotu jest zapoznanie studentów z programowaniem obiektowym, wzorcami projektowymi oraz metodami tworzenia interfejsów graficznych
- Treści kształcenia:
- Wykłady:
1. Dziedziczenie: klasy bazowe i pochodne. Możliwości identyfikacji klasy obiektu w czasie kompilacji i wykonania programu. Drzewo dziedziczenia i konwersje typów.
2. Dziedziczenie: metody wirtualne, metody czysto wirtualne i klasy abstrakcyjne. Znaczenie destruktorów wirtualnych.
3. Dziedziczenie, agregacja, kompozycja. Zasady stosowania poszczególnych rozwiązań.
4. Wykorzystanie dziedziczenia, obiektów abstrakcyjnych w programowaniu elementów graficznych.
5. Wzorce projektowe: podstawy. Wzorce czynnościowe: iterator, obserwator, odwiedzający, metoda szablonowa.
6. Strukturalne wzorce projektowe: fasada, dekorator, adapter.
7. Konstrukcyjne wzorce projektowe: singleton, metoda wytwórcza, fabryka abstrakcyjna.
8. Zasady wykorzystania wzorców projektowych; adaptacja do konkretnych potrzeb.
9. Podstawy graficznych interfejsów użytkownika: zdarzenia i ich obsługa.
10. Typowe elementy graficznego interfejsu użytkownika i ich parametry.
11. Separacja warstwy prezentacji oraz obsługi zdarzeń. Polecenia.
12. Podstawy wzorca model-widok-kontroler. Przykłady realizacji wzorca MVC.
13. Wykorzystanie wzorca MVC do tworzenia aplikacji.
14. Automatyzacja procesu tworzenia oprogramowania: generatory kodu. Narzędzia wspomagające pracę programisty: system kontroli wersji, system ciągłej integracji.
15. Podstawowe informacje dotyczące innych, powszechnie używanych języków programowania i środowisk programowania.
Ćwiczenia:
1. Prosta rodzina klas z wykorzystaniem dziedziczenia.
2. Wykorzystanie czynnościowych wzorców projektowych w prostym programie z graficzną prezentacją wyników działania.
3. Program wykorzystujący konstrukcyjne wzorce projektowe i hierarchię klas.
4. Prosty program z graficznym interfejsem użytkownika.
5. Program wykorzystujący strukturę model-widok-kontroler do obsługi dokumentów o różnej strukturze.
- Metody oceny:
- W trakcie zajęć student może zgromadzić maksymalnie 100 punktów podzielonych na: 50 punktów z zadań programistycznych ocenianych w skali 0-10, 40 punktów za egzamin przeprowadzony w formie komputerowej oraz 10 punktów za realizację dodatkowych zadań domowych. Do zaliczenia przedmiotu trzeba uzyskać minimum 50% punktów z egzaminu (ocena z wykładu) oraz zadań programistycznych (ocena z ćwiczeń). Punkty są przeliczane na oceny wg następujących zakresów: 0-50 punktów – ocena 2, 51-60 punktów – ocena 3.0, 61-70 punktów – ocena 3.5, 71-80 punktów - ocena 4.0, 81-90 punktów – ocena 4.5, 91-100 punktów – ocena 5.0.
- Egzamin:
- tak
- Literatura:
- 1) Bjarne Stroustrup, Programowanie. Teoria i praktyka z wykorzystaniem C++, Helion, 2013.
2) Robert Nowak, Andrzej Pająk, Język C++ mechanizmy, wzorce, biblioteki, btc, 2013.
3) Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, Helion, 2010
- Witryna www przedmiotu:
- -
- Uwagi:
- Oprogramowanie wykorzystywane na ćwiczeniach: zestaw kompilatorów i narzędzi GCC (MinGW), zintegrowane środowisko Eclipse CDT
Efekty uczenia się
Profil praktyczny - wiedza
- Charakterystyka 1060-GI000-ISP-2008_W01
- Zna zasady i mechanizmy programowania obiektowego
Weryfikacja: Egzamin
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka 1060-GI000-ISP-2008_W02
- Zna podstawowe wzorce projektowe i zasady ich wykorzystania
Weryfikacja: Egzamin
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka 1060-GI000-ISP-2008_W03
- Zna metody tworzenia graficznego interfejsu użytkownika
Weryfikacja: Egzamin
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka 1060-GI000-ISP-2008_W04
- Ma podstawową wiedzę w zakresie automatyzacji procesu tworzenia i testowania oprogramowania
Weryfikacja: Egzamin
Powiązane charakterystyki kierunkowe:
K_W03, K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil praktyczny - umiejętności
- Charakterystyka 1060-GI000-ISP-2008_U01
- Potrafi zaprojektować i napisać program w sposób obiektowy
Weryfikacja: Zadanie programistyczne
Powiązane charakterystyki kierunkowe:
K_U01, K_U06, K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UW, I.P6S_UU
- Charakterystyka 1060-GI000-ISP-2008_U02
- Potrafi zastosować wzorce projektowe we własnym programie
Weryfikacja: Zadanie programistyczne
Powiązane charakterystyki kierunkowe:
K_U01, K_U06, K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UW, I.P6S_UU
- Charakterystyka 1060-GI000-ISP-2008_U03
- Potrafi skorzystać z bibliotek i ich dokumentacji
Weryfikacja: Zadanie programistyczne
Powiązane charakterystyki kierunkowe:
K_U01, K_U06, K_U10, K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UW, I.P6S_UU
- Charakterystyka 1060-GI000-ISP-2008_U04
- Potrafi zaprojektować i napisać program z prostym graficznym interfejsem użytkownika
Weryfikacja: Zadanie programistyczne
Powiązane charakterystyki kierunkowe:
K_U01, K_U06, K_U10, K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UW, I.P6S_UU
Profil praktyczny - kompetencje społeczne
- Charakterystyka 1060-GI000-ISP-2008_K01
- Potrafi współpracować w zespole rozwiązując przydzielone problemy
Weryfikacja: Zadanie programistyczne
Powiązane charakterystyki kierunkowe:
K_K01, K_K04
Powiązane charakterystyki obszarowe:
I.P6S_KK, I.P6S_KO, I.P6S_KR