Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Programowanie aplikacyjne

Informacje ogólne

Kod przedmiotu: 103A-INxxx-ISP-PAP Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Programowanie aplikacyjne
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Metody wytwarzania oprogramowania )-Informatyka-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 5.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

PAP

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zapoznanie studenta z metodyką projektowania i programowaniem graficznych interfejsów użytkownika (GUI). Studenci poznają zagadnienia zdarzeń, kolejki zdarzeń, przenośnych i natywnych metod synchronizacji, programowania współbieżnego w kontekście tworzenia GUI. Poruszony zostanie aspekt programowania komponentowego na przykładzie tworzenia komponentów interfejsu użytkownika. Przedstawiony zostanie sposób kompozycji GUI z wykorzystaniem różnych metod: czysto programowe, języki opisu bazujące na XML (fxml) oraz interfejsy tworzone na wzór aplikacji webowych (HTML). Przedstawione zostaną metody korzystania z baz danych. Projekt umożliwi praktyczne zapoznanie się z jednym lub wieloma aspektami tworzenia aplikacji GUI.

Pełny opis:

Celem przedmiotu jest zapoznanie studenta z metodyką projektowania i programowaniem graficznych interfejsów użytkownika (GUI). Studenci poznają zagadnienia zdarzeń, kolejki zdarzeń, przenośnych i natywnych metod synchronizacji, programowania współbieżnego w kontekście tworzenia GUI. Poruszony zostanie aspekt programowania komponentowego na przykładzie tworzenia komponentów interfejsu użytkownika. Przedstawiony zostanie sposób kompozycji GUI z wykorzystaniem różnych metod: czysto programowe, języki opisu bazujące na XML (fxml) oraz interfejsy tworzone na wzór aplikacji webowych (HTML). Przedstawione zostaną metody korzystania z baz danych. Projekt umożliwi praktyczne zapoznanie się z jednym lub wieloma aspektami tworzenia aplikacji GUI.



Treść wykładu

  1. Interfejsy użytkownika. Interfejsy graficzne. Model warstwowy interfejsów graficznych. Metafory. WIMP. Programowanie zdarzeniowe. Programowanie zdarzeń z wykorzystaniem języka Java.
  2. Pojęcie narzędzi RAD. Komponenty interfejsu użytkownika. Tworzenie aplikacji przenośnych między systemami Windows/Linux. Biblioteka Qt.
  3. Wprowadzenie do języka Java. Kod zarządzany. Klasy anonimowe w języku Java. Wyrażenia lambda.
  4. JavaFX. Drzewo komponentów, układy – metody rozmieszczania komponetów. Wiązania. Metody tworzenia interfejsu użytkownika. Programowanie kontrolera. Fxml.
  5. Wątki. Metody tworzenia, zarządzania i synchronizacji wątków w języku Java.
  6. Budowa warstwy dostępu do danych w aplikacjach GUI wykorzystująca istniejące narzędzia (Spring, Hibernate).
  7. Interfejs użytkownika wykorzystujący język HTML i arkusze stylów CSS. Bootstrap. Formy. Protokół HTTP. Tworzenie GUI aplikacji webowej. Komunikacja REST. Format JSON. Pojęcie drzewa DOM.
  8. Aplikacje webowe w Javie. Pojęcie servletu. Ewolucja od JSP do JSF. Serwery aplikacyjne w Javie.
  9. Narzędzia zarządzania źródłami oprogramowania w Javie. Testy automatyczne w Javie. Narzędzia konfiguracji oprogramowania w Javie (maven, gradle, ...).
  10. Języki dynamiczne. Język JavaScript. Infrastruktura node.js. Narzędzia do zarządzania pakietami. Narzędzia do pakowania aplikacji. Narzędzia do testowania. Narzędzia do ciągłej integracji.
  11. Zastosowanie pojęcia wiązania do tworzenia GUI na przykładzie bibliotek wspierających tworzenie GUI aplikacji webowych (React, Angular lub następcy). Implementacja aplikacji okienkowej w Javascript z wykorzystaniem wiedzy i narzędzi do tworzenia aplikacji webowej (Electron).



Zakres projektu

W ramach projektu zespół 2-3 osób ma przygotować niewielką aplikację umożliwiającą tworzenie, edycję i wyszukiwanie informacji w zadanej przez prowadzącego bazie danych typu relacyjnego lub dokumentowego (NoSQL). Projekt będzie podzielony na etapy. Na każdym etapie oprócz tworzonego kodu oceniane będą takie elementy jak projekt interfejsu użytkownika, zarządzanie źródłami, tworzenie testów automatycznych, ciągła integracja oprogramowania.

Literatura:

  • Pro JavaFX 9: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Client, Apress 2018.
  • Cay S. Horstmann: Java. Podstawy, Wydanie X, Helion 2016.
  • Cay S. Horstmann: Java. Techniki zaawansowane, Wydanie X, Helion 2017.
  • Building Cross-Platform Desktop Applications with Electron, Packt 2017.
  • IntelliJ IDEA, Community Edition.
  • InteliJ Webstorm
  • Eclipse
Metody i kryteria oceniania:

Sprawdzanie założonych efektów kształcenia realizowane jest przez:

  • ocenę wiedzy i umiejętności związanych z realizacją zadań projektowych – ocenę prezentacji, dokumentacji i raportów z systemu;
  • ocenę wiedzy i umiejętności wykazanych na kolokwiach oraz – w przypadkach szczególnych – na rozmowie indywidualnej.

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. zimowy" (jeszcze nie rozpoczęty)

Okres: 2020-10-01 - 2021-02-21
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 30 godzin, 150 miejsc więcej informacji
Wykład, 30 godzin, 150 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.