Wybrane elementy praktyki projektowania oprogramowania zima 2018/19

Język wykładowy Polski
Opiekun Wiktor Zychla
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku No
Egzamin Yes

Opis przedmiotu:

_Przedmiot dostępny w dwóch wersjach: kurs inżynierski za 5 ECTS oraz przedmiot I1 z egzaminem za 6 ECTS (oba zaliczają te same grupy efektów kształcenia). Wybór kursu (bez egzaminu) zaznacza się poprzez dodatkowe zapisanie się do grupy ćwiczeniowej z etykietą "wykład okrojony"._ Celem zajęć jest przedstawienie studentom praktyki projektowania obiektowego oprogramowania. Zajęcia w zwięzły sposób łączą podstawową wiedzę z zakresu baz danych i inżynierii oprogramowania w obszarze projektowania obiektowego w wybranych współczesnych realiach technologicznych. Wymagania: przyda się znajomość paradygmatu obiektowego, pojęć obiektu, konstruktora, dziedziczenia, polimorfizmu i jego realizacji we współczesnych językach programowania. Zajęcia są pomyślane jako zamiennik dla następujących kanonicznych zajęć: * w części dotyczącej baz danych - Bazy danych * w części dotyczącej projektowania obiektowego (wzorce projektowe) i inżynierii oprogramowania - Projektowanie obiektowe oprogramowania * w części praktycznej dotyczącej wytwarzania aplikacji internetowych - specjalizowane kursy technologii wytwarzania aplikacji internetowych, m.in. kurs Projektowanie aplikacji ASP.NET, kurs Ruby on Rails, kurs WWW ## Wykład Część podstawowa - obiejmuje materiał realizujący wymagania programowe: 1. podstawy projektowania obiektowego 1. analiza obiektowa 2. zbieranie wymagań 3. przypadki użycia 2. język UML 1. diagramy klas, obiektów, zachowań i sekwencji 3. od modelu pojęciowego do modelu relacyjnego 1. etap modelu pojęciowego 2. etap modelu obiektowego 3. etap modelu relacyjnego 4. podstawy praktyki baz danych 1. tabele, kolumny, więzy 2. klucze podstawowe, klucze obce 3. widoki, procedury składowane 4. indeksy 5. język SQL - zapytania SELECT, INSERT, UPDATE, DELETE, podzapytania, klauzule WHERE, ORDER, TOP, JOIN, złączenia wewnętrzne i zewnętrzne 5. język Javascript - nowoczesny hybrydowy język funkcyjno-obiektowy 1. filozofia języka - Javascript jako praktyczna realizacja idei Javy - write once run everywhere 2. historia, środowiska uruchomieniowe (Google V8, Microsoft Chakra) 3. podstawowe elementy języka, zasięg zmiennych, hoisting 4. system typów, dynamiczne/luźne typowanie 5. obiekty, właściwości 6. specyfika **this** \- wiązanie kontekstowe 7. listy/tablice 8. enumeracja składowych obiektów vs enumeracja elementów tablic 9. funkcje jako typy pierwszoklasowe (first class citizens) 10. memoizacja 11. redefinicje funkcji 12. domknięcia 13. tworzenie obiektów - funkcje konstruktorowe, prototypy, literały 14. dziedziczenie/enkapsulacja 15. IIFE (immediately-invoked function expressions) 16. lambda wyrażenia 17. klasy 18. generatory 19. callbacks vs promises vs async/await 20. modularyzacja 21. obiekty hostów - przeglądarka internetowa vs środowisko node.js 22. debugowanie kodu w przeglądarce 23. środowiska zintegrowane 24. narzędzia jakościowe: JSLint/JSHint/Closure 25. ekosystem/nadzbiory/transpilacja (Typescript/Coffeescript/ES6) 26. Javascript jako język frontendowy i backendowy - kompilacja innych języków do Javascript (m.in. LLVM, emscripten, inne) 6. wzorce projektowe i wzorce architektury - przegląd 7. aplikacja internetowa w przeglądarce 1. podstawy HTML5, elementy struktury dokumentu 2. podstawy CSS3, pozycjonowanie, wygląd, stylowanie responsywne 3. podstawy modelu Document Object Model (DOM) 4. model zdarzeniowy, pętla zdarzeń 5. obiekt canvas i podstawy grafiki bitmapowej 8. aplikacja internetowa na serwerze 1. środowisko node.js, pakiety npm 2. podstawowe moduły, m.in. filesystem, http 3. framework Express - routing, wzorzec MVC, silnik widoków EJS 4. framework Socket.IO 5. autentykacja/autoryzacja 6. komunikacja z wybraną bazą danych 9. testy jednostkowe aplikacji Javascript - framework Mocha, technologia Selenium 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.

Wykłady

Prowadzący Termin zajęć Limit Zapisani Kolejka
Wiktor Zychla wt 12:00-14:00 (s. 25) 300 63 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Ćwiczenia

Prowadzący Termin zajęć Limit Zapisani Kolejka
Wiktor Zychla
wykład okrojony
wt 12:00-14:00 (s. wirtualna1) 300 42 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Prowadzący Termin zajęć Limit Zapisani Kolejka
Piotr Wieczorek śr 08:00-10:00 (s. 7) 18 20 3
Wiktor Zychla wt 08:00-10:00 (s. 107) 18 19 5
Wiktor Zychla
ISIM
wt 10:00-12:00 (s. 107) 18 19 9

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Piotr Wieczorek 338 Proszę o umówienie się e-mailem, preferowany termin: środa 10-12
Wiktor Zychla 302 Zima 2019/2020: wtorek, 17:30-19:00