Wydział Elektroniki i Informatyki · administratora baz danych. ... zawodowej opracowywać...

Post on 22-Sep-2020

4 views 0 download

Transcript of Wydział Elektroniki i Informatyki · administratora baz danych. ... zawodowej opracowywać...

Wydział Elektroniki i Informatyki Politechniki Koszalińskiej

kierunek: Informatyka studia drugiego stopnia

Specjalność: Zastosowania Systemów Baz Danych

Modyfikacja specjalności

W ramach projektu „Program zintegrowanych działań na rzecz zwiększenia jakości i efektywności kształcenia na Politechnice Koszalińskiej” w okresie grudzień 2019 – luty 2020, przeprowadzono aktualizację programu kształcenia na specjalności ZSBD.

Aktualizacja dotyczyła przede wszystkim technologii implementacji systemów bazodanowych.

W pracach udział wzięły przedsiębiorstwa informatyczne zainteresowane zatrudnieniem absolwentów specjalności oraz studenci specjalności.

Zakres modyfikacji Modyfikacja objęła sylwetkę absolwenta i efekty kształcenia oraz

zaznaczone przedmioty:

PLAN STUDIÓW DLA KIERUNKU: Informatyka – studia II-go stopnia

SPECJALNOŚĆ: Zastosowania Systemów Baz Danych (ZSBD)

studia stacjonarne obowiązuje od roku ak.: 2017/2018

W Ć L P S PE W Ć L P PE W Ć L P PE

1 Obiektowe modelowanie systemów informatycznych 15 15 30 3 1 1 3

2 Systemy rozproszone 30 15 45 4 2 1 4

3 Przetwarzanie danych w chmurze (R.Arsoba) 15 15 30 3 1 1 3

4 Projektowanie avatarów 15 15 2 1 2

5 Bazy danych NoSQL (Ł. Kupracz) 30 15 45 2 2 1 2

6 Hybrydowe systemy ekspertowe (A.Słowik) 30 15 45 3 2 1 3

7 Projektowanie systemów rozproszonych 15 15 1 1 1

8 Eksploracja danych (R.Wojszczyk) 30 15 45 2 2 1 2

150 45 75 4 1 3 6 2 2

3 1 2Liczba egzaminów

818 godz. x 15 tygodni 8 10

12

Sem.II

przedmioty modyfikowane w projekcie Razem 270 20

Lp Przedmioty specjalnościoweSuma godzin / ECTS Sem. III

Sylwetka absolwenta

Absolwenci specjalności ZSBD mają wiedzę i umiejętności z zakresu szeroko rozumianego przechowywania i przetwarzania danych. Oprócz relacyjnych baz danych (studia inżynierskie) znają metodologię obiektowego modelowania systemów informatycznych, baz danych NoSQL oraz technologie eksploracji danych i przetwarzania danych w chmurze. Znają również zagadnienia związane z projektowaniem i implementacją systemów rozproszonych i hybrydowych systemów ekspertowych

Efekty kształcenia 1/3

• opanowanie umiejętności modelowania i implementacji systemów informatycznych z wykorzystaniem obiektowo-relacyjnego mapowania oraz współczesnych technologii systemów baz danych;

• umiejętność modelowania i implementacji systemów informatycznych z wykorzystaniem baz danych NoSQL (modele danych: klucz-wartość, klucz-dokument, technologia Mongo DB, systemy rozproszone);

Efekty kształcenia 2/3

• poznanie technologii przetwarzania danych w chmurze (koncepcja chmury, rodzaje chmur, modele przetwarzania: IaaS, PaaS, SaaS i specjalizowane), poznanie zagadnień konteneryzacji oraz umiejętność wykorzystania współczesnych platform chmurowych, ze szczególnym uwzględnieniem środowiska Microsoft Azure;

• uzyskanie sprawności w projektowaniu i implementacji hybrydowych systemów ekspertowych (reprezentacja i przetwarzanie wiedzy, neuronowe bazy wiedzy, systemy szkieletowe, systemy rozmyte, środowisko programistyczne CLIPS oraz Spyder);

Efekty kształcenia 3/3

• uzyskanie sprawności w zakresie zastosowania narzędzi i technologii do projektowania, implementacji, testowania i dokumentowania wielowarstwowych systemów rozproszonych w sieciach Internet, opartych na architekturze Java Enterprise Edition i serwerze aplikacji;

• poznanie technologii i narzędzi eksploracji danych (odkrywanie asocjacji i wzorców sekwencji, klasyfikacja i grupowanie obiektów, hurtownie danych) ;

• umiejętność poszerzania i przekazywania wiedzy z zakresu przechowywania, przetwarzania i eksploracji danych.

Przykłady prac dyplomowych

- Równoległa realizacja przykładowego algorytmu genetycznego z wykorzystaniem wielordzeniowych procesorów CPU

- Porównanie mechanizmów replikacji baz danych w systemach MS SQL Server i PostgreSQL

- Analiza porównawcza wybranych aspektów wydajnościowych w popularnych systemach zarządzania relacyjnymi bazami danych

- Analiza porównawcza framework'ow do automatyzacji testów aplikacji webowych

- Równoległa realizacja przykładowego algorytmu mrówkowego z wykorzystaniem wielordzeniowych procesorów CPU

- Zestaw zaawansowanych funkcji, procedur i wyzwalaczy wspomagających pracę administratora baz danych.

- Aplikacja sterująca trasą przelotu drona Nano Quadcopter.

- Analiza porównawcza mechanizmów dublowania baz danych w systemach MS SQL Server i PostgreSQL

- Zastosowanie metod eksploracji danych na wybranych przykładach.

- Równoległa realizacja wybranego algorytmu sortowania na platformie FPGA.

Role zawodowe absolwenta

Absolwent specjalności ZSBD przygotowany jest do pełnienia funkcji:

• projektanta i administratora systemów baz danych,

