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) 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ącyTermin zajęćLimitZapisaniKolejka
Wiktor Zychla
wykład okrojony
wt 12:00-14:00 (s.wirtualna) 300 42 0

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

Pracownia

ProwadzącyTermin zajęćLimitZapisaniKolejka
Wiktor Zychla wt 08:00-10:00 (s.107) 18 19 6
Wiktor Zychla
ISIM
wt 10:00-12:00 (s.107) 18 19 9
Piotr Wieczorek śr 08:00-10:00 (s.7) 18 20 3

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 - sugerowane terminy to pn 9.15-10.00 lub sr 12.15-12.45, ale możliwe są też inne - pisząc mejla najlepiej zaproponować kilka do wyboru
Wiktor Zychla302Zima 2018/2019: wtorek, proszę o wcześniejszy kontakt mailowy w celu ustalenia godziny konsultacji.

Semestr 2018/19 zimowy