Kurs: Wybrane elementy praktyki projektowania oprogramowania zima 2016/17

Język wykładowy Polski
Opiekun Wiktor Zychla
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Kurs inżynierski
ECTS 5
Polecany dla I roku Nie
Egzamin Nie
Grupy efektów kształcenia Podstawy inżynierii oprogramowania Inżynieria oprogramowania (L) Programowanie i projektowanie obiektowe

Opis przedmiotu:

Celem zajęć jest przedstawienie studentom praktyki projektowania obiektowego oprogramowania. Zajęcia w zwięzły sposob łączą podstawową wiedzę z zakresu baz danych i inżynierii oprogramowania w obszarze projektowania obiektowego w wybranych wspołczesnych realiach technologicznych. Wymagania: przyda się znajomość paradygmatu obiektowego, pojęć obiektu, konstruktora, dziedziczenia, polimorfizmu i jego realizacji we wspoł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, obiektow, 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. wyzwalacze 5. indeksy 6. 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 typow, dynamiczne/luźne typowanie 5. obiekty, właściwości 6. specyfika **this** \- wiązanie kontekstowe 7. listy/tablice 8. enumeracja składowych obiektow vs enumeracja elementow tablic 9. funkcje jako typy pierwszoklasowe (first class citizens) 10. memoizacja 11. redefinicje funkcji 12. domknięcia 13. tworzenie obiektow - 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 - podejście CommonJS vs RequireJS 21. obiekty hostow - 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ęzykow do Javascript (m.in. LLVM, emscripten, inne) 6. wzorce projektowe i wzorce architektury 1. wzorce kreacyjne - singleton, factory 2. wzorce strukturalne - decorator, proxy, adapter 3. wzorce czynnościowe - composite, interpreter, observer, event aggregator, memento, state, chain of responsibility 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. zarządzanie budowaniem aplikacji (Grunt/Gulp) 3. sposob działania, instalacja 4. podstawowe moduły, m.in. filesystem, http 5. framework Compact - idea middleware 6. framework Express - routing, wzorzec MVC, silnik Embedded JS 7. framework sails.js 8. autentykacja/autoryzacja 9. komunikacja z bazą danych 9. testy jednostkowe aplikacji Javascript - framework Mocha Część dodatkowa - wykłady o charakterze uzupełniającym, przedstawienie podstaw wybranych zaawansowanych technologii wytwarzania aplikacji przy użyciu Javascript, m.in. * WebGL, grafika 3D * aplikacje mobilne - framework Cordova/PhoneGap * wybrane ramy wytwarzania aplikacji w przeglądarce (ExtJS, AngularJS) Pracownia Pracownia będzie polegała na uzupełnieniu materiału z wykładu szeregiem zadań o charakterze praktycznym. Przewiduje się listy zadań odpowiadajace poszczegolnym partiom materiału z wykładu.

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Wiktor Zychla
wt 12:00-14:00 (s. 141) 36 37 0

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

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Wiktor Zychla
wt 14:00-16:00 (s. 107) 18 19 0
Piotr Wieczorek
wt 14:00-16:00 (s. 110) 18 18 0

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: wtorek 12:15-13:00, czwartek 13:15-14.
Wiktor Zychla 302 Rok akademicki 2023/2024 - preferowane konsultacje Teams, proszę się umawiać z wyprzedzeniem dzień/dwa.