Module also offered within study programmes:
General information:
Name:
User Interface
Course of study:
2016/2017
Code:
JFT-2-032-s
Faculty of:
Physics and Applied Computer Science
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr hab. inż. Wołoszyn Maciej (woloszyn@newton.fis.agh.edu.pl)
Academic teachers:
dr hab. inż. Wołoszyn Maciej (woloszyn@newton.fis.agh.edu.pl)
dr inż. Kawecka-Magiera Barbara (Barbara.Kawecka@fis.agh.edu.pl)
Module summary

Celem kursu jest praktyczne zapoznanie się z technikami projektowania i programowania graficznego interfejsu użytkownika na różnych platformach systemowych.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student posiada umiejętność opisania własnego rozwiązania w komunikatywny sposób i określenia możliwości jego zastosowania. Report,
Participation in a discussion,
Execution of a project
Skills
M_U001 Student potrafi tworzyć aplikacje korzystające z graficznego interfejsu użytkownika za pomocą bibliotek takich jak np. Qt, wxWidgets, JFC/Swing. Execution of a project,
Execution of laboratory classes
M_U002 Student potrafi wykorzystać dodatkowe możliwości użytych bibliotek do przygotowania programów w postaci łatwej do kompilacji/uruchamiania na różnych platformach. Execution of a project,
Execution of laboratory classes
M_U003 Student umie samodzielnie wyszukiwać szczegółowe informacje w dostępnej dokumentacji. Execution of a project,
Execution of laboratory classes
M_U004 Student potrafi używać środowisk programistycznych oraz narzędzi wspomagających projektowanie graficznego interfejsu użytkownika. Execution of a project,
Execution of laboratory classes
Knowledge
M_W001 Student zna zasady projektowania aplikacji zawierających graficzny interfejs użytkownika oraz mechanizmy generowania zdarzeń i sposoby ich obsługi. Activity during classes,
Participation in a discussion,
Execution of laboratory classes
M_W002 Student zna wybrane biblioteki do tworzenia graficznego interfejsu użytkownika dostępne dla języków C, C++, Java i wie jakie są ich wady i zalety w typowych zastosowaniach. Activity during classes,
Participation in a discussion,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student posiada umiejętność opisania własnego rozwiązania w komunikatywny sposób i określenia możliwości jego zastosowania. - - + + - - - - - - -
Skills
M_U001 Student potrafi tworzyć aplikacje korzystające z graficznego interfejsu użytkownika za pomocą bibliotek takich jak np. Qt, wxWidgets, JFC/Swing. + - + + - - - - - - -
M_U002 Student potrafi wykorzystać dodatkowe możliwości użytych bibliotek do przygotowania programów w postaci łatwej do kompilacji/uruchamiania na różnych platformach. + - + + - - - - - - -
M_U003 Student umie samodzielnie wyszukiwać szczegółowe informacje w dostępnej dokumentacji. + - + + - - - - - - -
M_U004 Student potrafi używać środowisk programistycznych oraz narzędzi wspomagających projektowanie graficznego interfejsu użytkownika. + - + + - - - - - - -
Knowledge
M_W001 Student zna zasady projektowania aplikacji zawierających graficzny interfejs użytkownika oraz mechanizmy generowania zdarzeń i sposoby ich obsługi. + - + + - - - - - - -
M_W002 Student zna wybrane biblioteki do tworzenia graficznego interfejsu użytkownika dostępne dla języków C, C++, Java i wie jakie są ich wady i zalety w typowych zastosowaniach. + - + + - - - - - - -
Module content
Lectures:

1 Wprowadzenie
Znaczenie i podstawowe cechy graficznych interfejsów użytkownika. Przegląd bibliotek i narzędzi.

2 Projektowanie programów z graficznym interfejsem użytkownika
Wzorzec Model-Widok-Kontroler. Zasady projektowania interfejsów użytkownika.

3 Biblioteka Qt
Mechanizm sygnałów i slotów. Narzędzie programistyczne dla Qt na różnych platformach systemowych. Dodatkowe moduły biblioteki Qt.

4 Biblioteka wxWidgets
Obsługa zdarzeń za pomocą biblioteki wxWidgets. Środowiska do projektowania GUI dla wxWidgets.

5 Graficzny interfejs użytkownika w języku Java
Java AWT. JFC/Swing. QtJambi.

Laboratory classes:

1 Biblioteka Qt – wstęp
Efekty kształcenia:
- student potrafi utworzyć projekt korzystający z Qt oraz użyć narzędzia qmake do przygotowanie pliku Makefile
- student potrafi skompilować i uruchomić prosty, przykładowy program uzywający biblioteki Qt
- student potrafi korzystać z dokumentacji biblioteki

2 Tworzenie prostych aplikacji opartych na klasach QWidget i QDialog
Efekty kształcenia:
- student potrafi przygotować program używający własnego okna
- student potrafi wykorzystać klasy biblioteki Qt do tworzenia typowych składników okna (widgetów)

3 Korzystanie z mechanizmu sygnałów i slotów biblioteki Qt
Efekty kształcenia:
- student potrafi zdefiniować własne sygnały
- student potrafi zdefiniować własne sloty
- student potrafi wykorzystać własne i biblioteczne sygnały i sloty do obsługi zdarzeń generowanych przez interfejs użytkownika