• analityka,

• kierownika projektu informatycznego,

• specjalisty ds. wdrożeń systemów bazodanowych,

• programisty baz danych.

Perspektywy zatrudnienia Absolwenci specjalności ZSBD znaleźli zatrudnienie w:

• INTEL Poland

• GlobalLogic (Koszalin i zagranicą, np.: USA, Argentyna)

• Goyello (Gdańsk, Koszalin)

• O2.pl (Koszalin)

• Tieto (Szczecin)

• HP Polska

• ZETO (Koszalin)

• Nextweb ventures Sp. z o.o.

• EkoWodrol Sp. z o.o.

• Bitcomp Polska sp. z o.o.

• SMT Software S.A.

• Atena Sp. z o.o.

• Helsenett.no

• Fabryka Oprogramowania Frys sp. z o. o.

• Mikroserwis (Koszalin)

• Cefarm (Szczecin)

• własna działalność w branży IT

Specjalność: Zastosowania Systemów Baz Danych

przedmiot:

Bazy danych NoSQL prowadzący:

Mgr inż. Łukasz Kupracz Mgr inż. Piotr Andrusiuk Mgr inż. Piotr Górzyński Mgr inż. Tomasz Juchniewicz Semestr: 3 Forma zajęć: 30w15p

Cele kursu

• Ugruntowanie wiedzy o architekturze systemów informacyjnych z bazami danych NoSQL, standardach i technologiach projektowania systemów informatycznych.

• Otrzymanie umiejętności w zakresie obiektowego projektowania systemów informatycznych z wykorzystaniem baz danych NoSQL.

• Kształtowanie sprawności w stopniu pozwalającym w pracy zawodowej opracowywać oprogramowanie dla różnego rodzaju systemów informacyjnych z wykorzystaniem standardów obiektowych.

• Stworzenie i analiza architektury systemu informatycznego zgodnie ze standardami projektowania obiektowego.

Tematyka wykładów 1/2

1. WPROWADZENIE DO BAZ DANYCH NOSQL (3 godz.)

2. MODELE DYSTRYBUCYJNE A MODELE RELACYJNE (3 godz.)

3. MODELE KLUCZ - WARTOŚĆ

4. MODELE KLUCZ – DOKUMENT cz 1.(3 godz.)

5. MODELE KLUCZ – DOKUMENT cz 2.(3 godz.)

6. SYSTEMY INFORMATYCZNE OPARTE NA BAZACH DANYCH NoSQL (3 godz.)

Tematyka wykładów 2/2

7. CHARAKTERYSTYKI BAZ DANYCH NOSQL (3 godz.)

8. SYSTEMY CHMUROWE A BAZY DANYCH (3 godz.)

9. ROZPROSZONE SYSTEMY BAZODANOWE (3 godz.)

10. Przeprowadzenie zaliczenia z przedmiotu (3 godz.)

WPROWADZENIE DO BAZ DANYCH NoSQL

• Ograniczenia relacyjnych baz danych. Przyczyny powstania baz NoSQL.

• Podstawowe pojęcia baz danych NoSQL.

• Skalowalność. Koszt. Elastyczność. Dostępność.

• Różnorodność baz NoSQL.

• Przechowywanie danych bez schematu.

• Własności transakcji ACID i BASE.

• Teoria CAP (Brewera) – podstawowe pojęcia.

• Klasyfikacja systemów baz danych NoSQL.

• Charakterystyka systemów baz danych NoSQL.

MODELE DYSTRYBUCYJNE A MODELE RELACYJNE

• Replikacja i współdzielenie.

• Problemy rozproszonych baz danych.

• Bazy rodziny kolumn.

• Najważniejsze modele dystrybucyjne.

• Zarządzanie danymi w systemach rozproszonych.

• Zalety i wady baz relacyjnych.

• Bazy integracji i aplikacji.

• Bazy relacyjne w porównaniu z bazami NoSQL.

• Podział baz NoSQL ze względu na model danych.

• Modele danych NoSQL zorientowane na agregacje.

MODELE KLUCZ - WARTOŚĆ

• Wprowadzenie do baz klucz-wartość. • Baza danych Redis. Zastosowanie. Instalacja. • Połączenie z bazą. Podstawowe wartości w Redis. • Klucze w Redis. Przestrzeni nazw. Instrukcje do pracy z kluczami. • Ciągi znaków w Redis (stringi-strings). • Atomowość operacji, przykłady użycia. • Listy (Lists) w Redis. Operacje na listach. • Hasz – tablice asocjacyjne. Instrukcje do haszy. • Zbiory (Sets) w Redis. • Wykorzystanie map bitowych (Bitmaps). • Redis - konfigurowanie i wykorzystanie. • Wzorce projektowe dla baz klucz – wartość. • Klucze z ograniczonym czasem życia (Time to Live). • Emulowanie tabel. • Agregacje atomowe. • Transakcje. • Klucze enumerowane.

MODELE KLUCZ – DOKUMENT cz. 1

• Wprowadzenie do baz klucz – dokument.

• Baza danych MongoDB.

• Podstawowe pojęcia. Dokumenty JSON.

• Cechy główne oraz architektura MongoDB.

• Uruchomienie klienta i zarządzanie procesem serwera.

• Model danych MongoDB w porównaniu z modelem relacyjnym.

• Typy danych.

• Instrukcje CRUD.

• Bazy danych NoSQL a kolekcje.

MODELE KLUCZ – DOKUMENT cz. 2

• Modelowanie dokumentów. • Skalowalność MongoDB. • Partycjonowanie poziomowe. • Agregacja, sposoby filtracji danych. • Operacje atomowe. • Indeksy TTL. • Replikacja. • Rozdział (Sharding) danych. • Operacje administracyjne. • Wykorzystanie języka JavaScript.

CHARAKTERYSTYKI BAZ DANYCH NoSQL

