Wydział Informatyki - Informatyka (S1)
Sylabus przedmiotu Aplikacje internetowe 1:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | charakterystyki PRK, kompetencje inżynierskie PRK | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Aplikacje internetowe 1 | ||
Specjalność | Inżynieria systemów informacyjnych | ||
Jednostka prowadząca | Kolegium Dziekańskie | ||
Nauczyciel odpowiedzialny | Artur Karczmarczyk <Artur.Karczmarczyk@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
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Programowanie 2 |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z zasadami budowy stron internetowych |
C-2 | Ukształtowanie rozumienia podstawowych pojęć związanych ze środowiskiem WWW |
C-3 | Ukształ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ęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | HTML i CSS – Zen Garden – tworzenie pojedynczej strony HTML i zestawu styli CSS zmieniających jej wygląd, w zależności od wybranego stylu. | 4 |
T-L-2 | JS i DOM – utworzenie dynamicznej listy czynności do zrobienia z wykorzystaniem JS ES2015. Programowe przemieszczanie się po drzewie DOM. Dodawanie, usuwanie, edytowanie elementów drzewa DOM. | 2 |
T-L-3 | Zaawansowane JS w przeglądarce. Projekt i realizacja gry w ES2015 (układanie Puzzli) korzystającej z API do geolokalizacji, map, notyfikacji z użyciem canvas i mechanizmu przeciągnij-i-upuść. | 6 |
T-L-4 | Budowa aplikacji klienckiej REST z użyciem XMLHttpRequest API oraz Fetch API. | 2 |
T-L-5 | TypeScript – Zen Garden. Przekształcenie statycznej witryny z laboratorium 1 do postaci aplikacji dynamicznej, wyświetlającej listę styli oraz umożliwiającej jej podmianę w sposób dynamiczny bez przeładowania strony. | 2 |
T-L-6 | Wprowadzenie do tworzenia systemów webowych w oparciu o backend. Opracowanie przykładowego szkieletu systemu uwzględniającego przyjmowanie i przetwarzanie danych. | 2 |
T-L-7 | Wprowadzenie do projektowania systemów webowych w oparciu o backend. Przygotowanie specyfikacji wymagań, user stories, work breakdown structure, metoda Delphi, tworzenie harmonogramów, klikalne makiety nowej aplikacji. | 2 |
T-L-8 | Realizacja systemu webowego zgodnie z ustalonym harmonogramem. Front-controller, mapowanie obiektowo relacyjne, routing, szablony. | 8 |
T-L-9 | Hybrydowe aplikacje mobilne – przygotowanie aplikacji Android z wykorzystaniem kodu HTML/JS z poprzednich zajęć. | 2 |
30 | ||
wykłady | ||
T-W-1 | HTML i CSS: Podstawy. Obrazki. Hiperłącza. Listy. Tabele. | 2 |
T-W-2 | HTML i CSS: Układ strony. Formularze. HTML 5. Struktura i semantyka. Tranfsormacje i obrót. Przekształcanie i animacje. Elementy formularzy HTML 5. Poziom wsparcia elementów. Preprocesory CSS na przykładzie LESS. | 2 |
T-W-3 | JavaScript ES2015. Podstawy: Historia JS. Podstawy programowania – przypomnienie. Podstawy JS – wartości, typy danych, operatory. Zmienne. Przepływ sterowania. Wyrażenia regularne. JS i przeglądarki. | 2 |
T-W-4 | JavaScript ES2015. Programowanie obiektowe: Enkapsulacja. Interfejsy. Obiekty. Metody. Prototypy. Funkcja konstruktor. Operator new. Klasy. Polimorfizm. Interfejs Iterator. Gettery i settery. Dziedziczenie. Błędy i wyjątki. Funkcje wyższego rzędu. Drzewo DOM. | 2 |
T-W-5 | JavaScript ES2015. Biblioteki i API: Zdarzenia i ich obsługa. Połączenia asynchroniczne XMLHttpRequest i Fetch. Grafika rastrowa w Canvas. Grafika wektorowa w SVG. Animacje SVG. Drag-and-Drop API. Obsługa multimediów. Geolokalizacja i mapy. | 2 |
T-W-6 | Języki programowania dla przeglądarek WWW ze statyczną kontrolą typów. Problemy z JS. Wprowadzenie do TypeScript. Porównanie TS i JS. Instalacja TS. Typy. Funkcje. Polimorfizm. Obiektowość. | 2 |
T-W-7 | Wprowadzenie do PHP: Środowisko deweloperskie. Homestead. Serwer PHP. Podstawy PHP. Operatory. Zmienne i stałe. Przepływ sterowania. | 2 |
T-W-8 | Wprowadzenie do PHP: Funkcje. System plików. PHP i Web. Bazy danych. Dobre praktyki. | 2 |
T-W-9 | Zaawansowane PHP: Programowanie obiektowe. Klasy i obiekty. Konstruktor. Destruktor. Właściwości. Metody. Stałe w klasie. Dziedziczenie. Blokowanie nadpisywania metod. Poziomy widoczności. Type hinting i polmorfizm. Klasy abstrakcyjne. Interfejsy i traity. Referencje i klonowanie. Metody statyczne. Przestrzenie nazw. Wyjątki i ich obsługa. | 2 |
T-W-10 | Zaawansowane PHP: Baza danych. Interfejs PDO. Prepared Statements. Mapowanie obiektowo-relacyjne. PHP i Web. Obsługa formularzy. Obsługa JSON payload. Wyrażenia regularne. Sesje. Bufor wyjściowy. Pamięć podręczna. Poczta email. | 2 |
T-W-11 | Zaawansowane PHP: Usługi sieciowe Web Services. SOAP. REST. Testy jednostkowe. PhpUnit. Debugowanie i XDEBUG. Dokumentacja automatyczna. Akceleracja kodu. Profilowanie kodu. Podstawowe zasady bezpieczeństwa aplikacji. Obfuskacja kodu. | 2 |
T-W-12 | Architektura i SEO: Komunikacja klient-serwer. Protokół HTTP. SSL i HTTPS. Podstawowe standardy i organizacje webowe. Standardy PSR. Typy witryn. Wybieranie niszy. Optymalizacja witryny. Badanie słów kluczowych. Podstawy pozycjonowania witryn w wyszukiwarkach internetowych. | 2 |
T-W-13 | Wzorce projektowe. Geneza wzorców projektowych. Krótkie przypomnienie UML. Wzorce behawioralne: strategia. Wzorce kreacyjne: Simple Factory, Factory Method, Abstract Factory, Lazy Initialization, Builder, Prototype. Wzorce strukturalne: Decorator. Adapter. Façade. | 4 |
T-W-14 | Hybrydowe aplikacje mobilne – instalacja, platformy, pluginy, użycie API urządzenia (geolokalizacja, kompas, kamera, bateria, akcelerometr), merges, debugowanie w Chrome, usługi automatyzacji budowy aplikacji. | 2 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w laboratoriach | 30 |
A-L-2 | Praca własna nad tworzonymi witrynami internetowymi. | 18 |
A-L-3 | Konsultacje | 2 |
50 | ||
wykłady | ||
A-W-1 | Uczestnictwo w wykładach | 30 |
A-W-2 | Analiza i wykonanie we własnym zakresie przykładów prezentowanych na wykładzie. | 18 |
A-W-3 | Konsultacje | 2 |
50 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny |
M-2 | Wykład problemowy |
M-3 | Dyskusja dydaktyczna |
M-4 | Ćwiczenia przedmiotowe |
M-5 | Objaśnienie lub wyjaśnienie |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Kontrola poprawności realizacji zadania zdefiniowanego na poprzedzających laboratoriach |
S-2 | Ocena podsumowująca: Końcowe zaliczenie wykładu w formie ustnej lub w formie pisemnego testu złożonego z pytań otwartych |
S-3 | Ocena podsumowująca: Końcowe zaliczenie laboratoriów - w formie prezentacji przygotowanej witryny internetowej (zaliczenie obejmuje również kody przygotowanych skryptów) |
Zamierzone efekty uczenia się - wiedza
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_D03.03.1_W01 W wyniku przeprowadzonych zajęć student powinien być w stanie: 1. opisać składnię języka znacznikowego HTML wraz ze strukturami semantycznymi 2. omówić składnię kaskadowych arkuszy styli CSS 3. wyjaśnić pojęcia związane ze składnią i zastosowaniem języka skryptowego JavaScript w paradygmacie obiektowym 4. omówić programowanie aplikacji internetowych w architekturze monolitycznej i frontend-backend. | I_1A_W04 | — | — | C-2 | T-W-7, T-W-11, T-W-1, T-W-8, T-W-9, T-W-10, T-W-5, T-W-4, T-W-2, T-W-3, T-W-14, T-W-12, T-W-13, T-W-6 | M-1, M-2, M-5 | S-2 |
Zamierzone efekty uczenia się - umiejętności
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_D03.03.1_U01 W wyniku przeprowadzonych zajęć student powinien być w stanie: 1. tworzyć dokumenty HTML z wykorzystaniem struktur semantycznych 2. dostosowywać wygląd dokumentów HTML z wykorzystaniem styli kaskadowych CSS 3. programować obiektowo z wykorzystaniem języka skryptowego JavaScript 4. wykorzystywać współczesne interfejsy programistyczne i biblioteki języka skryptowego JavaScript 5. tworzyć monolityczne systemy internetowe generowane przez technologię serwerową PHP 6. tworzyć systemy internetowe w architekturze frontend-backend | I_1A_U09, I_1A_U10 | — | — | C-1, C-3 | T-L-6, T-L-1, T-L-2, T-L-3, T-L-4, T-L-7, T-L-8, T-L-9, T-L-5 | M-3, M-4, M-5 | S-3, S-1 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_1A_D03.03.1_W01 W wyniku przeprowadzonych zajęć student powinien być w stanie: 1. opisać składnię języka znacznikowego HTML wraz ze strukturami semantycznymi 2. omówić składnię kaskadowych arkuszy styli CSS 3. wyjaśnić pojęcia związane ze składnią i zastosowaniem języka skryptowego JavaScript w paradygmacie obiektowym 4. omówić programowanie aplikacji internetowych w architekturze monolitycznej i frontend-backend. | 2,0 | Student nie zna podstawowych pojęć związanych z programowaniem aplikacji internetowych. |
3,0 | Student jest w stanie samodzielnie omówić proces budowy podstawowych aplikacji internetowych w modelu monolitycznym i frontend-backend w paradygmacie obiektowym. | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_1A_D03.03.1_U01 W wyniku przeprowadzonych zajęć student powinien być w stanie: 1. tworzyć dokumenty HTML z wykorzystaniem struktur semantycznych 2. dostosowywać wygląd dokumentów HTML z wykorzystaniem styli kaskadowych CSS 3. programować obiektowo z wykorzystaniem języka skryptowego JavaScript 4. wykorzystywać współczesne interfejsy programistyczne i biblioteki języka skryptowego JavaScript 5. tworzyć monolityczne systemy internetowe generowane przez technologię serwerową PHP 6. tworzyć systemy internetowe w architekturze frontend-backend | 2,0 | Student nie jest w stanie stworzyć podstawowych aplikacji internetowych. |
3,0 | Student jest w stanie samodzielnie zbudować podstawowe aplikacje internetowe w modelu monolitycznym i frontend-backend w paradygmacie obiektowym. | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Literatura podstawowa
- Kris Jahmsa, Ph. D., Introduction to Web Development using HTML5, Jones & Bartlett Learning, 2014
- Zend PHP Certification Study Guide (Developer's Library), Zend Technologies, 2017, available at: http://www.zend.com/en/services/certification/php-certification-study-guide
- Marjin Haverbeke, Eloquent JavaScript. Third Edition., No Starch Press, 2018, http://eloquentjavascript.net/
- Sarah Drasner, SVG Animations, O’Reilly Media, 2017
- Boris Cherny, Programming TypeScript, O’Reilly Media, 2019
- Junade Ali, Mastering PHP Design Patterns, Packt Publishing, 2016
Literatura dodatkowa
- Farhad Ghayour, Diego Cantor, Real-Time 3D Graphics with WebGL 2, Packt Publishing, 2018
- Jesse Cravens, Jeff Burtoft, HTML5 Hacks, O’Reilly Media, 2013
- Sebastien Dubois, Alexis Georges, Learn TypeScript 3 by Building Web Applications, Packt Publishing, 2019
- Eric Freeman, Elisabeth Robson, Head First Design Patterns, 2nd Edition, O’Reilly Media, 2020
- Simon Timms, Mastering JavaScript Design Patterns – Second Edition, Packt Publishing, 2016