Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

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: ( Informatyka )-Automatyka i robotyka-inż.-EITI
( Metody wytwarzania oprogramowania )-Informatyka-inż.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 5.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
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 2023/2024 - sem. letni" (w trakcie)

Okres: 2024-02-19 - 2024-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Kacper Kania, Jakub Koperwas, Paweł Kowaleczko, Julian Myrcha, Monika Wysoczańska, Kamil Żbikowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. zimowy" (zakończony)

Okres: 2023-10-01 - 2024-02-18
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 120 miejsc więcej informacji
Wykład, 30 godzin, 120 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Piotr Andruszkiewicz, Michał Chwesiuk, Jakub Koperwas, Julian Myrcha, Piotr Salata, Kamil Żbikowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. letni" (zakończony)

Okres: 2023-02-20 - 2023-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Jakub Koperwas, Paweł Kowaleczko, Julian Myrcha, Kamil Żbikowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 120 miejsc więcej informacji
Wykład, 30 godzin, 120 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Piotr Andruszkiewicz, Michał Chwesiuk, Jakub Koperwas, Mateusz Modrzejewski, Julian Myrcha, Kamil Żbikowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. letni" (zakończony)

Okres: 2022-02-23 - 2022-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Piotr Maciąg, Mateusz Modrzejewski, Julian Myrcha, Kamil Żbikowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (zakończony)

Okres: 2021-10-01 - 2022-02-22
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 120 miejsc więcej informacji
Wykład, 30 godzin, 120 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Piotr Andruszkiewicz, Michał Chwesiuk, Krzysztof Gracki, Mateusz Modrzejewski, Julian Myrcha, Krystian Radlak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. letni" (zakończony)

Okres: 2021-02-20 - 2021-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 40 miejsc więcej informacji
Wykład, 30 godzin, 40 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Piotr Maciąg, Julian Myrcha, Agnieszka Szmurło, Piotr Witoński
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. zimowy" (zakończony)

Okres: 2020-10-01 - 2021-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Projekt, 30 godzin, 120 miejsc więcej informacji
Wykład, 30 godzin, 120 miejsc więcej informacji
Koordynatorzy: Julian Myrcha
Prowadzący grup: Piotr Andruszkiewicz, Jakub Koperwas, Mateusz Modrzejewski, Julian Myrcha, Dominik Ryżko
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.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-7 (2024-03-18)