• Czynniki wpływające na rozwój przechowywania i przetwarzania danych na przykładach.

• Charakterystyka jakości a wymagania systemu.

• Definicja kluczowych charakterystyk w kontekście baz NoSQL: wytrzymałość, konserwacja, dostępność, spójność, trwałość, niezawodność. Sposoby wyznaczania wartości metryk

• Porównanie wybranych baz NoSQL pod względem kluczowych charakterystyk.

CHARAKTERYSTYKI BAZ DANYCH NoSQL

• Czynniki wpływające na rozwój przechowywania i przetwarzania danych na przykładach.

• Charakterystyka jakości a wymagania systemu.

• Definicja kluczowych charakterystyk w kontekście baz NoSQL: wytrzymałość, konserwacja, dostępność, spójność, trwałość, niezawodność. Sposoby wyznaczania wartości metryk

• Porównanie wybranych baz NoSQL pod względem kluczowych charakterystyk.

SYSTEMY CHMUROWE A BAZY DANYCH

• Bazy NoSQL a rozwój systemów chmurowych.

• Systemy bazodanowe a wirtualizacja.

• Bazy danych w chmurach obliczeniowych (DBaaS).

• Funkcjonalności, zagrożenia, wady i zalety systemów bazodanowych DBaaS.

• Poufność przechowywanych danych.

• Integralność i dostępność.

• Skalowalność horyzontalna i wertykalna.

• Porównanie popularnych platform chmurowych.

• NoSQL w platformach telematycznych.

ROZPROSZONE SYSTEMY BAZODANOWE

• Wprowadzenie do baz danych Cosmos DB. • Właściwości Cosmos DB. • Modele spójności danych. • Poziom zapewnienia usługi (SLA) w Cosmos DB. • Regionalizacja danych. • Geo-replikacja. • Założenia architektoniczne systemów rozproszonych. • Replikacja danych i problemy z nią związane w

rozproszonych systemach bazodanowych. • Auto-skalowalność. • Interfejsy API wspierane przez Cosmos DB.

Tematyka ćwiczeń

1. Zajęcia organizacyjne (3 godz.)

2. Określenie wymagań systemu informatycznego (3 godz.)

3. Opracowanie koncepcji systemu informatycznego (3 godz.)

4. Konsultacje z nauczycielem (3 godz.)

5. Zaliczenie projektu (3 godz.)

Zajęcia organizacyjne

• Określenie wymagań dotyczących projektu.

• Przedstawienie zasad zaliczenia projektu i kryteriów oceny.

• Utworzenie zespołów projektowych

• Przydzielenie zadań projektowych.

Określenie wymagań systemu informatycznego

• Przedstawienie wymagań, atrybutów jakości oraz ograniczeń projektowanego systemu informatycznego.

• Estymowanie nakładów pracy.

• Określanie niezbędnych zasobów do realizacji zadań.

Opracowanie koncepcji systemu informatycznego

• Tworzenie dokumentacji technicznej zgodnie ze standardami.

• Praca w zespole zgodnie z przypisanymi rolami.

• Poszukiwanie rozwiązań z różnych źródeł wiedzy.

Konsultacje z nauczycielem

• Konsultacje z nauczycielem prowadzącym.

• Prezentacja napotkanych problemów i ryzyk.

• Podjęcie odpowiednich decyzji architektonicznych.

https://openclassrooms.com/en/courses/5671741-design-the-logical-model-of-your-relational-database/6255746-compare-relational-and-nosql-databases

Wykłady

Podział na część teoretyczną oraz praktyczną.

Poznanie najpopularniejszych typów baz danych NoSQL na przykładach.

Praktyczna wiedza związana z projektowaniem systemów informatycznych.

Technologia chmurowa i bazy danych.

Wykładowcy z wieloletnim komercyjnym doświadczeniem.

Projekt

Rozwijanie pracy zespołowej, poznanie ról w komercyjnych projektach.

Projekty bazujące na symulowanych projektach informatycznych.

Wykorzystanie wiedzy teoretycznej z wykładu. Umiejętność tworzenia dokumentacji architektonicznej. Podejmowanie decyzji projektowych. Ocenie podlega praca zespołowa oraz indywidualny

wkład. Prowadzący: architekt z wieloletnim doświadczeniem

komercyjnym.

Literatura do przedmiotu

1. Robert Perliński, Wprowadzenie do baz NoSQL: http://docplayer.pl/29100957Wprowadzenie-do-baz-nosql.html

2. Dan Sulivan, NoSQL Przyjazny przewodnik, Helion 2016

3. Guy Harrison, "NoSQL, NewSQL i BigData. Bazy danych następnej generacji", Helion

4. Pramod J. Sadlage, Martin Folwer, NoSQL Kompendium wiedzy, Helion, 2015

5. Documentation Redis: https://redis.io/documentation

6. Len Bass, "Software Architecture in Practice". Wydawnictwo: Pearson Education (US), Rok wydania: 2012

7. Dokumentacja usługi Azure Cosmos DB: https://docs.microsoft.com/pl-PL/azure/cosmos-db/

Specjalność: Zastosowania Systemów Baz Danych

przedmiot:

Hybrydowe Systemy Ekspertowe prowadzący:

Dr hab. inż. Adam Słowik, prof. PK

Semestr: 3

Forma zajęć: 30w15c

Cele kursu

• Uzyskanie sprawności w projektowaniu i implementacji hybrydowych systemów ekspertowych

• Poznanie algorytmów tworzenia drzew decyzyjnych

• Poznanie technologii lasów losowych

• Poznanie zagadnień związanych z klasycznymi systemami ekspertowymi

• Poznanie zagadnień związanych z neuronowymi bazami danych

• Poznanie zagadnień związanych z podstawami systemów neuro-rozmytych

Tematyka wykładów

1. Wprowadzenie do zagadnień związanych z hybrydowymi systemami ekspertowymi (2 godz.)

