Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Software design patterns in object oriented programming
Tok studiów:
2017/2018
Kod:
JIS-2-030-AD-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia II stopnia
Specjalność:
Modelowanie i analiza danych
Kierunek:
Informatyka Stosowana
Semestr:
0
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Angielski
Strona www:
 
Osoba odpowiedzialna:
dr inż. Gach Grzegorz (grzegorz.gach@motorolasolutions.com)
Osoby prowadzące:
dr inż. Gach Grzegorz (grzegorz.gach@motorolasolutions.com)
Krótka charakterystyka modułu

This course provides knowledge and skills needed for effective use of the most popular software design
patterns. The theory is complemented by hands-on experience in laboratory and project exercises.

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 At the end of the course, students know the standard design patterns implementations, typical use-cases, advantages and disadvantages. IS2A_W03 Prezentacja,
Udział w dyskusji,
Egzamin
M_W002 At the end of the course, students know design patterns nomenclature and jargon. IS2A_W03 Prezentacja,
Udział w dyskusji
Umiejętności
M_U001 At the end of the course, students can implement standard design patterns. IS2A_U11 Projekt,
Wykonanie ćwiczeń laboratoryjnych,
Egzamin
M_U002 At the end of the course, students can choose optimal design pattern to solve a problem. IS2A_U14 Projekt,
Wykonanie ćwiczeń laboratoryjnych,
Egzamin
M_U003 At the end of the course, students can present software projects and clearly express their ideas and motivations. IS2A_U09 Prezentacja,
Udział w dyskusji
Kompetencje społeczne
M_K001 At the end of the course, students express their opinions about fellow students work in constructive manner. IS2A_U19 Udział w dyskusji,
Zaangażowanie w pracę zespołu
M_K002 At the end of the course, students organise team work and share duties efficiently. IS2A_K02 Projekt
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 At the end of the course, students know the standard design patterns implementations, typical use-cases, advantages and disadvantages. + - - - + + - - - - -
M_W002 At the end of the course, students know design patterns nomenclature and jargon. + - - - + + - - - - -
Umiejętności
M_U001 At the end of the course, students can implement standard design patterns. - - + + - - - - - - -
M_U002 At the end of the course, students can choose optimal design pattern to solve a problem. - - + + + - - - - - -
M_U003 At the end of the course, students can present software projects and clearly express their ideas and motivations. - - - - - + - - - - -
Kompetencje społeczne
M_K001 At the end of the course, students express their opinions about fellow students work in constructive manner. - - - + + + - - - - -
M_K002 At the end of the course, students organise team work and share duties efficiently. - - - + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

In the lectures common design patterns are presented. Their implementations and use-cases are described. The following patterns are considered:

  • Creational

    • builder
    • abstract factory
    • factory method
    • prototype
    • singleton

  • Structural

    • adapter

    • decorator

    • facade

    • composite

    • bridge

    • proxy

    • flyweight

  • Behavioral

    • interpreter

    • iterator

    • chain of responsibility

    • mediator

    • template method

    • observer

    • visitor

    • memento

    • command

    • state

    • strategy

At the end of the course knowledge gained by students is verified with practical exam.

Ćwiczenia laboratoryjne:

In the laboratory classes students consolidate knowledge acquired in lectures and conversation seminars by solving problems. The students have a chance to test their understanding of new material in teacher or peer-reviewed assignments, which boost experience exchange and encourage critical evaluation of the code. The laboratory classes are graded pass or fail.

Ćwiczenia projektowe:

In project classes students work on software projects in groups of 3. Each team designs, develops, tests and documents the code. This puts the usefulness of design patterns into real world tests. The patterns strengths and weaknesses are highlighted by teamwork. The project evaluation includes assessment of objectives accomplishment, design and code quality as well as documentation.

Konwersatorium:

In the first conversation seminar the importance of code and design quality is discussed. In the following sessions use-cases and problems are discussed. The solutions using design patterns are proposed and analysed by students providing them with insight into design patterns application. Additionally, making choice of the best design for a given problem is trained raising the awareness of strengths and weaknesses of the chosen design. The conversation seminar is graded pass or fail based on the attendance and contributions to discussions.

Zajęcia seminaryjne:

In seminar classes students present their own and review the fellow students projects. Each group of 3 students presents and motivates decisions taken during project development and analyse their consequences. The project presentation is followed by an open discussion. The grade is based on project presentation and contribution to discussion.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 125 godz
Punkty ECTS za moduł 5 ECTS
Udział w wykładach 6 godz
Udział w konwersatoriach 6 godz
Udział w ćwiczeniach laboratoryjnych 12 godz
Udział w ćwiczeniach projektowych 15 godz
Udział w zajęciach seminaryjnych 6 godz
Egzamin lub kolokwium zaliczeniowe 5 godz
Przygotowanie do zajęć 40 godz
Wykonanie projektu 30 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 5 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

A positive grade can be awarded only to a student who passed (was awarded positive grade) all forms
of classes: exam, laboratory and project exercises, seminar, conversation seminar.
The base for the final grade is calculated as a weighted mean of fraction of points awarded for exam,
project exercises and seminar:
final grade base= 0.5*exam + 0.3*project + 0.2*seminar
The final grade is calculated according to the official grading scale.

Wymagania wstępne i dodatkowe:

Knowledge of C++ programming language.

Zalecana literatura i pomoce naukowe:
  1. “Design Patterns: Elements of Reusable Object-Oriented Software” by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

None

Informacje dodatkowe:

Any absence must be justified in writing latest on the first classes on which student is present. Unjustified absence from any classes except lectures results in failing the classes.

In case of absence from:

  • laboratory classes students have to complete an extra task assigned by the lecturer.
  • seminar where students are presenting their project an extra term will be scheduled before the exam period (if the talk is not given before exam period grade from the seminar classes is failed)
  • lectures or conversation seminars student must learn the discussed subjects on his/her own
  • project classes student must do the appropriate work on the project on his/her own