Technologie Internetu

Technologie Internetu

Szczegóły dot. rekrutacji

Celem studiów jest dostarczenie wiedzy z zakresu rozwijających się technologii Internetu. Studia są przeznaczone dla osób posiadających dyplom wyższej uczelni i pracujących lub planujących pracę w firmach i przedsiębiorstwach wymagających stosowania nowoczesnych technik komputerowych i technologii Internetu w codziennej pracy.

Idealni kandydaci to osoby posiadające podstawową wiedzę informatyczną, w tym szczególnie umiejętność programowania w dowolnym języku i zamierzające uzupełnić swoje umiejętności o elementy informatyki i technik komputerowych do programowania zastosowań internetowych.

Program przewiduje 210 godzin wykładów, ćwiczeń i laboratoriów. Program prowadzony jest elastycznie z uwzględnieniem aktualnych i ważnych zagadnień z dziedziny zastosowań internetowych.

Kierownikiem Studiów jest prof. Kazimierz Subieta; e-mail: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.

 

PROGRAM NAUCZANIA

Program studiów w roku akad. 2018/2019

Lp Przedmiot Kod

Forma

zaliczenia

Wykłady Ćwieczenia ECTS
I SEMESTR
1 UML i analiza obiektowa UML EZ 8 16 4
2 Projektowanie i administrowanie bazami danych BDA EZ 12 12 3
3 Tworzenie portali biznesowych TPB Z 10 0 2
4 Dynamiczne i aktywne strony WWW DAW EZ 12 12 3
5 Podstawy programowania w Javie PPJ EZ 12 12 3
II SEMESTR
6 Inżynieria oprogramowania INO EZ 14 6 3
7 Multimedia w biznesie elektronicznym MUL Z 6 4 2
8 Technologie Javy JAV EZ 12 12 4
9 Ramy programistyczne aplikacji WWW RAW EZ 18 18 4
10 Systemy rozproszone SYR Z 14 0 2

 

 ZAKRES TEMATYCZNY

I semestr

UML i analiza obiektowa  (rozwiń)

Celem wykładu jest wprowadzenie studenta do obiektowości w kontekście wykorzystania jej w analizie i projektowaniu systemów informatycznych. Wykład skupia się na prezentowaniu trzech podstawowych aspektów obiektowości. Po pierwsze, omawia najważniejsze pojęcia obiektowego modelu danych będącego jądrem języków i metodyk obiektowych wspomagających proces wytwarzania oprogramowania. Po drugie, przedstawia pewną liczbę pożytecznych technik, przydatnych w pracy zarówno analityka, jak i projektanta. Po trzecie, prezentuje język UML, będący przemysłowym standardem wykorzystywanym do specyfikowania, wizualizowania, konstruowania i dokumentowania artefaktów wytwarzanych w procesie rozwijania oprogramowania. Znajomość tych trzech rodzajów zagadnień pozwala w pełni przekonać się o zaletach podejścia obiektowego i możliwości jego wykorzystania w analizie i projektowaniu.
Wykład (12 h)

  • Wprowadzenie do inżynierii oprogramowania i języka UML.
  • Model przypadków użycia. Metody specyfikowania wymagań funkcjonalnych/niefunkcjonalnych na systemy informatyczne. Model a diagram. Model przypadków użycia: podstawowe pojęcia, relacje pomiędzy pojęciami, przykłady diagramów.
  • Model przypadków użycia, c.d. Analiza scenariuszy przepływów zdarzeń zachodzących pomiędzy użytkownikiem a systemem w trakcie realizowania przypadków użycia. Dokumentowanie przypadków.
  • Obiektowy model struktury dla warstwy biznesowej systemu. Definiowanie pojęć: klasyfikator, rodzaje klasyfikatorów występujących w UML, instancja klasyfikatora, klasa, inwarianty klasy, klasa a instancja klasy (obiekt), rodzaje instancji klasy, ekstensja klasy, rodzaje atrybutów, rodzaje metod, atrybuty i operacje statyczne.
  • Obiektowy model struktury: związek generalizacji-specjalizacji a dziedziczenie, rodzaje specjalizacji klas, klasa a ekstensja klasy, klasa abstrakcyjna, klasa konkretna, operacja, metoda, komunikat, metoda abstrakcyjna, przesłanianie metod, przeciążanie metod
  • Obiektowy model struktury, cd. Rozróżnianie pojęć: operacja a metoda i komunikat, przeciążanie a przesłanianie metod, polimorfizm metod.
  • Obiektowy model struktury: asocjacja binarna a asocjacja n-arna, agregacja a kompozycja, agregacja rekursywna, grafy, role wielowartościowe, asocjacja kwalifikowana
  • Obiektowy model struktury: mechanizmy rozszerzalności: wartości etykietowane, stereotypy, ograniczenia.
  • Obiektowy model struktury: transformacje diagramu klas, realizacja struktur generalizacji-specjalizacji.

