IO (Inżynieria oprogramowania)PiPO (Projektowanie i programowanie obiektowe)
Grupy efektów kształcenia
Podstawy inżynierii oprogramowaniaInżynieria oprogramowania (L)Programowanie i projektowanie obiektowe
Opis przedmiotu:
Celem zajęć jest przedstawienie studentom praktyki projektowania oprogramowania. Zajęcia w zwięzły sposób łączą podstawową wiedzę z zakresu baz
danych i inżynierii oprogramowania w obszarze projektowania aplikacji internetowej we współczesnych realiach technologicznych.
Wymagania: brak
## Wykład
Część podstawowa - obiejmuje materiał realizujący wymagania programowe:
1. język Javascript - nowoczesny hybrydowy język funkcyjno-obiektowy
1. programowanie funkcyjne
1. progamowane obiektowe
1. programowanie asynchroniczne
1. język Typescript - nowoczesny system typów dla Javascript
1. aplikacja internetowa na serwerze
1. środowisko node.js, pakiety npm
1. podstawowe moduły, m.in. filesystem, http
1. framework Express - routing, wzorzec MVC, silnik widoków EJS
1. framework Socket.IO
1. autentykacja/autoryzacja
1. React - aplikacja po stronie przeglądarki
1. aplikacja kliencka React/TypeScript
1. usługi serwerowe API typu REST
1. testy jednostkowe, testy end-to-end - framework Mocha, technologie Selenium/Playwright
1. podstawy praktyki baz danych
1. tabele, kolumny, więzy
1. klucze podstawowe, klucze obce
1. widoki, procedury składowane
1. indeksy
1. język SQL - zapytania SELECT, INSERT, UPDATE, DELETE, podzapytania, klauzule WHERE, ORDER, TOP, JOIN, złączenia wewnętrzne i zewnętrzne
1. konteneryzacja - użycie narzędzi typu Docker do rozwijania i hostowania aplikacji
1. kontener jako platforma
1. kontener jako usługa
1. DevContainers
Pracownia
Pracownia będzie polegała na uzupełnieniu materiału z wykładu szeregiem zadań
o charakterze praktycznym. Przewiduje się listy zadań odpowiadajace
poszczególnym partiom materiału z wykładu. Zwieńczeniem pracowni jest projekt aplikacji internetowej, realizowany samodzielnie lub zespołowo.