Zaawansowane zagadnienia programowania

Transkrypt

Zaawansowane zagadnienia programowania
Zaawansowane zagadnienia programowania
Wydział Informatyki
Nazwa
programu
kształcenia
Informatyka
Poziom i forma studiów
I stopień stacjonarne
Specjalność
---
Ścieżka dyplomowania
2013/2014Z - 2016/2017Z
Nazwa
przedmiotu
Zaawansowane zagadnienia programowania
Kod przedmiotu
INF1ZZPTT
Punkty ECTS
4
Rodzaj
przedmiotu
obieralny
Semestr 5
Liczba
godzin w
semestrze
W - 0 Ćw - 0 PS - 45 P - 0 L - 0 S - 0
Przedmioty
wprowadzające
Inżynieria oprogramowania (I36001), Programowanie obiektowe (I23024 ), Celem przedmiotu jest pogłębienie znajomości wybranych zagadnień programowania nieomawianych w ramach innych przedmiotów z obszaru Inżynierii
Oprogramowania. Zagadnienia te będą obejmowały ciekawe aspekty programowania (z naciskiem na język Java) niezbędne przy pracy na realnych projektach w
biznesie.
Założenia i
cele
przedmiotu
Po ukończeniu kursu student:
1. Posiada pogłębioną wiedzę na temat języków obiektowych (szczególnie Java) w kontekście realnych problemów biznesowych.
2. Potrafi zastosować wzorce projektowe w praktyce.
3. Tworzy oprogramowanie w wyższej jakości dzięki poznaniu technik zarządzania jakością w kodzie i procesem Quality Assurance.
4. Potrafi technicznie analizować wymagania biznesowe i projektować/implementować rozwiązania w wysokiej jakości.
Formy
zaliczenia
Ocena wykonywanych zadań praktycznych. Kolokwium.
Do prowadzenia przedmiotu wykorzystana będzie platforma TEWI.
Agenda przedmiotu:
1. Wzorce projektowe w praktyce (anty-wzorce, refaktoryzacja do wzorców, kodowanie na żywo wzorców: strategii, metody szablonowej, obserwatora, fabryki,
wizytatora i dekoratora. Przykłady z Java SE API)
2. Najlepsze praktyki programowania w Javie – dwa zajęcia (standardy kodowanie, JNC, formatowanie kodu, standardy nazewnicze. Zasady SOLID.
3. Zaawansane zagadnienia Java Virtual Machine (parametry uruchamiania JVM, obszary pamięci i cykl życia obiektów. Algorytmy garbage collection, konfiguracja
GC, przeglądanie logów GC. Technologia JMX, metody analizy uruchomionego JVM przy użyciu standardowych MBeanów, tworzenie własnych. Zapoznanie z
narzędziem VisualVM).
4. Programowanie wielowątkowe w Javie (przypomnienia problemów wielowątkowości. Java API do tworzenia i zarządzania wątkami. Zmienne atomowe.
Synchronizacja na monitorach. Analiza kodu pod kątem potencjalnych problemów w dostępie wielowątkowym. Kolecje bezpieczne dla wątków, pakiet
java.util.concurrent)
5. Technologie wspomającące Continous Integration na przykładzie Jenkinsa. Jezyki skryptowe kompilowane do bajtokodu: Jython, Groovy, Scala. Zarządzanie
projektami Agile – Jira Agile).
6. Wprowadzenie do automatycznego testowania UI na stronach WWW – Selenium).
7. Programowanie aspektowe (wprowadzenie do aspektów, anatomia aspektu. Metody instrumentalizacji – statyczna vs. dynamiczna. Konfiguracja dynamicznego
weavera. Przegląd pointcutów na konkretnych przykładach)
8. Zaawansowany Javascript (widocznośc zmiennych, hoisting. Zarządzanie obiektami, mix-iny. Pułapki przy pętlach sterujących, currying. Modelowanie klas,
dziedziczenie. Przestrzenie nazw, wzorzec modułu i sandbox)
9. Alternatywne systemy baz danych (wprowadzenie do NoSQL. Grafowe bazy danych na przykładzie Neo4j. Dokumentowe bazy danych. Przegląd aktualnych i
najbardziej perspektywicznych technologii NoSQL wraz z prostymi przykładami)
Treści
programowe
Realizacja powyższej listy modułów zajmie łącznie 11 tygodni zajęciowych, do tego należy doliczyć jedne zajęcia na kolokwium laboratoryjne oraz margines 2 zajęć
niezrealizowanych z przyczyn losowych. W przypadku gdy którykolwiek z modułów zainteresuje studentów w sposób szczególny, zostanie on rozciągnięty na
dodatkowy tydzień.
Efekty kształcenia
Symbol
Opis
EK1
posiada pogłębioną wiedzę na temat języków obiektowych (szczególnie Java) w kontekście realnych problemów
biznesowych
EK2
potrafi zastosować wzorce projektowe w praktyce
EK3
tworzy oprogramowanie w wyższej jakości dzięki poznaniu technik zarządzania jakością w kodzie i procesem Quality
Assurance
EK4
potrafi technicznie analizować wymagania biznesowe i projektować/implementować rozwiązania w wysokiej jakości
Efekt
kształcenia
Metoda weryfikacji
Odniesienie do kierunkowych efektów
kształcenia
Forma zajęć na której zachodzi weryfikacja
EK1
ocena wykonywanych aplikacji, kolokwium
Ps
EK2
ocena wykonywanych aplikacji
Ps
EK3
ocena wykonywanych aplikacji
Ps
EK4
ocena wykonywanych aplikacji, kolokwium
Ps
Bilans
nakładu
pracy
studenta
(w
godzinach)
1 - Udział w zajęciach
2
4
6
- Przygotowanie do zaliczenia kolokwium
RAZEM:
1.
2.
3.
4.
5.
45
50
3 - Udział w konsultacjach
Wskaźniki
ilościowe
Literatura
podstawowa
15 x 3h =
2 - Realizacja zadań domowych
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela:
47
(3)+(1)
Nakład pracy studenta związany z zajęciami o charakterze praktycznym:
103
(4)+(3)+(2)+(1)
Arnold, Ken, and James Gosling. The Java programming language. 3rd ed. Boston: Addison-Wesley, 2000. Print.
Berg, Alan. Jenkins Continuous Integration Cookbook. Birmingham: Packt Publishing, 2012. Print.
Flanagan, David. JavaScript: the definitive guide. 3rd ed. Cambridge: O'Reilly, 1998. Print.
Gamma, Erich. Design patterns: elements of reusable object-oriented software. Reading, Mass.: Addison-Wesley, 1995. Print.
Gradecki, Joe, and Nicholas Lesiecki. Mastering AspectJ aspect-oriented programming in Java. Indianpolis, Ind.: Wiley, 2003. Print.
103
ECTS
2,0
4,0
Literatura
uzupełniająca
1. Beck, Kent. JUnit. Sebastopol (Calif.): O'Reilly, 2004. Print.
2. Ching, Maria Odea, Brett Porter, Wendy Smoak, and Carsten Ziegeler. Apache Maven 2 effective implementation build and manage applications
with Maven, Continuum, and Archiva. Birmingham, UK: Packt Pub., 2009. Print.
3. Fernández, Javier. Java 7 concurrency cookbook. Birmingham: Packt Pub., 2012. Print.
4. Goetz, Brian. Java concurrency in practice. Upper Saddle River, NJ: Addison-Wesley, 2006. Print.
5. Magee, Jeff, and Jeff Kramer. Concurrency: state models & Java programs. Chichester [England: Wiley, 1999. Print.
Jednostka
realizująca
---
Osoby
prowadzące
Data
opracowania
programu
13 czerwca 2014
Program
opracował(a)
Wydrukowane w programie Świerk Design by: styleshout | Valid XHTML | CSS Home

Podobne dokumenty