Ćwiczenia (16 h)

  • Konstruowanie diagramów przypadków użycia w oparciu o przykładowe wymagania na systemy o wielkości do 10 klas
  • Dokumentowanie przypadków oraz konstruowanie scenariuszy dla przypadków w oparciu o przykładowe wymagania na systemy
  • Konstruowanie diagramów klas do wymagań o różnych stopniach trudności z położeniem nacisku na relewantny materiał wykładowy; cd. ćwiczeń z konstruowania diagramów przypadków użycia.
Projektowanie I administrowanie bazami danych (BDA) (rozwiń)

Celem przedmiotu jest ogólne zapoznanie słuchaczy z problematyką baz danych, ze szczególnym uwzględnieniem modelu relacyjnego. Słuchacze poznają koncepcję modelu relacyjnego i problem normalizacji struktur danych. Zapoznają się z procesem projektowania bazy w narzędziu CASE i przekształcenia modelu w fizyczną bazę danych. Poznają również podstawy języka SQL (koncepcja, funkcje). Zapoznają się z rolą serwera oraz aplikacji klienckiej w modelu pracy klient – serwer. W trakcie ćwiczeń słuchacze wykonują prosty projekt systemu bazodanowego, tworzą na jego podstawie bazę danych w MS SQL Server i prostą aplikację kliencką w MS Access korzystającą z bazy na serwerze.
Wykład (12 h)

  • Wstęp do baz danych. Modele danych. Geneza i koncepcja modelu relacyjnego przedstawiona na elementarnych przykładach. • Model relacyjny. Encja, atrybut, związek, jako uporządkowana lista encji. Modelowanie danych.
  • Normalizacja danych. Pojęcie relacji, zależności funkcyjnych. „Dobre” i „złe” zależności funkcyjne. Pojęcie pierwszej, drugiej i trzeciej postaci normalnej relacji Język SQL. Podstawowe polecenia DQL na pojedynczych tabelach. Złączenia tabel.
  • Język SQL. Polecenia DDL i DML.
  • System bazodanowy w układzie klient – serwer. Role serwera i aplikacji klienckich.


Ćwiczenia (12 h)

  • Prosty przykład bazy danych w MS Access. Konsekwencje braku normalizacji. Tabela, widok, złączenie tabel wykonywane w interfejsie graficznym.
  • Proste przykłady z projektowania baz danych przy użyciu narzędzia CASE (MS Visio). Analiza i korekta własnych projektów.
  • Ostateczna korekta własnych projektów. Wygenerowanie skryptów tworzących bazę danych. Uruchomienie skryptów na serwerze MS SQL Server.
  • Ćwiczenia z pisania prostych zapytań języka SQL na przykładowej bazie danych. • Operacje DDL i DML na przykładowej oraz na własnej bazie danych.
  • Utworzenie aplikacji klienckiej w MS Access połączonej z własną bazą danych na serwerze MS SQL.
Tworzenie portali biznesowych (TPB)  (rozwiń)

Celem wykładów jest zapoznanie słuchaczy z podstawowymi zagadnieniami budowy internetowych portali biznesowych. Omówiona będzie architektura, klasyfikacja, własności i podstawowe funkcje systemów zarządzania treścią. Następnie opisane będą przykłady popularnych rozwiązań. Podsumowaniem wykładów oraz sprawdzeniem przyswojenia materiałów jest realizacja prostego, zespołowego wdrożenia wybranego CMS-a.
Wykład (10 h)

  • Wprowadzenie do systemów zarządzania treścią
  • Funkcjonalność systemów zarządzania treścią
  • Systemy zarządzania treścią – omówienie popularnych rozwiązań
  • Prezentacje studenckie dotyczące zrealizowanych zadań
Podstawy programowania w Jave (PPJ) (rozwiń)
Wykład obejmuje podstawowe elementy języka Java: zmienne, literały, operatory, instrukcje, iteracje, obsługę wyjątków, tablice, wprowadzenie do kolekcji. Omawia programowanie obiektowe, w tym koncepcję polimorfizmu i interfejsów, a także zawiera wprowadzenie do programowania współbieżnego. Szczególna uwaga jest zwracana na praktykę programowania i środki służące do rozwiązywania konkretnych problemów m.in.. w zakresie operacji na plikach, analizy składniowej tekstu, przetwarzania dat i formatowania informacji.
Wykład (12 h)
  • Zmienne i literały. Typy proste. Programowanie z użyciem klas i obiektów.
  • Podejmowanie decyzji w programie
  • Tablice i wprowadzenie do kolekcji
  • Praktyka przetwarzania danych
  • Programowanie obiektowe. Polimorfizm, interfejsy, klasy wewnętrzne i lambda-wyrażenie
  • Wprowadzenie do programowania współbieżnego.