2. Systemy ekspertowe (8 godz.)

3. Przeszukiwanie przestrzeni problemowej (2 godz.)

4. Drzewa decyzyjne i las losowy (6 godz.)

5. Rozmyte systemy ekspertowe (4 godz.)

6. Neuronowe bazy wiedzy (4 godz.)

7. Systemy neuro-rozmyte (2 godz.)

Wprowadzenie do zagadnień związanych z hybrydowymi systemami ekspertowymi

• Cel wykładów

• Literatura do przedmiotu

• Omówienie zasad obowiązujących podczas egzaminu z przedmiotu

• Pojęcie hybrydowych systemów ekspertowych

• Sztuczna inteligencja

• Test Turinga

System ekspertowe

• Pojęcie systemu ekspertowego

• Dlaczego warto stosować systemy ekspertowe

• Schemat blokowy systemu ekspertowego (interfejs użytkownika, maszyna rozumująca, baza wiedzy, pamięć robocza, blok wyjaśniania, blok pozyskiwania wiedzy)

• Etapy tworzenia systemów ekspertowych (analiza problemu, specyfikacja systemu, akwizycja wiedzy, wybór reprezentacji wiedzy, konstrukcja systemu, weryfikacja i testowanie systemu)

• Fakty, reguły, heurystyki

• LISP, Prolog, CLIPS

Systemy ekspertowe (c.d.)

• Tworzenie reguł w środowisku CLIPS

• Instrukcje defrule, initial-fact, assert, bind

• Zalety i wady systemów ekspertowych

• Złożoność systemów ekspertowych

• Szkieletowe systemy ekspertowe

• Omówienie środowiska CLIPS

• Dodawanie, usuwanie faktów

• Atomowość faktów

• Sposoby zapisu wyrażeń matematycznych w środowisku CLIPS

Systemy ekspertowe (c.d)

• Metody reprezentacji wiedzy

• Rachunek zdań

• Stwierdzenia

• Regułowa reprezentacja wiedzy

• Wektory wiedzy

• Sieci semantyczne

• Metody wnioskowania występujące w systemach ekspertowych

• Wnioskowanie w przód

• Wnioskowanie wstecz

• Metody sterowania wnioskowaniem

Przeszukiwanie przestrzeni problemowej

• Algorytmy ślepe służące do przeszukiwania przestrzeni problemowej

• Omówienie zasad działania algorytmu przeszukiwania w głąb

• Przykład ilustrujący działanie algorytmu przeszukiwania w głąb

• Omówienie zasad działania algorytmu przeszukiwania wszerz

• Przykład ilustrujący działanie algorytmu przeszukiwania wszerz

Drzewa decyzyjne i las losowy

• Omówienie zagadnień związanych z klasyfikacją danych

• Definicja prawdopodobieństwa, entropii, zysku informacyjnego

• Omówienie zagadnień związanych z algorytmem ID3

• Tworzenie drzew decyzyjnych z wykorzystaniem algorytmu ID3

• Przykład numeryczny ilustrujący działanie algorytmu ID3

• Omówienie sposobu ekstrakcji reguł z utworzonego drzewa decyzyjnego

• Podstawowe charakterystyki reguł: pokrycie reguły klasyfikacyjnej, trafność reguły klasyfikacyjnej

Drzewa decyzyjne i las losowy (c.d.)

• Ocena jakości klasyfikatora

• Wprowadzenie do algorytmu C4.5 będącego rozszerzeniem algorytmu ID3

• Wprowadzenie do zagadnień związanych z tworzeniem tzw. lasu losowego (ang. random forest)

Rozmyte systemy ekspertowe

• Definicja zmiennych lingwistycznych

• Reguły rozmyte

• Sposób zapisu reguł rozmytych

• Schemat blokowy rozmytego systemu ekspertowego

• Podstawowe operacje AND, OR, NOT na zbiorach rozmytych

• Rozmywanie przesłanek w oparciu o rozmyte zbiory wejściowe

Rozmyte systemy ekspertowe (c.d.)

• Wnioskowanie rozmyte z wykorzystaniem rodziny operatorów MIN-MAX

• Agregacja cząstkowych konkluzji rozmytych (sumowanie konkluzji)

• Wyostrzanie rozmytego zbioru wynikowego celem uzyskania wyniku ostrego

Neuronowe bazy wiedzy

• Podstawy sztucznych sieci neuronowych

• Biologiczny neuron

• Model sztucznego neuronu

• Funkcje aktywacji

• Wyjaśnienie zasady działania pojedynczego sztucznego neuronu

• Perceptronowe funktory logiczne AND, OR, NOT

Neuronowe bazy wiedzy (c.d.)

• Zapis reguł przy użyciu sztucznych neuronów realizujących funkcje: AND, OR, NOT

• Proces wnioskowania w oparciu o sztuczną sieć neuronową realizującą określone reguły

• Przykład numeryczny – tworzenia i analizowania neuronowej bazy wiedzy w oparciu o cztery przykładowe reguły

Systemy neuro-rozmyte

• Wprowadzenie do systemów neuro-rozmytych

• Sposoby łączenia sztucznych sieci neuronowych z systemami rozmytymi

• Schemat blokowy elementarnego systemu neuro-rozmytego

• Zasada działania systemu neuro-rozmytego

• Przykład zapisu wybranych reguł do postaci systemu neuro-rozmytego

Tematyka ćwiczeń

1. Wprowadzenie do przedmiotu oraz prezentacja środowiska CLIPS (2 godz.)

2. Wyrażenia matematyczne w CLIPS (2 godz.)

3. Funkcje matematyczne w CLIPS oraz prezentacja środowiska Spyder (2 godz.)

4. Algorytm ID3 (2 godz.)

5. Neuronowe bazy wiedzy (2 godz.)

