Z głębokim smutkiem zawiadamiamy o śmierci prof. Mariana Nowińskiego, wieloletniego Dziekana Wydziału Sztuki Nowych Mediów.
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.

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 (8 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.
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.
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.
Bezpieczeństwo I ochrona danych w systemach komputerowych (BOD) (rozwiń)

Wykład (10 h)
  • Zapoznanie słuchaczy z niebezpieczeństwami dla danych występującymi w procesie ich przetwarzania, przesyłania i przechowywania oraz mechanizmami minimalizacji ich skutków.

Ćwiczenia (- h)
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ń

Ćwiczenia (- h) -
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

Technologie XML (XML) (rozwiń)
Przedmiot stanowi element modułu poświęconemu aplikacjom WWW oraz usługom WWW. Obejmuje zagadnienia warstwy prezentacyjnej aplikacji WWW (HTML, XHTML, CSS), programowania po stronie klienta (JavaScript) oraz różnorodnych technologii opartych na języku XML, w tym również integracji oprogramowania opartej na Service Oriented Architecture.
Wykład (12 h)
  • Języki znaczników, język HTML
  • Dokumenty WWW i ich formatowanie
  • Programowanie w środowisku dokumentu znacznikowego
  • Schematy dokumentów znacznikowych
  • Transformacje i odpytywanie dokumentów XML
  • Integracja oprogramowania oparta na SOA

Ćwiczenia (8 h)
  • Tworzenie i walidacja dokumentów znacznikowych
  • Projektowanie schematu dokumentów znacznikowych
  • Odpytywanie i transformacje dokumentów znacznikowych
Dynamiczne strony WWW (ASP)  (rozwiń)
Przedmiot stanowi element modułu poświęconemu aplikacjom WWW oraz usługom WWW. Obejmuje zagadnienia komunikacji w systemie WWW, programowania aplikacji WWW po stronie serwera, realizacji wzorców projektowych aplikacji WWW oraz zagadnienia bezpieczeństwa aplikacji WWW.
Wykład (8 h)
  • Protokoły internetowe a system WWW
  • Technologie dokumentów dynamicznych WWW
  • Wzorce projektowe i ramy programistyczne dla aplikacji WWW
  • Bezpieczeństwo aplikacji WWW

Ćwiczenia (12 h)
  • Budowa i formatowanie dokumentów HTML
  • Programowanie w języku Ruby
  • Rama aplikacji WWW – Ruby on Rails
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.

Ćwiczenia (- h)
Serwery aplikacyjne (SAP) (rozwiń)
Zapoznanie studentów z podstawową wiedzą dotyczącą technologii wykorzystywanych w budowie aplikacji w architekturach wielowarstwowych. Zapoznanie studentów z budową aplikacji wykorzystujących podejście REST oraz protokół SOAP
Wykład (4 h)
  • Technologie w aplikacjach wielowarstwowych - wprowadzenie
  • Technologie w aplikacjach wielowarstwowych - protokół SOAP oraz wzorzec projektowy REST

Ćwiczenia (6 h)
  • Aplikacje REST z wykorzystaniem Ruby on Rails i JSON oraz XML
  • Protokół SOAP z wykorzystaniem SOAP2R
  • Protokół SOAP z wykorzystaniem SOAP2R