Ćwiczenia (12 h)
  • Pisanie prostych programów w Javie. Praca z Eclipse. Budowanie klas. Użycie obiektów.
  • Instrukcje sterujące (w tym iteracyjne). Obsługa wyjątków.
  • Tworzenie i zastosowanie tablic oraz prostych narzędzi kolekcyjnych.
  • Wczytywanie i zapisywanie informacji z/do plików. Metody przetwarzania napisów (w tym wyrażenia regularne). Działania na liczbach, przetwarzanie dat i formatowanie informacji. Użycie omówionych koncepcji w praktycznych sytuacjach.
  • Uruchamianie i zatrzymywanie wykonania kodów w watkach. Synchronizacja i koordynacja wątków.

 II semestr

Inżynieria oprogramowania (INO) (rozwiń)

Celem zajęć jest zapoznanie słuchaczy z podstawowymi zagadnieniami inżynierii oprogramowania, w tym z fazami rozwoju oprogramowania oraz metodami podwyższenia jakości oprogramowania. Wykład jest zorganizowany według kolejnych faz cyklu życiowego oprogramowania. Omówione są fazy: strategiczna, gromadzenia wymagań, analizy, projektowania, konstrukcji, testowania, instalacji i konserwacji. W czasie zajęć poruszane są problemy dobrych i złych praktyk w inżynierii oprogramowania, inżynierii wymagań, wykorzystania warstwy bazy danych, w tym baz relacyjnych i obiektowych. Omówione są także zagadnienia wspólne dla wielu faz, takie jak: dokumentowanie projektu, testowanie i narzędzia CASE.
Wykład (14 h)

  • Zagadnienia inżynierii oprogramowania. Walka ze złożonością oprogramowania. Modelowanie pojęciowe. Co to jest metodyka (metodologia)? Cykl życiowy oprogramowania. Modele cyklu życia oprogramowania.
  • Faza strategiczna: Współpraca z klientem. Zakres i kontekst przedsięwzięcia. Decyzje strategiczne. Harmonogram przedsięwzięcia. Ocena rozwiązań. Niepewność i ryzyko. Szacowanie kosztu oprogramowania.
  • Faza określania wymagań: Poziomy ogólności opisu wymagań. Jakość opisu wymagań. Metody rozpoznania wymagań. Wymagania funkcjonalne. Porządkowanie wymagań. Wymagania niefunkcjonalne. Dokument wymagań.
  • Faza analizy: Czynności w fazie analizy. Wymagania na oprogramowanie. Metodyki strukturalne i obiektowe. Proces tworzenia modelu obiektowego. Dokument wymagań na oprogramowanie.
  • Faza projektowania: Projektowanie składowych systemu niezwiązanych z dziedziną problemu. Projektowanie interfejsu użytkownika. Wprowadzanie i wyprowadzanie danych. Projektowanie składowej zarządzania danymi. Optymalizacja projektu. Określenie fizycznej struktury systemu. Jakość projektu.
  • Faza implementacji i testowania: Niezawodność oprogramowania. Zasada ograniczonego dostępu. Środowiska języków proceduralnych i obiektowych. Środowiska relacyjnych baz danych. Faza testowania: Związek faz projektu z fazami testowania. Audyt projektu. Rodzaje testów.
  • Instalacja oprogramowania. Konserwacja oprogramowania. Koszty konserwacji. Zarządzanie zmianami w oprogramowaniu. Narzędzia CASE. Korzyści ze stosowania narzędzi CASE. Składowe narzędzi CASE. Ocena narzędzi CASE. Przeszkody we wdrażaniu narzędzi CASE. Ćwiczenia (6 h) Przygotowanie i weryfikacja dokumentu studium osiągalności dla założonego projektu oprogramowania;
  • Przygotowanie i weryfikacja dokumentów określających wymagania użytkownika;
  • Przygotowanie harmonogramów realizacji przedsięwzięcia programistycznego.
  • Przygotowanie dokumentów określających fizyczną budowę systemu.
  • Przygotowanie planu testów. Przygotowanie planu i harmonogramu instalacji oprogramowania.
Multimedia w biznesie elektronicznym (MUL)  (rozwiń)
Celem przedmiotu jest zapoznanie studentów z podstawami komputerowych technik multimedialnych. Program wykładu obej-muje m.in. omówienie najważniejszych algorytmów kompresji danych multimedialnych. Ponadto, zostaną zapoznani z różnymi zastosowaniami technik multimedialnych.
Wykład (6 h)
  • Elementy przekazu multimedialnego oraz zastosowania multimediow. Dźwięk cyfrowy: cyfrowa obróbka sygnału dźwiękowego
  • Standardy plików graficznych, dźwiękowych i wideofonicznych: JPEG, MPEG.
  • Multimedialne bazy danych: indeksowanie, struktury danych. Strumieniowanie, wideokonferencje, www.