6. Systemy neuro-rozmyte (2 godz.)

Wprowadzenie do przedmiotu oraz prezentacja środowiska CLIPS

• Przedstawienie i omówienie środowiska CLIPS

• Załadowanie kilku wybranych paczek zawierających reguły

• Przeprowadzenie procesu wnioskowania w środowisku CLIPS

• Utworzenie pierwszej reguły w środowisku CLIPS

Wyrażenia matematyczne w CLIPS

• Przedstawienie i omówienie sposobu tworzenia zapisu wyrażeń matematycznych w środowisku CLIPS

• Pobieranie danych od użytkownika

• Wypisywanie komunikatów na ekran

• Tworzenie bardziej złożonych reguł

Funkcje użytkownika w CLIPS oraz prezentacja środowiska Spyder

• Przedstawienie i omówienie sposobu tworzenia własnych funkcji, które mogą zostać wykorzystane w dowolnej bazie reguł utworzonej zgodnie z notacją obowiązującą w środowisku CLIPS

• Prezentacja i krótkie omówienie środowiska Spyder jako jednego z potencjalnych narzędzi do realizacji kolejnych ćwiczeń z wykorzystaniem języka programowania Python

Algorytm ID3

• Przedstawienie i omówienie programowego sposobu realizacji algorytmu ID3

• Wykonanie jego implementacji oraz ręczna ekstrakcja reguł na podstawie utworzonego drzewa decyzyjnego

Neuronowe bazy wiedzy

• Przedstawienie sposobu tworzenia prostych neuronowych baz wiedzy w wybranym przez Studenta środowisku programistycznym

• Omówienie sposobu deklaracji sztucznego neuronu

• Omówienie sposoby zapisu reguł z wykorzystaniem sztucznych neuronów

Systemy neuro-rozmyte

• Przedstawienie i omówienie sposobu tworzenia prostego systemu neuro-rozmytego w oparciu o zbiór kilku reguł

• Prezentacja działania takiego systemu

• Przedstawienie możliwości dodatkowego uczenia się takich systemów i automatycznego generowania ważności poszczególnych reguł

Literatura do przedmiotu

1. Michał Białko, „Podstawowe właściwości sieci neuronowych i hybrydowych systemów ekspertowych”, Wydawnictwo Politechniki Koszalińskiej, Koszalin 2000

2. Danuta Rutkowska, Maciej Piliński, Leszek Rutkowski, „Sieci neuronowe, algorytmy genetyczne i systemy rozmyte”, Wydawnictwo Naukowe PWN, 1999

3. Leszek Rutkowski, „Metody i techniki sztucznej inteligencji”, Wydawnictwo Naukowe PWN, 2019

4. Dokumentacja programu CLIPS 6.x

5. Dokumentacja środowiska Spyder

Specjalność: Zastosowania Systemów Baz Danych

przedmiot:

Przetwarzanie danych w chmurze prowadzący:

dr inż. Robert Arsoba

Semestr: 2

Forma zajęć: 15w15p

Cele kursu

• Na bazie wiedzy i umiejętności z kursów poprzedzających, uzyskanie umiejętności projektowania, tworzenia, zarządzania i diagnostyki aplikacji działających w chmurze.

• Cel poznawczy: Zapoznanie się z metodologią przetwarzania danych w chmurze oraz ugruntowanie wiedzy ma temat tworzenia aplikacji działających w chmurze.

• Cel kształcący: Wykształcenie umiejętności projektowania i programowania aplikacji w chmurze.

• Cel praktyczny: Uzyskanie praktycznych umiejętności tworzenia aplikacji działających w chmurze, w szczególności aplikacji wykorzystujących bazy danych.

Tematyka wykładów

1. Wprowadzenie (2 godz.)

2. Modele przetwarzania w chmurze (2 godz.)

3. Przegląd platform PaaS (2 godz.)

4. Wprowadzenie do środowiska Microsoft Azure (2 godz.)

5. Tworzenie aplikacji dla Microsoft Azure (2 godz.)

6. Kontenery Docker (2 godz.)

7. Oprogramowanie Kubernetes (2 godz.)

8. Zaliczenie wykładu (1 godz.)

Wprowadzenie

• Cel wykładów. Literatura do przedmiotu.

• Zasady zaliczenia przedmiotu.

• Pojęcie chmury. Definicja i koncepcja chmury.

• Technologie informatyczne tworzące podwaliny chmury.

• Budowa wewnętrzna chmury.

• Usługi oferowane w chmurze.

• Korzyści wynikające z wykorzystania chmury.

• Rodzaje chmury (prywatna, publiczna, hybrydowa). Specjalizowane rodzaje chmury.

• Przykłady chmur dla poszczególnych rodzajów.

