Strona główna » Przedmioty » Wybrane elementy praktyki projektowania oprogramowania
Filtrowanie
Rodzaj przedmiotu
Inne

Wybrane elementy praktyki projektowania oprogramowania

zima 2018/19
Punkty ECTS6
Liczba godzin30 (wyk) + 30 (prac)
ProwadzącyWiktor Zychla
RodzajInformatyczny 1
EgzaminTak
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ącyTermin zajęćLimitZapisaniKolejka
Wiktor Zychla wt 12:00-14:00 (s. 25)300630

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

Ćwiczenia

ProwadzącyTermin zajęćLimitZapisaniKolejka
Wiktor Zychla
wykład okrojony
wt 12:00-14:00 (s. wirtualna1)300420

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

Pracownie

ProwadzącyTermin zajęćLimitZapisaniKolejka
Piotr Wieczorek śr 08:00-10:00 (s. 7)18203
Wiktor Zychla wt 08:00-10:00 (s. 107)18195
Wiktor Zychla
ISIM
wt 10:00-12:00 (s. 107)18199

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 nazwiskoPokójKonsultacje
Piotr Wieczorek338Proszę o umówienie się e-mailem, preferowane terminy: środa 10-11, czwartek 12-13.
Wiktor Zychla302Lato 2018/2019: wtorek 14:15-15:45.

Semestr 2018/19 letni