Ćwiczenia (4 h)
  • Grafika (także 3D) i animacja koputerowa. Przygotowanie intro w After Effects. Efekty cząsteczkowe. Fotografia. Opcjonalnie Adobe Photoshop.
Technologie Javy (JAV)  (rozwiń)
W ramach przedmiotu prezentowane są współczesne metody programowania, służące programowaniu praktycznych aplikacji, m.in. zaawansowane działania na strumieniach i kolekcjach, programowanie GUI, refleksja i programowanie komponentowe, generics i metadane, nowoczesne narzędzia programowania współbieżnego, lokalizacja i internacjonalizacja aplikacji, programowanie bazodanowe, programowanie rozproszone i Web-aplikacje
Wykład (12 h)
  • Zaawansowane użycie narzędzi we-wy i kolekcji
  • Programowanie GUI
  • Dynamiczna Java i internacjonalizacja aplikacji
  • Aplikacje bazodanowe
  • Programowanie rozproszone
  • Aplikacje WEB

Ćwiczenia (12 h)
  • Praca ze strumieniami, NIO i kolekcjami.
  • Tworzenie prostych aplikacji GUI.
  • Zastosowanie wzorca MVC.
  • Praktyczne zastosowania generics, refleksji i Java Beans. Użycie metod internacjonalizacji aplikacji.
  • Ćwiczenia z JDBC, Rozpoznanie podejść związanych z NoSql na przykładzie mongodb.
  • Programowanie klient-serwer. Użycie RMI-IIOP i JMS.
  • Tworzenie prostych aplikacji Web. bazy danych w aplikacjach web. Zastosowanie AJAX.
Systemy rozproszone (SYR)  (rozwiń)
Wykład jest wprowadzeniem do rozproszonych baz danych oraz standardu rozproszonych aplikacji CORBA. Obejmuje takie tematy jak: podstawy i pojęcia rozproszonych baz danych, główne aspekty rozproszonych baz danych, projektowanie i architektury rozproszonych baz danych, replikacje, transakcje, heterogeniczność, federacyjne bazy danych, osłony, mediatory, perspektywy, przetwarzanie rozproszonych zapytań, gridy. Zawiera też wprowadzenie do standardu OMG CORBA: ogólna architektura, usługi obiektowe, model obiektowy, język IDL, scenariusze zarządzania obiektami w standardzie CORBA.
Wykład (14 h)
  • Co to jest system rozproszony? Zalety i wady systemów rozproszonych. Krytyczne zagadnienia projektowe dla systemów rozproszonych. Popularne architektury rozproszenia. Rozproszona baza danych. Reguły rozproszonych baz danych.
  • Aspekty rozproszenia baz danych: przezroczystość, współdziałanie, przenaszalność, autonomia, niezależność danych, ontologia, metadane. Protokoły wymiany informacji. Migracje obiektów. Oprogramowanie komponentowe. Obiektowość w rozproszonych bazach danych. Złożoności projektu oprogramowania. Modelowanie pojęciowe. Zalety rozproszonych obiektów.
  • Podejścia do projektowania rozproszonych BD: top-down i bottom-up. Metody fragmentacji schematu. Federacyjna BD. Architektura klient-serwer. Architektura trzywarstwowa i wielowarstowa. Architektura aplikacji Web. Architektura rozproszonych obiektów.
  • Standardy łączenia rozproszonych danych. Replikacje. Przetwarzanie transakcji. Niezgodności schematów. Kanoniczny model danych. Federacyjna Baza Danych. Przetwarzanie zapytań w FBD. Rozproszone BD w standardzie CORBA.
  • Osłony w federacyjnych BD. Mediatory. Perspektywy. Przetwarzanie perspektyw w zapytaniach. Przetwarzanie zapytań w rozproszonych BD. Indeksowanie rozproszonych zasobów. Technologie gridowe. Równoległe przetwarzanie. Aktualizowalne perspektywy. Optymalizacja perspektyw.
  • Wprowadzenie do OMG CORBA. Misja OMG. OMA: ogólna architektura. Usługi obiektowe. Schemat komunikowania się klienta z serwerem. Pniaki i szkielety. Rdzeń ORB: przezroczystość, referencje do obiektów. Model obiektowy OMG. Język OMG IDL.
  • Wprowadzenie do OMG CORBA, kontynuacja: język IDL. Odwzorowania językowe. Repozytorium interfejsów. Repozytorium implementacji. Adaptery obiektów. Scenariusz zarządzania obiektami. Wołanie statyczne. Protokoły pomiędzy ORB-ami. Rodzaje usług obiektowych. Implementacje standardu CORBA. Zalety i wady OMG CORBA.