Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)

Sylabus przedmiotu Aplikacje internetowe 1:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauki techniczne, studia inżynierskie
Profil ogólnoakademicki
Moduł
Przedmiot Aplikacje internetowe 1
Specjalność Inżynieria systemów informacyjnych
Jednostka prowadząca Katedra Inżynierii Systemów Informacyjnych
Nauczyciel odpowiedzialny Izabela Rejer <irejer@wi.zut.edu.pl>
Inni nauczyciele Piotr Czapiewski <Piotr.Czapiewski@zut.edu.pl>, Jarosław Jankowski <Jaroslaw.Jankowski@zut.edu.pl>, Artur Karczmarczyk <Artur.Karczmarczyk@zut.edu.pl>, Bartłomiej Małachowski <Bartlomiej.Malachowski@zut.edu.pl>, Jerzy Pejaś <Jerzy.Pejas@zut.edu.pl>, Piotr Piela <Piotr.Piela@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 3 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW5 18 2,00,50zaliczenie
laboratoriaL5 18 2,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Programowanie 2

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie studentów z zasadami budowy stron internetowych
C-2Ukształtowanie rozumienia podstawowych pojęć związanych ze środowiskiem WWW
C-3Ukształtowanie umięjętności budowy prostych aplikacji internetowych, z położeniem głównego nacisku na wysoki poziom interaktywności aplikacji.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Przygotowanie pracy - wybór tematyki aplikacji wstępnej, serwera, edytora, założenie konta na serwerze, zgromadzenie informacji itp. Przygotowanie projektu witryny internetowej.1
T-L-2Utworzenie zestawu stron (HTML) powiązanych systemem linków. Utworzenie zestawu arkuszy stylów dla tworzonej witryny, wraz z arkuszami przeznaczonymi dla menu stron (CSS).2
T-L-3Realizacja apliakcji w JavaScript i DOM API: odczytywanie zawartości elementów, dynamiczne tworzenie elementów, wyszukiwanie elementów, modyfikacja stylów elementów, odczytywanie i walidacja danych w formualrzach.2
T-L-4Projekt prostej apliakcji w JavaScript korzystającej z Geolocation API, Google Maps API oraz Notification API. Realizacja gry w JavaScript (układanie Puzzli) z użyciem mechanizmu Drag and Drop3
T-L-5Budowa aplikacji klienckiej REST z użyciem XMLHttpRequest API.2
T-L-6Projekt apliakcji w języku TypeScript: konfiguracja projektu, określanie zależności i konfiguracja narzędzi, kompilacja i uruchamianie.2
T-L-7Wprowadzenie do tworzenia systemów webowych w oparciu o backend. Przygotowanie specyfikacji wymagań, user stories, work breakdown structure, metoda Delphi, tworzenie harmonogramów, klikalne makiety nowej aplikacji. Realizacja systemu webowego zgodnie z ustalonym harmonogramem2
T-L-8Realizacja systemu webowego zgodnie z ustalonym harmonogramem: Mapowanie obiektowo-relacyjne; Uprawnienia. REST API server; Testy jednostkowe2
T-L-9Hybrydowe aplikacje mobilne oparte o WebView, z wykorzystaniem TypeScript i REST API2
18
wykłady
T-W-1HTML: Języki znaczników; struktura dokumentu; meta dane; media a prawo autorskie, optymalizacja grafiki dla WWW, hiperłącza, znaczniki semantyczne i formatujące; odnośniki, listy i tabele; obsługa formularzy; reguły walidacji; zasady tworzenia stron WWW1
T-W-2HTML+CSS: Geneza HTML 5, kontrolki wideo, kontrolki audio, nowe znaczniki strukturalne i semantyczne; CSS: Podstawowe definicje; integracja stylów z dokumentem; składnia CSS, budowa reguły stylu; rodzaje selektorów, zasady kaskadowości. CSS: box model, reguły pozycjonowania elementów serwisu; zaawansowane reguły CSS, układ treści strony, responsywność, transformacje i obroty, poziom wsparcia w przeglądarkach, preprocesory CSS (Sass)1
T-W-3Architektura 1: komunikacja klient-server, zadania klienta i serwera WWW; protokół HTTP; struktura komunikatu HTTP; protokół HTTPS; zmienne cookies; podstawowe standardy; IETF oraz W3C; SEO. Architektura 2: model aplikacji internetowej, środowiska komponentowe, wzorce projektowe; web services, architektura REST, znacznikowe formaty wymiany danych, aplikacje typu SPA (Single Page Application), serwery aplikacji2
T-W-4Języki programowania w środowisku przeglądarki WWW. Geneza powstania i historia rozwoju języków skryptowych w przeglądarkach. Standaryzacja i wersje języka. Osadzanie skryptów w dokumentach HTML. Podstawy programowania skryptów w środowisku przeglądarki WWW: instrukcje, zmienne (definiowanie, zasięg), typy danych (proste i referencyjne), literały, funkcje (deklaracje, wyrażenia funkcyjne, przeciążanie, obiekt this), komentarze, wyrażenia regularne2
T-W-5JavaScript - programowanie obiektowe. Definiowanie, wykrywanie i usuwanie właściwości obiektów, rodzaje właściwości, atrybuty właściwości. Konstruktory. Prototypy, modyfikowanie prototypów, prototypy wbudowanych obiektów. Dziedziczenie: łańcuchy prototypów, dziedziczenie obiektów, dziedziczenie konstruktorów, pojęcie supertypu2
T-W-6Przegląd przeglądarkowych interfejsów programistycznych. Document Object Model API – tworzenie, modyfikacja i usuwanie elementów dokumentu; metody selekcji elementów; manipulacja stylami; obsługa zdarzeń. XMLHttpRequest API – wysyłanie żądań HTTP, żądania synchroniczne i asynchroniczne. Manipulacja grafiką: Canvas API, WebGL. Drag and drop API. Interfejsy obsługi treści audio i wideo. Przechowywanie danych – Lacal Storage API. Geolokalizacja – Geolocation APIPodstawy2
T-W-7Podstawy programowania backend 1: składnia, semantyka, tablice, operatory, zmienne i stałe, instrukcje warunkowe, pętle. Podstawy programowania backend 2 – funkcje, parametry, zwracanie wartości przez referencję, system plików, interpretowane języki programowania i Web (POST, GET, cookies, sesje), bazy danych2
T-W-8Zaawansowane programowanie backend 1: programowanie obiektowe, stałe, dziedziczenie, type hinting, polimorfizm, klasy abstrakcyjne, interfejsy, traits. Zaawansowane programowanie backend 2: metody statyczne, late static binding, przestrzenie nazw, wyjątki i ich obsługa, mapowanie obiektowo-relacyjne2
T-W-9Zaawansowane programowanie backend 3: języki interpretowane i Web (obsługa formularzy, walidacje, wyrażenia regularne, output buffer, nagłówki cache, email), API REST, przetwarzanie XML, przetwarzanie JSON, testy jednostkowe, podejście Red-Green-Refactor, debugger, annotations, akceleracja kodu, profilowanie kodu, obfuskacja kodu2
T-W-10Języki programowania dla przeglądarek WWW ze statyczną kontrolą typów. Założenia, przyczyny powstania, zalety. Porównanie języków przeglądarkowych ze statyczną i dynamiczną kontrolą typów. Narzędzia do kompilacji. Typy: składnia określania typów, wnioskowanie typów, rzutowanie, typy wyliczeniowe, stałe. Funkcje: typy parametrów i zwracane przez funkcje, parametry opcjonalne i domyślne, funkcje zwrotne. Obiektowość: interfejsy, klasy, funkcje i właściwości statyczne, przestrzenie nazw, klasy abstrakcyjne, domknięcia. Mechanizmy programowania asynchronicznego1
T-W-11Hybrydowe aplikacje mobilne – instalacja, platformy, pluginy, użycie API urządzenia (geolokalizacja, kompas, kamera, bateria, akcelerometr), merges, debugowanie w Chrome, usługi automatyzacji budowy aplikacji1
18

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w laboratoriach18
A-L-2Praca własna nad tworzonymi witrynami internetowymi.30
A-L-3Zaliczenie2
50
wykłady
A-W-1Uczestnictwo w wykładach18
A-W-2Analiza i wykonanie we własnym zakresie przykładów prezentowanych na wykładzie.30
A-W-3Egzamin2
50

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny
M-2Wykład problemowy
M-3Dyskusja dydaktyczna
M-4Ćwiczenia przedmiotowe
M-5Objaśnienie lub wyjaśnienie

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Kontrola poprawności realizacji zadania zdefiniowanego na poprzedzających laboratoriach
S-2Ocena podsumowująca: Końcowe zaliczenie wykładu w formie ustnej lub w formie pisemnego testu złożonego z pytań otwartych
S-3Ocena podsumowująca: Końcowe zaliczenie laboratoriów - w formie prezentacji przygotowanej witryny internetowej (zaliczenie obejmuje również kody przygotowanych skryptów)

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D03.03.1_W01
W wyniku przeprowadzonych zajęć studen powinien być w stanie scharakteryzować sposób działania architektury klient - serwer w środowisku internetowym, opisać działanie podstawowych protokołów sieciowych, wyjaśnić podstawowe pojęcia związane z tworzeniem stron internetowych, scharakteryzować wybrane środowiska do budowy aplikacji internetowych (po stronie klienta oraz serwera)
I_1A_W04C-2T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11M-1, M-2, M-5S-2

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D03.03.1_U01
Po zakończeniu przedmiotu student będzie potrafił zbudować witrynę internetową pozwalającą na prezentację wybranych treści w Internecie, z położeniem głównego nacisku na intuicyjność obsługi witryny przez użytkownika.
I_1A_U09, I_1A_U10C-1, C-3T-L-3, T-L-4, T-L-5, T-L-6, T-L-1, T-L-2, T-L-7, T-L-8, T-L-9M-3, M-4, M-5S-1, S-3

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_D03.03.1_W01
W wyniku przeprowadzonych zajęć studen powinien być w stanie scharakteryzować sposób działania architektury klient - serwer w środowisku internetowym, opisać działanie podstawowych protokołów sieciowych, wyjaśnić podstawowe pojęcia związane z tworzeniem stron internetowych, scharakteryzować wybrane środowiska do budowy aplikacji internetowych (po stronie klienta oraz serwera)
2,0Student nie zna podstawowych pojęć związanych z programowaniem aplikacji internetowych
3,0Student jest w stanie zdefiniować podstawowe pojęcia związane z programowaniem aplikacji internetowych
3,5Student jest w stanie opisać podstawowe etapy budowy stron internetowych
4,0Student jest w stanie zastosować zdobytą wiedzę w praktyce, czyli jest w stanie rozwiązać postawione przed nim zadanie za pomocą wskazanej technologii internetowej
4,5Student jest w stanie dokonać analizy porównawczej różnych środowisk służących do budowych aplikacji internetowych
5,0Student jest w stanie dokonać oceny wskazanych środowisk służących do budowych aplikacji internetowych pod kątem ich adekwatności do postawionego przed nim zadania

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_D03.03.1_U01
Po zakończeniu przedmiotu student będzie potrafił zbudować witrynę internetową pozwalającą na prezentację wybranych treści w Internecie, z położeniem głównego nacisku na intuicyjność obsługi witryny przez użytkownika.
2,0Student nie jest w stanie stworzyć prostej witryny internetowej
3,0Student jest w stanie stworzyć prostą witrynę internetową
3,5Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych
4,0Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych, wyposażoną w mechanizm logowania i rejestracji
4,5Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych, wyposażoną w mechanizm logowania i rejestracji, pozwalającą na przeprowadzenie poprawnej walidacji danych wprowadzanych przez użytkowników
5,0Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych, wyposażoną w mechanizm logowania i rejestracji, pozwalającą na przeprowadzenie poprawnej walidacji danych wprowadzanych przez użytkowników oraz jest w stanie uatrakcyjnić witrynę pod względem wizualnym oraz zwiększyć intuicyjność obsługi witryny

