Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Praktyczne wzorce projektowe w programowaniu
Tok studiów:
2018/2019
Kod:
JIS-1-014-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
0
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr inż. Rybak Marcin (Marcin.Rybak@fis.agh.edu.pl)
Osoby prowadzące:
mgr Pędziwiatr Tomasz (Tomasz.Pedziwiatr@fis.agh.edu.pl)
Krótka charakterystyka modułu

Student opanowuje wiedzę z zakresu “clean code” oraz najpopularniejszych wzorców projektowych w języku java, a następnie potrafi zastosować powyższą wiedzę w praktyce.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Student zna wybrane wzorce projektowe IS1A_W02, IS1A_W03, IS1A_W07, IS1A_W04 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu,
Udział w dyskusji
M_W002 Student rozumie jak stosowanie wzorców projektowych pomaga w tworzeniu "czystego kodu" IS1A_W02, IS1A_W03, IS1A_W07, IS1A_W04 Aktywność na zajęciach
Umiejętności
M_U001 Student stosuje wzorce projektowe w pisaniu oprogramowania IS1A_W02, IS1A_W03, IS1A_W07, IS1A_W04 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu
M_U002 Student potrafi wskazać elementy wymagające poprawy w zastanym kodzie i poprawić je stosując opanowane na zajęciach wzorce projektowe IS1A_W02, IS1A_W03, IS1A_W07, IS1A_W04 Wykonanie ćwiczeń laboratoryjnych,
Wykonanie projektu,
Aktywność na zajęciach
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Student zna wybrane wzorce projektowe - - + - - - - - - - -
M_W002 Student rozumie jak stosowanie wzorców projektowych pomaga w tworzeniu "czystego kodu" - - + - - - - - - - -
Umiejętności
M_U001 Student stosuje wzorce projektowe w pisaniu oprogramowania - - + - - - - - - - -
M_U002 Student potrafi wskazać elementy wymagające poprawy w zastanym kodzie i poprawić je stosując opanowane na zajęciach wzorce projektowe - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Ćwiczenia laboratoryjne:
  1. Na czym polega pisanie dobrego kodu?

    Podstawowe zasady, konwencje nazewnictwa, metryki jakości kodu

  2. Ważne zasady które warto stosować pisząc kod

    Podejście obiektowe w programowaniu, programowanie funkcyjne, dziedziczenie a kompozycja, czym jest bezstanowość i niezmienność (immutability) klas

  3. Dlaczego warto używać wzorców projektowych

    Czym są wzorce, jak się ich uczyć, jakie są najpopularniejsze wzorce projektowe

  4. Wzorzec budowniczego i fabryki

    Czym są te wzorce, kiedy i jak stosować, jak zaimplementować budowniczego korzystając z własności Javy w wersji 8, różnice między fabryką abstrakcyjną, fabryką statyczną i metodą fabrykującą

  5. Wzorzec dekoratora i fasady

    Czym są te wzorce, kiedy i jak stosować, w jakich sytuacjach nie powinno się ich stosować

  6. Wzorzec łańcucha odpowiedzialności i wizytatora

    Czym są te wzorce, kiedy i jak stosować, w jakich sytuacjach nie powinno się ich stosować

  7. Wzorzec metody szablonowej

    Czym jest ten wzorzec, kiedy i jak go stosować

  8. W jaki sposób framework Spring pomaga w pisaniu kodu?

    Co to jest Spring, z jakich modułów się składa, co warto z niego stosować i jak wpływa to na pisanie dobrego kodu

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 80 godz
Punkty ECTS za moduł 3 ECTS
Udział w ćwiczeniach laboratoryjnych 30 godz
Wykonanie projektu 50 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa będzie wypadkową oceny wykonanego na koniec zajęć projektu oraz aktywności na zajęciach polegających na udziale w dyskusji oraz realizowania ćwiczeń laboratoryjnych.

Wymagania wstępne i dodatkowe:

Student zna podstawy dowolnego języka obiektowego (preferowana java)

Zalecana literatura i pomoce naukowe:
  • Robert C. Martin “Clean Code: A Handbook of Agile Software Craftsmanship”
  • Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates “Head First Design Patterns”
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Podczas zajęć duży nacisk będzie położony na zastosowanie poznanych na zajęciach zasad w praktyce podczas tworzenia oprogramowania. Student będzie w stanie wskazać również fragmenty wymagające poprawy w zastanym kodzie źródłowym i opierając się na poznanych wzorcach projektowych dokonać poprawienia tegoż kodu.
Pomysł na przedmiot powstał w wyniku obserwacji prowadzących, którzy mają ponad 10-letnie doświadczenie w branży IT, brali udział w licznych procesach rekrutacyjnych absolwentów uczelni technicznych, jak również mieli/mają pod opieką w swoich zespołach tychże absolwentów.
Prowadzący mają nadzieję że wdrożenie tego przedmiotu pozwoli zmniejszyć dystans pomiędzy umiejętnościami nabytymi podczas studiów przez absolwentów a oczekiwaniami firm IT ich zatrudniających i umożliwi absolwentom szybkie zaadaptowanie się do pracy w zespołach IT.