Rysunek: Sam Johnston (https://commons.wikimedia.org/wiki/File:Cloud_computing.svg), „Cloud computing“, https://creativecommons.org/licenses/by-sa/3.0/legalcode

• Modele oferowania usług w chmurze.

• Przegląd i charakterystyka poszczególnych modeli przetwarzania w chmurze.

IaaS (Infrastructure as a Service)

PaaS (Platform as a Service)

SaaS (Software as a Service)

• Modele specjalizowane.

• Przykłady chmur działających w oparciu o poszczególne modele.

Modele przetwarzania w chmurze

Źródło: Gartner AADI Summit Dec 2009

Przegląd platform PaaS • Przegląd chmur działających w modelu PaaS.

• Aktualny stan rynku chmur w modelu PaaS.

• Microsoft Azure z usługą App Service jako przykład chmury w modelu PaaS.

• Charakterystyka porównawcza współczesnych, popularnych platform PaaS (możliwości, właściwości, ograniczenia, wsparcie dla języków programowania).

Unknown author (https://commons.wikimedia.org/wiki/File:AmazonWebservices_Logo.svg), „AmazonWebservices Logo“, marked as public domain, more details on Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-text

Microsoft Corporation (https://commons.wikimedia.org/wiki/File:Microsoft_Azure_Logo.svg), „Microsoft Azure Logo“, marked as public domain, more details on Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-text

Google (https://commons.wikimedia.org/wiki/File:Google_Cloud_Logo.svg), „Google Cloud Logo“, marked as public domain, more details on Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-text

Google App Engine

Wprowadzenie do środowiska Microsoft Azure

• Konto użytkownika platformy Microsoft Azure.

• Witryna Azure Portal.

• Przegląd poszczególnych usług platformy Microsoft Azure.

• Charakterystyka najważniejszych usług.

Microsoft Corporation (https://commons.wikimedia.org/wiki/File:Microsoft_Azure_Logo.svg), „Microsoft Azure Logo“, marked as public domain, more details on Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-text

Tworzenie aplikacji dla Microsoft Azure

• Charakterystyka usługi Azure App Service.

• Kreator tworzenia aplikacji.

• Wykorzystanie Azure Cloud Shell do obsługi Azure App Service.

• Typy aplikacji w Azure App Service (aplikacje internetowe, aplikacje interfejsu API, zadania WebJob, aplikacje mobilne).

• Tworzenie i wdrażanie prostych aplikacji internetowych na Azure App Service (studium przypadków .NET, Java, PHP).

• Emulator chmury (lokalne uruchamianie, testowanie i debugowanie aplikacji).

• Diagnostyka aplikacji w Azure App Service.

Microsoft Corporation (https://commons.wikimedia.org/wiki/File:Microsoft_Azure_Logo.svg), „Microsoft Azure Logo“, marked as public domain, more details on Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-text

Kontenery Docker

• Podstawowe pojęcia: wirtualizacja na poziomie systemu operacyjnego, kontener, konteneryzacja.

• Charakterystyka narzędzia Docker. • Rozwiązania alternatywne dla kontenerów Docker. • Instalacja i konfiguracja narzędzia Docker. • Komponenty Docker: Docker Engine, obiekty (obrazy, kontenery,

usługi, sieci, wolumeny), rejestry (repozytoria obrazów). • Zagadnienia praktyczne:

Praca z obrazami Docker. Tworzenie obrazu. Wykorzystanie narzędzia Dockerfile. Przechowywanie i dystrybucja obrazów (repozytorium, rejestr). Uruchamianie obrazu.

Praca z kontenerami Docker. Tworzenie kontenera. Uruchamianie kontenera. Cykl życia kontenera. Zarządzanie działaniem kontenera.

• Łączenie kontenerów. Tworzenie i uruchamianie aplikacji wielokontenerowych (Docker Compose). Tworzenie klastrów kontenerów (Docker Swarm).

• Wykorzystanie i obsługa kontenerów Docker we współczesnych platformach chmurowych PaaS.

Logo: dotCloud, Inc. (https://commons.wikimedia.org/wiki/File:Docker_(container_engine)_logo.svg), https://www.apache.org/licenses/LICENSE-2.0

Rysunek: User:Maklaan (https://commons.wikimedia.org/wiki/File:Docker-linux-interfaces.svg), „Docker-linux-interfaces“, marked as public domain, more details on Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-ineligible

Oprogramowanie Kubernetes

• Koncepcja orkiestracji kontenerów. • Charakterystyka narzędzia Kubernetes. • Rozwiązania alternatywne dla narzędzia Kubernetes. • Instalacja i wykorzystanie Kubernetes

(środowisko do nauki i środowisko produkcyjne). • Pojęcie klastra Kubernetes. Architektura klastra

(węzły, węzeł Master, warstwa sterowania, dodatki). • Podstawowe obiekty Kubernetes (pod, usługa, wolumin, przestrzeń nazw,

sekret). Obiekty wyższego poziomu (Deployment, DaemonSet, StatefulSet, ReplicaSet, Job). Zarządzanie obiektami Kubernetes.

• Zagadnienia praktyczne. Tworzenie klastra. Instalowanie aplikacji na klastrze. Obsługa aplikacji. Udostępnianie aplikacji. Skalowanie aplikacji. Aktualizowanie aplikacji.

• Wykorzystanie i obsługa klastrów Kubernetes we współczesnych platformach chmurowych PaaS.

Rysunek: Google, Inc. (https://commons.wikimedia.org/wiki/File:Kubernetes_logo_without_workmark.svg), https://creativecommons.org/licenses/by/4.0/legalcode

Tematyka zajęć projektowych

1. Zajęcia organizacyjne (2 godz.) 2. Funkcjonalność aplikacji (2 godz.) 3. Diagram klas aplikacji (2 godz.) 4. Kod źródłowy aplikacji – część 1 (warstwa widoku) (2 godz.) 5. Kod źródłowy aplikacji – część 2 (warstwa logiki) (2 godz.) 6. Wdrożenie aplikacji w chmurze (2 godz.) 7. Testowanie działania i diagnostyka aplikacji w chmurze

(2 godz.) 8. Zaliczenie projektu (1 godz.) W trakcie zajęć prezentowane są efekty poszczególnych etapów projektu.

Literatura do przedmiotu

1. Z. Fryźlewicz, Ł. Leśniczek: "Usługi Microsoft Azure. Programowanie aplikacji", APN Promise 2016 (ebook).

2. J. Krochmalski: "Docker. Projektowanie i wdrażanie aplikacji", Helion 2017.

3. S.P. Kane, K. Matthias: "Docker. Praktyczne zastosowania. Wydanie II", Helion 2019 (zawiera również zagadnienia dotyczące Kubernetes).

4. K. Hightower, B. Burns, J. Beda: "Kubernetes. Tworzenie niezawodnych systemów rozproszonych", Helion 2019 (zalecane oryginalne wydanie w języku angielskim).

5. R. McKendrick, S. Gallagher: "Docker. Programowanie aplikacji dla zaawansowanych. Wydanie II", Helion 2018.

6. dokumentacja techniczna Microsoft Azure: https://azure.microsoft.com.

7. dokumentacja techniczna Docker: https://docker.com.

8. dokumentacja techniczna Kubernetes: https://kubernetes.io.

Specjalność: Zastosowania Systemów Baz Danych

przedmiot:

Eksploracja danych prowadzący:

dr inż. Rafał Wojszczyk

Semestr: 3

Forma zajęć: 30w15c

Cele kursu

• Poznanie ważnych pojęć i zagadnień związanych z przetwarzaniem, eksploracją i prezentacją danych

• Uzyskanie wiedzy z zakresu użytkowania, projektowania i wytwarzania narzędzi do przetwarzania i analizy

• Zrozumienie działania i wykorzystania narzędzi związanych z Business Intelligence oraz Big Data

• Kształtowanie umiejętności w zakresie poszukiwania nietrywialnych, nieoczywistych asocjacji w zbiorach danych

• Poznanie narzędzi, które wspomagają pracę specjalistów od baz danych

Tematyka wykładów

1. Wprowadzenie do przedmiotu (4 godz.)

2. Odkrywanie asocjacji (6 godz.)

3. Odkrywanie wzorców sekwencji (2 godz.)

4. Problem klasyfikacji obiektów (2 godz.)

5. Problem grupowania obiektów (2 godz.)

6. Wprowadzenie do biznesowej analizy danych (2 godz.)

7. Hurtownie danych (4 godz.)

8. Transformacje danych oraz Big Data (4 godz.)

9. Wielowymiarowa analiza danych (2 godz.)

10. Raportowanie danych (2 godz.)

1.Wprowadzenie do przedmiotu (4 godz.) • Podstawowe zagadnienia związane z dziedziną eksploracji

danych oraz etapy procesu eksploracji danych. • Omówienie przyczyn gromadzenia i analizowania danych

oraz problemy z nadmiarem danych oraz BigData. • Metody i narzędzia służące do analizy danych. • Cele i korzyści biznesowe wynikające z eksploracji danych. • Główne kierunki rozwoju, zastosowanie w świecie

rzeczywistym, przykłady wykorzystania eksploracji danych, z którymi spotyka się większość ludzi.

• Systemy klasy ERP.

2. Odkrywanie asocjacji (6 godz.) • Wprowadzenie problemu analizy koszyka zakupów (MBA) oraz

przełożenie tego problemu na inne dziedziny, modelowanie przykładów świata rzeczywistego w postaci tablic obserwacji wykorzystywanych w eksploracji danych.

• Omówienie typów reguł asocjacyjnych oraz podstawowych algorytmów odkrywania binarnych reguł asocjacyjnych

• Wprowadzenie pojęć ufności, wsparcia, zbioru częstego i zbioru kandydującego.

• Wykorzystanie algorytmu A­Priori oraz FP-drzewa do odkrywania asocjacji.

• Rozszerzenie przedstawionych reguł asocjacyjnych o wielopoziomowe i wielowymiarowe reguły asocjacyjne

• Podstawowe algorytmy optymalizujące w eksploracji danych, miary ataktyczności reguł asocjacyjnych.

3. Odkrywanie wzorców sekwencji (2 godz.)

• Wprowadzenie pojęć transformacji zbioru i sekwencjonowania.

• Podstawowe algorytmy, algorytm oparty na drzewach haszowych GSP oraz algorytm PrefixSpan.

• Odkrywanie wzorców sekwencji z ograniczeniami oraz uogólnionych wzorców sekwencji.

• Przykłady zastosowań odkrywania sekwencji w telekomunikacji, medycynie, ubezpieczeniach oraz modelowaniu systemów równoległych.

4. Problem klasyfikacji obiektów (2 godz.)

• Opis modelu klasyfikacyjnego oraz zastosowanie modelu do predykcji nowych obiektów.

• Przedstawienie popularnych metod klasyfikacji: klasyfikacja przez indukcję drzew decyzyjnych oraz klasyfikatora regułowe, naiwny klasyfikator Bayes'a oraz najbliższego sąsiedztwa

• Uzupełnienie przedstawionego materiału o kryteria oceny metod klasyfikacji, dokładność klasyfikacji oraz przeuczenie klasyfikatora.

5. Problem grupowania obiektów (2 godz.)

• Omówienie różnic pomiędzy grupowaniem a klasyfikacją.

• Wskazanie klasy problemów, gdzie zalecane jest zastosowanie grupowania, a gdzie metod klasyfikacji.

• Wyjaśnienie pojęć: klaster, skupienie, miara podobieństwa, miara odległości, cecha obiektu. Przedstawienie procesu grupowania z uwzględnieniem binaryzacji i kategoryzacji cech obiektów.

6. Wprowadzenie do biznesowej analizy danych (2 godz.)

• Wyjaśnienie potrzeb od strony biznesu, które stymulują budowę systemów klasy BI, w tym systemów dedykowanych pod potrzeby konkretnego klienta.

• Przykład wybranych analiz biznesowych w branżach produkcja, sprzedaż hurtowa oraz branża usługowa (np. hotelarstwo).

• Omówienie procesu budowy systemu BI oraz przedstawienie działania gotowych systemów, jak również narzędzi do budowy dedykowanych systemów (np. Microsoft Business Intelligence Development Studio).

7. Hurtownie danych (4 godz.)

• Omówienie różnic pomiędzy hurtowniami danych a klasycznymi relacyjnymi bazami danych oraz uzasadnienie potrzeby budowy hurtowni danych.

• Wprowadzenie pojęć miar i wymiarów oraz sposobów identyfikowania miar i wymiarów w istniejących bazach.

• Implementacja modelu wielowymiarowego w serwerach relacyjnych (ROLAP), wyjaśnienie typowych struktur: schemat gwiazdy, płatka śniegu.

• Przedstawienie budowy hurtowni danych.

• Omówienie daty i czasu.

8. Transformacje danych oraz Big Data (4 godz.)

• Omówienie procesu transformacji: akwizycja danych z różnych typów źródeł (np. XML, bazy danych, sieci społecznościowe), wykrywanie zmian w źródłach, transformacja danych do postaci zgodnej z hurtowniami danych, łączenie danych z wymiarami, uzupełnianie danych w hurtowniach danych.

• Budowa transformacji ETL w dedykowanych narzędziach (np. Microsoft Business Intelligence Development Studio), na przykładzie przygotowanej wcześniej hurtowni danych.

8. Transformacje danych oraz Big Data (4 godz.) – c.d.

• Automatyzacja transformacji, tzw. nocne buildy, oraz optymalizacja transformacji.

• Wprowadzenie do problemów związanych z Big Data, w kontekście transformacji danych.

• Omówienie pojęć „data lake” oraz leniwego odczytu danych. Wprowadzenie elementów uczenia maszynowego oraz ontologii, jako narzędzia wspomagające unifikację i klasyfikację danych z różnych źródeł (w z tym z data lake).

9. Wielowymiarowa analiza danych (2 godz.)

• Scharakteryzowanie przetwarzania analitycznego OLAP oraz budowy kostki OLAP

• Tworzenie miar i wymiarów na podstawie przygotowanej wcześniej hurtowni danych

• Budowa analiz wielowymiarowych (użycie miar i wymiarów) oraz omówienie podstawowych operacji w kostkach OLAP (np. zwijanie, selekcja itp.).

10. Raportowanie danych (2 godz.)

• Wprowadzenie do raportów/wydruków generowanych za pomocą narzędzi typu Reporting Services, Crystal Reports.

• Wyjaśnienie potrzeb biznesowych budowy raportów. Przedstawienie sposobów budowy raportów na przykładzie opracowanej wcześniej hurtowni danych oraz kostki OLAP.

• Omówienie dodatkowych funkcji w wybranym narzędziu do raportowania, np. tworzenie wykresów, sortowani.

Tematyka ćwiczeń

1. Wykorzystanie podstawowej wiedzy z eksploracji danych (2 godz.)

2. Wykorzystanie metod klasyfikacji (2 godz.)

3. Przygotowanie środowiska roboczego i hurtownie danych (4 godz.)

4. Opracowanie transformacji ETL (2 godz.)

5. Budowa kostki OLAP (2 godz.)

6. Prezentacja i raportowanie danych (3 godz.)

1. Wykorzystanie podstawowej wiedzy z eksploracji danych (2 godz.)

• Wprowadzenie wybranych funkcji arkusza kalkulacyjnego (np. import danych z różnych źródeł, tabele przestawne, Solver, filtrowanie i sortowanie) – wykonywanie zadań na gotowym zbiorze danych.

• Generowanie zbiorów kandydujących i zbiorów częstych dla własnego zbioru danych

• Odkrywanie reguł asocjacyjnych, obliczanie miar wsparcia i ufności.

2. Wykorzystanie metod klasyfikacji (2 godz.)

• Przygotowanie wejściowego zbioru danych, obliczanie prawdopodobieństwa w MS Excel na potrzeby dalszych kroków.

• Implementacja w MS Excel klasyfikacji za pomocą naiwnego klasyfikatora Bayes’a.

3. Przygotowanie środowiska roboczego i hurtownie danych (4 godz.)

• Wybranie odpowiedniej wersji oraz instalacja środowiska roboczego Business Intelligence Development Studio.

• Konfiguracja podstawowych komponentów i serwerów.

• Zapoznanie się z programami całego pakietu.

• Utworzenie hurtowni danych, zamodelowanie odpowiednich miar i wymiarów, na podstawie istniejącej bazy danych systemu ERP.

4. Opracowanie transformacji ETL (2 godz.)

• Projekt transformacji danych z bazy danych programu ERP do opracowanej wcześniej struktury hurtowni danych.

• Utworzenie procesu ETL w Business Intelligence Development Studio. Uruchomienie transformacji i zasilenie hurtowni danych.

5. Budowa kostki OLAP (2 godz.)

• Utworzenie kostki OLAP na podstawie opracowanej hurtowni danych, a następnie dodanie brakujących wymiarów oraz miary i funkcji wyliczeniowych.

• Uruchomienie kostki oraz wykonanie podstawowych operacji potrzebnych do prezentacji danych (np. zwijanie, selekcja).

6. Prezentacja i raportowanie danych (3 godz.)

• Tworzenie interaktywnych raportów na podstawie danych z bazy danych lub OLAP.

• Formatowanie raportów, dopasowanie raportów do przyjętych standardów biznesowych.

• Automatyzacja generowania raportów z parametrami.

Literatura do przedmiotu 1. Tadeusz Morzy, Eksploracja danych, Wydawnictwo Naukowe PWN 2013

2. John W. Foreman, Mistrz analizy danych. Od danych do wiedzy, Helion 2017

3. Wee-Hyong Tok i inni, Microsoft SQL Server 2012 Integration Services, APN Promise 2017

4. Rachel Schutt, Cathy O'Neil, Badanie danych. Raport z pierwszej linii działań, Helion 2014

5. Daniel Larose, Metody i modele eksploracji danych, Wydawnictwo Naukowe PWN 2008

6. Data Mining: Concepts and Techniques, J. Han, M. Kamber, Morgan Kaufman, 2000

7. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations, I. H. Witten, E. Frank, Morgan Kaufman, 2000

8. Pricinciples of Data Mining, J. Hand, H. Mannila, P. Smyth, MIT Press, 2001

9. Systemy uczące się, P. Cichosz, WNT, 2000

10. Odkrywanie asocjacji: Algorytmy i struktury danych, T. Morzy, OWN, 2004