Literatura podstawowa

  1. Matthew MacDonald, HTML5. Nieoficjalny podręcznik, Helion, 2014
  2. Chuck Hudson, Tom Leadbetter, HTML5. Podręcznik programisty, Helion, 2013
  3. David Sawyer McFarland, CSS. Nieoficjalny podręcznik, Helion, 2016
  4. Nathan Rozentals, Język TypeScript. Tajniki kodu, Helion, 2017
  5. Nicholas C. Zakas, JavaScript. Zasady programowania obiektowego, Helion, 2014
  6. Matt Zandstra, PHP. Obiekty, wzorce, narzędzia., Helion, Gliwice, 2014

Literatura dodatkowa

  1. Bartosz Chucherko, Sass. Nowoczesne arkusze stylów, Helion, 2017
  2. Zend PHP Certification Study Guide (Developer's Library), Zend Technologies, 2017, available at: http://www.zend.com/en/services/certification/php-certification-study-guide

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Przygotowanie pracy - wybór tematyki aplikacji wstępnej, serwera, edytora, założenie konta na serwerze, zgromadzenie informacji itp. Przygotowanie projektu witryny internetowej.1
T-L-2Utworzenie zestawu stron (HTML) powiązanych systemem linków. Utworzenie zestawu arkuszy stylów dla tworzonej witryny, wraz z arkuszami przeznaczonymi dla menu stron (CSS).2
T-L-3Realizacja apliakcji w JavaScript i DOM API: odczytywanie zawartości elementów, dynamiczne tworzenie elementów, wyszukiwanie elementów, modyfikacja stylów elementów, odczytywanie i walidacja danych w formualrzach.2
T-L-4Projekt prostej apliakcji w JavaScript korzystającej z Geolocation API, Google Maps API oraz Notification API. Realizacja gry w JavaScript (układanie Puzzli) z użyciem mechanizmu Drag and Drop3
T-L-5Budowa aplikacji klienckiej REST z użyciem XMLHttpRequest API.2
T-L-6Projekt apliakcji w języku TypeScript: konfiguracja projektu, określanie zależności i konfiguracja narzędzi, kompilacja i uruchamianie.2
T-L-7Wprowadzenie do tworzenia systemów webowych w oparciu o backend. Przygotowanie specyfikacji wymagań, user stories, work breakdown structure, metoda Delphi, tworzenie harmonogramów, klikalne makiety nowej aplikacji. Realizacja systemu webowego zgodnie z ustalonym harmonogramem2
T-L-8Realizacja systemu webowego zgodnie z ustalonym harmonogramem: Mapowanie obiektowo-relacyjne; Uprawnienia. REST API server; Testy jednostkowe2
T-L-9Hybrydowe aplikacje mobilne oparte o WebView, z wykorzystaniem TypeScript i REST API2
18

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1HTML: Języki znaczników; struktura dokumentu; meta dane; media a prawo autorskie, optymalizacja grafiki dla WWW, hiperłącza, znaczniki semantyczne i formatujące; odnośniki, listy i tabele; obsługa formularzy; reguły walidacji; zasady tworzenia stron WWW1
T-W-2HTML+CSS: Geneza HTML 5, kontrolki wideo, kontrolki audio, nowe znaczniki strukturalne i semantyczne; CSS: Podstawowe definicje; integracja stylów z dokumentem; składnia CSS, budowa reguły stylu; rodzaje selektorów, zasady kaskadowości. CSS: box model, reguły pozycjonowania elementów serwisu; zaawansowane reguły CSS, układ treści strony, responsywność, transformacje i obroty, poziom wsparcia w przeglądarkach, preprocesory CSS (Sass)1
T-W-3Architektura 1: komunikacja klient-server, zadania klienta i serwera WWW; protokół HTTP; struktura komunikatu HTTP; protokół HTTPS; zmienne cookies; podstawowe standardy; IETF oraz W3C; SEO. Architektura 2: model aplikacji internetowej, środowiska komponentowe, wzorce projektowe; web services, architektura REST, znacznikowe formaty wymiany danych, aplikacje typu SPA (Single Page Application), serwery aplikacji2
T-W-4Języki programowania w środowisku przeglądarki WWW. Geneza powstania i historia rozwoju języków skryptowych w przeglądarkach. Standaryzacja i wersje języka. Osadzanie skryptów w dokumentach HTML. Podstawy programowania skryptów w środowisku przeglądarki WWW: instrukcje, zmienne (definiowanie, zasięg), typy danych (proste i referencyjne), literały, funkcje (deklaracje, wyrażenia funkcyjne, przeciążanie, obiekt this), komentarze, wyrażenia regularne2
T-W-5JavaScript - programowanie obiektowe. Definiowanie, wykrywanie i usuwanie właściwości obiektów, rodzaje właściwości, atrybuty właściwości. Konstruktory. Prototypy, modyfikowanie prototypów, prototypy wbudowanych obiektów. Dziedziczenie: łańcuchy prototypów, dziedziczenie obiektów, dziedziczenie konstruktorów, pojęcie supertypu2
T-W-6Przegląd przeglądarkowych interfejsów programistycznych. Document Object Model API – tworzenie, modyfikacja i usuwanie elementów dokumentu; metody selekcji elementów; manipulacja stylami; obsługa zdarzeń. XMLHttpRequest API – wysyłanie żądań HTTP, żądania synchroniczne i asynchroniczne. Manipulacja grafiką: Canvas API, WebGL. Drag and drop API. Interfejsy obsługi treści audio i wideo. Przechowywanie danych – Lacal Storage API. Geolokalizacja – Geolocation APIPodstawy2
T-W-7Podstawy programowania backend 1: składnia, semantyka, tablice, operatory, zmienne i stałe, instrukcje warunkowe, pętle. Podstawy programowania backend 2 – funkcje, parametry, zwracanie wartości przez referencję, system plików, interpretowane języki programowania i Web (POST, GET, cookies, sesje), bazy danych2
T-W-8Zaawansowane programowanie backend 1: programowanie obiektowe, stałe, dziedziczenie, type hinting, polimorfizm, klasy abstrakcyjne, interfejsy, traits. Zaawansowane programowanie backend 2: metody statyczne, late static binding, przestrzenie nazw, wyjątki i ich obsługa, mapowanie obiektowo-relacyjne2
T-W-9Zaawansowane programowanie backend 3: języki interpretowane i Web (obsługa formularzy, walidacje, wyrażenia regularne, output buffer, nagłówki cache, email), API REST, przetwarzanie XML, przetwarzanie JSON, testy jednostkowe, podejście Red-Green-Refactor, debugger, annotations, akceleracja kodu, profilowanie kodu, obfuskacja kodu2
T-W-10Języki programowania dla przeglądarek WWW ze statyczną kontrolą typów. Założenia, przyczyny powstania, zalety. Porównanie języków przeglądarkowych ze statyczną i dynamiczną kontrolą typów. Narzędzia do kompilacji. Typy: składnia określania typów, wnioskowanie typów, rzutowanie, typy wyliczeniowe, stałe. Funkcje: typy parametrów i zwracane przez funkcje, parametry opcjonalne i domyślne, funkcje zwrotne. Obiektowość: interfejsy, klasy, funkcje i właściwości statyczne, przestrzenie nazw, klasy abstrakcyjne, domknięcia. Mechanizmy programowania asynchronicznego1
T-W-11Hybrydowe aplikacje mobilne – instalacja, platformy, pluginy, użycie API urządzenia (geolokalizacja, kompas, kamera, bateria, akcelerometr), merges, debugowanie w Chrome, usługi automatyzacji budowy aplikacji1
18

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w laboratoriach18
A-L-2Praca własna nad tworzonymi witrynami internetowymi.30
A-L-3Zaliczenie2
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w wykładach18
A-W-2Analiza i wykonanie we własnym zakresie przykładów prezentowanych na wykładzie.30
A-W-3Egzamin2
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_D03.03.1_W01W wyniku przeprowadzonych zajęć studen powinien być w stanie scharakteryzować sposób działania architektury klient - serwer w środowisku internetowym, opisać działanie podstawowych protokołów sieciowych, wyjaśnić podstawowe pojęcia związane z tworzeniem stron internetowych, scharakteryzować wybrane środowiska do budowy aplikacji internetowych (po stronie klienta oraz serwera)
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W04Ma wiedzę w zakresie programowania systemów komputerowych, zna podstawowe paradygmaty programowania i wiodące języki programowania.
Cel przedmiotuC-2Ukształtowanie rozumienia podstawowych pojęć związanych ze środowiskiem WWW
Treści programoweT-W-1HTML: Języki znaczników; struktura dokumentu; meta dane; media a prawo autorskie, optymalizacja grafiki dla WWW, hiperłącza, znaczniki semantyczne i formatujące; odnośniki, listy i tabele; obsługa formularzy; reguły walidacji; zasady tworzenia stron WWW
T-W-2HTML+CSS: Geneza HTML 5, kontrolki wideo, kontrolki audio, nowe znaczniki strukturalne i semantyczne; CSS: Podstawowe definicje; integracja stylów z dokumentem; składnia CSS, budowa reguły stylu; rodzaje selektorów, zasady kaskadowości. CSS: box model, reguły pozycjonowania elementów serwisu; zaawansowane reguły CSS, układ treści strony, responsywność, transformacje i obroty, poziom wsparcia w przeglądarkach, preprocesory CSS (Sass)
T-W-3Architektura 1: komunikacja klient-server, zadania klienta i serwera WWW; protokół HTTP; struktura komunikatu HTTP; protokół HTTPS; zmienne cookies; podstawowe standardy; IETF oraz W3C; SEO. Architektura 2: model aplikacji internetowej, środowiska komponentowe, wzorce projektowe; web services, architektura REST, znacznikowe formaty wymiany danych, aplikacje typu SPA (Single Page Application), serwery aplikacji
T-W-4Języki programowania w środowisku przeglądarki WWW. Geneza powstania i historia rozwoju języków skryptowych w przeglądarkach. Standaryzacja i wersje języka. Osadzanie skryptów w dokumentach HTML. Podstawy programowania skryptów w środowisku przeglądarki WWW: instrukcje, zmienne (definiowanie, zasięg), typy danych (proste i referencyjne), literały, funkcje (deklaracje, wyrażenia funkcyjne, przeciążanie, obiekt this), komentarze, wyrażenia regularne
T-W-5JavaScript - programowanie obiektowe. Definiowanie, wykrywanie i usuwanie właściwości obiektów, rodzaje właściwości, atrybuty właściwości. Konstruktory. Prototypy, modyfikowanie prototypów, prototypy wbudowanych obiektów. Dziedziczenie: łańcuchy prototypów, dziedziczenie obiektów, dziedziczenie konstruktorów, pojęcie supertypu
T-W-6Przegląd przeglądarkowych interfejsów programistycznych. Document Object Model API – tworzenie, modyfikacja i usuwanie elementów dokumentu; metody selekcji elementów; manipulacja stylami; obsługa zdarzeń. XMLHttpRequest API – wysyłanie żądań HTTP, żądania synchroniczne i asynchroniczne. Manipulacja grafiką: Canvas API, WebGL. Drag and drop API. Interfejsy obsługi treści audio i wideo. Przechowywanie danych – Lacal Storage API. Geolokalizacja – Geolocation APIPodstawy
T-W-7Podstawy programowania backend 1: składnia, semantyka, tablice, operatory, zmienne i stałe, instrukcje warunkowe, pętle. Podstawy programowania backend 2 – funkcje, parametry, zwracanie wartości przez referencję, system plików, interpretowane języki programowania i Web (POST, GET, cookies, sesje), bazy danych
T-W-8Zaawansowane programowanie backend 1: programowanie obiektowe, stałe, dziedziczenie, type hinting, polimorfizm, klasy abstrakcyjne, interfejsy, traits. Zaawansowane programowanie backend 2: metody statyczne, late static binding, przestrzenie nazw, wyjątki i ich obsługa, mapowanie obiektowo-relacyjne
T-W-9Zaawansowane programowanie backend 3: języki interpretowane i Web (obsługa formularzy, walidacje, wyrażenia regularne, output buffer, nagłówki cache, email), API REST, przetwarzanie XML, przetwarzanie JSON, testy jednostkowe, podejście Red-Green-Refactor, debugger, annotations, akceleracja kodu, profilowanie kodu, obfuskacja kodu
T-W-10Języki programowania dla przeglądarek WWW ze statyczną kontrolą typów. Założenia, przyczyny powstania, zalety. Porównanie języków przeglądarkowych ze statyczną i dynamiczną kontrolą typów. Narzędzia do kompilacji. Typy: składnia określania typów, wnioskowanie typów, rzutowanie, typy wyliczeniowe, stałe. Funkcje: typy parametrów i zwracane przez funkcje, parametry opcjonalne i domyślne, funkcje zwrotne. Obiektowość: interfejsy, klasy, funkcje i właściwości statyczne, przestrzenie nazw, klasy abstrakcyjne, domknięcia. Mechanizmy programowania asynchronicznego
T-W-11Hybrydowe aplikacje mobilne – instalacja, platformy, pluginy, użycie API urządzenia (geolokalizacja, kompas, kamera, bateria, akcelerometr), merges, debugowanie w Chrome, usługi automatyzacji budowy aplikacji
Metody nauczaniaM-1Wykład informacyjny
M-2Wykład problemowy
M-5Objaśnienie lub wyjaśnienie
Sposób ocenyS-2Ocena podsumowująca: Końcowe zaliczenie wykładu w formie ustnej lub w formie pisemnego testu złożonego z pytań otwartych
Kryteria ocenyOcenaKryterium oceny
2,0Student nie zna podstawowych pojęć związanych z programowaniem aplikacji internetowych
3,0Student jest w stanie zdefiniować podstawowe pojęcia związane z programowaniem aplikacji internetowych
3,5Student jest w stanie opisać podstawowe etapy budowy stron internetowych
4,0Student jest w stanie zastosować zdobytą wiedzę w praktyce, czyli jest w stanie rozwiązać postawione przed nim zadanie za pomocą wskazanej technologii internetowej
4,5Student jest w stanie dokonać analizy porównawczej różnych środowisk służących do budowych aplikacji internetowych
5,0Student jest w stanie dokonać oceny wskazanych środowisk służących do budowych aplikacji internetowych pod kątem ich adekwatności do postawionego przed nim zadania
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_D03.03.1_U01Po zakończeniu przedmiotu student będzie potrafił zbudować witrynę internetową pozwalającą na prezentację wybranych treści w Internecie, z położeniem głównego nacisku na intuicyjność obsługi witryny przez użytkownika.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U09Potrafi analizować i oceniać przydatność języków, platform programistycznych i narzędzi informatycznych do rozwiązywania wybranych problemów inżynierskich w dziedzinie informatyki.
I_1A_U10Potrafi projektować i implementować systemy informatyczne posługując się narzędziami wspomagającymi proces wytwarzania oprogramowania na różnych jego etapach.
Cel przedmiotuC-1Zapoznanie studentów z zasadami budowy stron internetowych
C-3Ukształtowanie umięjętności budowy prostych aplikacji internetowych, z położeniem głównego nacisku na wysoki poziom interaktywności aplikacji.
Treści programoweT-L-3Realizacja apliakcji w JavaScript i DOM API: odczytywanie zawartości elementów, dynamiczne tworzenie elementów, wyszukiwanie elementów, modyfikacja stylów elementów, odczytywanie i walidacja danych w formualrzach.
T-L-4Projekt prostej apliakcji w JavaScript korzystającej z Geolocation API, Google Maps API oraz Notification API. Realizacja gry w JavaScript (układanie Puzzli) z użyciem mechanizmu Drag and Drop
T-L-5Budowa aplikacji klienckiej REST z użyciem XMLHttpRequest API.
T-L-6Projekt apliakcji w języku TypeScript: konfiguracja projektu, określanie zależności i konfiguracja narzędzi, kompilacja i uruchamianie.
T-L-1Przygotowanie pracy - wybór tematyki aplikacji wstępnej, serwera, edytora, założenie konta na serwerze, zgromadzenie informacji itp. Przygotowanie projektu witryny internetowej.
T-L-2Utworzenie zestawu stron (HTML) powiązanych systemem linków. Utworzenie zestawu arkuszy stylów dla tworzonej witryny, wraz z arkuszami przeznaczonymi dla menu stron (CSS).
T-L-7Wprowadzenie do tworzenia systemów webowych w oparciu o backend. Przygotowanie specyfikacji wymagań, user stories, work breakdown structure, metoda Delphi, tworzenie harmonogramów, klikalne makiety nowej aplikacji. Realizacja systemu webowego zgodnie z ustalonym harmonogramem
T-L-8Realizacja systemu webowego zgodnie z ustalonym harmonogramem: Mapowanie obiektowo-relacyjne; Uprawnienia. REST API server; Testy jednostkowe
T-L-9Hybrydowe aplikacje mobilne oparte o WebView, z wykorzystaniem TypeScript i REST API
Metody nauczaniaM-3Dyskusja dydaktyczna
M-4Ćwiczenia przedmiotowe
M-5Objaśnienie lub wyjaśnienie
Sposób ocenyS-1Ocena formująca: Kontrola poprawności realizacji zadania zdefiniowanego na poprzedzających laboratoriach
S-3Ocena podsumowująca: Końcowe zaliczenie laboratoriów - w formie prezentacji przygotowanej witryny internetowej (zaliczenie obejmuje również kody przygotowanych skryptów)
Kryteria ocenyOcenaKryterium oceny
2,0Student nie jest w stanie stworzyć prostej witryny internetowej
3,0Student jest w stanie stworzyć prostą witrynę internetową
3,5Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych
4,0Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych, wyposażoną w mechanizm logowania i rejestracji
4,5Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych, wyposażoną w mechanizm logowania i rejestracji, pozwalającą na przeprowadzenie poprawnej walidacji danych wprowadzanych przez użytkowników
5,0Student jest w stanie stworzyć witrynę internetową współpracującą z bazą danych, wyposażoną w mechanizm logowania i rejestracji, pozwalającą na przeprowadzenie poprawnej walidacji danych wprowadzanych przez użytkowników oraz jest w stanie uatrakcyjnić witrynę pod względem wizualnym oraz zwiększyć intuicyjność obsługi witryny