4 Tworzenie aplikacji opartych na QMainWindow
Efekty kształcenia:
- student potrafi napisać program posługujący się typowym obiektem klasy dziedziczącej po QMainWindow korzystając ze środowisk programistycznych takich jak np. QtCreator
- student potrafi tworzyć i obsługiwać z poziomu własnej aplikacji paski narzędzi, paski statusu, menu, skróty klawiaturowe

5 Tworzenie aplikacji wykorzystujących JFC/Swing w języku Java
Efekty kształcenia:
- student potrafi przygotować prostą aplikację w języku Java używającą klas Swing-a do tworzenia interfejsu użytkownika
- student potrafi zrealizować obsługę zdarzeń w ramach JFC/Swing

6 Tworzenie graficznego interfejsu użytkownika do aplikacji uruchamianych z linii poleceń oraz uruchamiających wiele wątków
Efekty kształcenia:
- student potrafi posługiwać się klasami używanej biblioteki do uruchamiania wątków i niezależnych procesów
- student potrafi komunikować się z procesami, w tym przesyłać/odbierać dane na/z standardowe strumienie wejściowe/wyjściowe

7 Definiowanie własnych kontrolek (widgetów)
Efekty kształcenia:
- student potrafi przygotować własną klasę definiującą nowy widget
- student potrafi w takiej klasie przygotować metody obsługujące zdarzenia pochodzące z klawiatury, myszy itp.
- student potrafi używać podstawowych operacji graficznych do uzyskiwania zadanego wyglądu własnego widgetu

8 Wykorzystanie wzorca Model-Widok-Kontroler
Efekty kształcenia:
- student potrafi przygotować program wykorzystujący wzorzec Model-Widok-Kontroler np. w ramach mechanizmów udostępnianych przez bibliotekę Qt

Project classes:

Samodzielnie przygotowanie dwóch aplikacji realizujących to samo zadanie z wykorzystaniem dwóch różnych bibliotek, dowolnie wybranych przez studenta spośród technologii omawianych na wykładzie lub innych uzgodnionych z prowadzącym zajęcia.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 120 h
Module ECTS credits 4 ECTS
Participation in lectures 30 h
Realization of independently performed tasks 11 h
Participation in laboratory classes 15 h
Preparation for classes 20 h
Completion of a project 25 h
Preparation of a report, presentation, written work, etc. 4 h
Participation in project classes 15 h
Additional information
Method of calculating the final grade:

K = 0.45 L + 0.55 P
gdzie:
L – punkty (wynik procentowy) uzyskane w ramach realizacji ćwiczeń na laboratorium,
P – punkty (wynik procentowy) uzyskane za samodzielnie przygotowany projekt,
K – ocena końcowa (wynik procentowy zostanie przeliczony na ocenę zgodnie z Regulaminem Studiów AGH, przy czym otrzymanie pozytywnej oceny końcowej następuje po uzyskaniu pozytywnych ocen końcowych z laboratorium oraz projektu).

Prerequisites and additional requirements:

Umiejętność programowania w językach C++ i JAVA
Znajomość podstaw metodologii obiektowej

Recommended literature and teaching resources:

Ganczarski J., Owczarek M., C++. Wykorzystaj potęgę aplikacji graficznych
Blanchette J., Summerfield M., C++ GUI. Programming with Qt
Ezust A., Ezust P., An Introduction to Design Patterns in C++ with Qt 4
Smart J., Hock K., Csomor S., Cross-Platform GUI Programming with wxWidgets
Schildt H., Java. Kompendium programisty
Wołoszyn M., Programowanie GUI. Notatki do wykładu dostępne na stronie przedmiotu: http://newton.fis.agh.edu.pl/~woloszyn/gui/
The Java Tutorials, dostępne na stronie http://docs.oracle.com/javase/tutorial/

Scientific publications of module course instructors related to the topic of the module:

- – -

Additional information:
  • Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:
    Ćwiczenia laboratoryjne i projektowe: Nieobecność na nie więcej niż dwóch zajęciach wymaga od studenta samodzielnego (z możliwością wykorzystania godzin konsultacji) opanowania przerabianego na tych zajęciach materiału. Nieusprawiedliwiona nieobecność na więcej niż dwóch zajęciach oznacza brak możliwości zaliczenia ćwiczeń. Student ma prawo do odrobienia każdej usprawiedliwionej nieobecności na ćwiczeniach laboratoryjnych w wyznaczonym przez prowadzącego terminie, lecz nie później jak w ostatnim tygodniu trwania zajęć.
    Obecność na wykładzie: zgodnie z Regulaminem Studiów AGH.
  • Zasady zaliczania zajęć:
    Ćwiczenia laboratoryjne: Jedynym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze, przy czym przy obliczaniu końcowej liczby punktów nie będzie brane pod uwagę ćwiczenie, z którego dana osoba uzyskała najmniejszą liczbę punktów. Student, który bez usprawiedliwienia opuścił więcej niż dwa zajęcia nie uzyskuje zaliczenia ćwiczeń; od takiej decyzji prowadzącego zajęcia student może się odwołać do prowadzącego przedmiot (moduł) lub Dziekana.
    Ćwiczenia projektowe: Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Uzyskanie zaliczenia będzie również możliwe gdy projekt zostanie oddany do końca określonego przez Dziekana terminu uzyskiwania zaliczeń w danym semestrze. Jednym z kryteriów oceny będzie terminowość oddania obu aplikacji składających się na projekt.
  • Szczegółowe informacje organizacyjne dotyczące trybu zaliczania zajęć i odrabiania zaległości dostępne są na stronie http://newton.fis.agh.edu.pl/~woloszyn/gui/