Wydział Informatyki
Kierunek studiów Informatyka i ekonometria Poziom i forma studiów pierwszego stopnia inżynierskie stacjonarne
Specjalność / Ścieżka dyplomowania --- Profil kształcenia praktyczny
Nazwa przedmiotu Zaawansowane techniki programistyczne Kod przedmiotu IE1ZTP
Rodzaj przedmiotu obieralny
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 5/6
26 30 Punkty ECTS 4
Przedmioty wprowadzające Programowanie obiektowe (IE1POB),  
Cele przedmiotu

Zapoznanie studentów z wybranymi wzorcami projektowymi (w tym wzorcami architekturalnymi) i ich przykładowymi zastosowaniami w wybranych językach i bibliotekach (C++, Java, Smalltalk, Python) jako zaawansowanymi technikami programowania stosowanymi w programowaniu obiektowym. Nauczenie praktycznego stosowanie wzorców projektowych w prostych programach pisanych na zajęciach. Nauczenie projektowania prostych systemów informatycznych z wykorzystaniem wzorców a także doskonalenie ich implementowania w wybranych językach i dokumentowania. Wykształcenie praktyki korzystania z dokumentacji technicznej wybranych języków programowania. Wykształcenie nawyku systematycznego przyswajania wiedzy z zakresu wykładu. Zespołowe realizowanie prostych systemów informatycznych.

Treści programowe

Wykad:
Pojęcia wzorca projektowego. Klasyfikacja wzorców projektowych. Wzorce projektowe i architekturalne (nazwy angielskie): Singleton, Factory Method, Prototype, Abstract Factory, Builder, Proxy, Adapter, Decorator, Composite, Flyweight, Facade, Bridge, Command, Strategy, TemplateMethod, Iterator, State, Mediator, Observer, Visitor, Layers, Pipes and Filters, Blackboard, Broker, Refleksja, Microkernel, Model-View-Controller, Presentation-Abstraction-Control. Języki o dynamicznym typowaniu (Smalltalk, Python). Metaklasy. Techniki/technologie wykorzystujące wzorce: Java I/O, C++ STL. Projektowanie z wykorzystaniem wzorców (JUnit), języki wzorców.

Pracownia specjalistyczna:
Pisanie prostych programów wykorzystujących wybrane wzorce projektowe. Projektowanie i implementacja większych programów wykorzystujących wybrane wzorce projektowe.

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,   wykład informacyjny,  

Forma zaliczenia

Wykład: Zaliczenie na podstawie sprawdzianu (kolokwium) pisemnego oraz oceny z Ps.
Pracownia specjalistyczna: sprawdziany wiedzy teoretycznej przed zajęciami, ocena wybranych programów realizowanych na zajęciach, większy program/projekt realizowany częściowo poza zajęciami.

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 wymienia i opisuje wzorce projektowego (w tym na przykładach w tworzonych programach) K_W05
K_W16
EU2 stosuje wzorce projektowe w tworzonych prostych programach K_U03
K_U18
EU3 projektuje z wykorzystaniem wzorców projektowych, implementuje i dokumentuje proste systemy informatyczne K_U05
K_U18
EU4 pozyskuje dodatkową wiedzę nt. szczegółowych rozwiązań wybranych języków programowania na podstawie dokumentacji technicznej K_U20
EU5 potrafi pracować w małych zespołach nad prostymi projektami K_U05
K_U11
EU6 wykształca nawyk regularnego przyswajania wiedzy z zakresu wykładu K_U20
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 sprawdzian pisemny W
EU2 ocena programów pisanych na Ps Ps
EU3 ocena prostego projektu (w tym projekt z użyciem wzorców) Ps
EU4 ocena prostego projektu (wykorzystanie API użytego języka) Ps
EU5 ocena prostego projektu (podział i organizacja pracy) Ps
EU6 sprawdziany wejściowe na Ps Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach 26
2 - Udział w pracowni specjalistycznej 30
3 - Przygotowanie do pracowni specjalistycznej (na podstawie wykładu i innych źródeł) 10
4 - Udział w konsultacjach 5
5 - Realizacja zadań projektowych (w tym przygotowanie prezentacji) 25
6 - Przygotowanie do zaliczenia 4
RAZEM: 100
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 61
(2)+(4)+(1)
2.4
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 65
(5)+(3)+(2)
2.6
Literatura podstawowa

1. Gamma, E., Helm, R., Johnson, R., Vlissides,J.: Design Patterns: elements of reusable object-oriented software. Addison-Wesley Publ., 1995.
2. Buschmann, F.: Pattern-oriented software architecture. [Vol. 1], A system of patterns. John Wiley & Sons, 2008.
3. Buschmann, F., Henney, K., Schmidt, D.C.: Pattern-oriented software architecture. Vol.5, On patterns and pattern languages. John Wiley a. Sons, 2007.

Literatura uzupełniająca

1. Eckel, B.: Thinking in Patterns in Java. http://www.mindview.net/Books/TIPatterns/
2. Eckel, B.: Thinking in Python. http://www.mindview.net/Books/TIPython

Jednostka realizująca Katedra Oprogramowania Data opracowania programu
Program opracował(a) dr inż. Marek Tabędzki 2021.04.28