dr Mykola Prodaniuk

Wydział Matematyki, Informatyki i Architektury Krajobrazu - Instytut Matematyki, Informatyki i Architektury Krajobrazu
Katedra Sztucznej Inteligencji

Stanowisko: Adiunkt posiadający stopień naukowy dr


Aplikacje sieciowe i bazy danych - seminarium

Cele przedmiotu:
C1 - Pomóż studentam przygotować wysokiej jakości pracę licencjacką.
C2 - Dostarczenie studentom informacji o postępie prac
С3 - Planowanie etapow wykonanja prace za pomocą Microsoft Project.
С4 - Wybór zadania i zatwierdzenie tematu pracy Indywidualna praca z każdym uczniem.
С5 - Kontrola zadań zgodnie z harmonogramem.
Wymagania wstępne:
W1 - Znajomość przedmiotów kształcenia podstawowego i kierunkowego objętych programem studiów
W2 - Znajomość języka angielskiego w stopniu umożliwiającym korzystanie z literatury anglojęzycznej
W3 - Umiejętność programowania
Efekty kształcenia:
WIEDZA
K_W04 Ma podstawową wiedzę z zakresu budowy i zarządzania systemami informatycznymi
K_W05 Zna na poziomie podstawowym co najmniej jeden pakiet oprogramowania służący do obliczeń symbolicznych
K_W06 Ma ogólną wiedzę z zakresu algorytmiki, projektowania i programowania, systemów operacyjnych, sieci komputerowych, inżynierii oprogramowania, baz danych, sztucznej inteligencji i grafiki komputerowej

UMIEJĘTNOŚCI
K_U01 Potrafi posługiwać się wybranymi systemami operacyjnymi oraz pakietami oprogramowania użytkowego
K_U02 Potrafi samodzielnie pozyskiwać i wykorzystywać informacje pomocne w rozwiązaniu określonych problemów informatycznych z dokumentacji technicznej, plików pomocy oraz zasobów Internetu i dostępnej literatury
K_U03 Potrafi stosować na poziomie podstawowym co najmniej jeden pakiet oprogramowania służący do obliczeń symbolicznych
K_U04 Potrafi posługiwać się słownictwem specjalistycznym z zakresu informatyki
K_U05 Potrafi projektować strony www
K_U06 Potrafi stosować podstawowe pojęcia i metody z zakresu systemów liczbowych, kodowania, przetwarzania i ochrony danych
K_U07 Potrafi analizować algorytmy i programy zapisane w języku programowania imperatywnego pod kątem ich poprawności i złożoności obliczeniowej
K_U08 Rozumie zasady budowy algorytmów. Potrafi konstruować i zapisywać proste algorytmy rozwiązujące problemy z różnych dziedzin nauki
K_U09 Potrafi stosować podstawowe algorytmy rekurencyjne, sortowania i przeszukiwania oraz ich implementacje w wybranym języku programowania i środowisku programistycznym
K_U10 Potrafi stosować struktury danych, zaimplementować je i wykonywać na nich operacje
K_U11 Potrafi stosować zasady tworzenia programów strukturalnych i obiektowych
K_U12 Potrafi napisać prostą aplikację w obiektowym języku programowania, w środowisku tekstowym i graficznym
K_U13 Potrafi projektować oprogramowanie z wykorzystaniem zasad inżynierii oprogramowania
K_U14 Potrafi opracować podstawową dokumentację w procesie realizacji projektu informatycznego
K_U15 Potrafi tworzyć proste usługi sieciowe oraz udostępniać je użytkownikom poprzez różne protokoły sieciowe
K_U16 Potrafi stosować podstawowe zagadnienia sztucznej inteligencji
K_U17 Potrafi opisać przestrzeń problemu wyrażonego w języku naturalnym w terminach stanów, operatorów, stanu początkowego i docelowego
K_U18 Potrafi stosować mechanizmy wspomagania decyzji przy rozwiązywaniu problemów praktycznych
K_U19 Posiada umiejętność przeprowadzania testów funkcjonalnych
K_U20 Potrafi stosować w praktyce podstawowe metody numeryczne
K_U21 Potrafi stosować aparat logiki, techniki dowodzenia twierdzeń i rekurencję do rozwiązywania problemów o charakterze informatycznym
K_U22 Potrafi wykorzystać nabytą wiedzę matematyczną do opisu procesów, tworzenia modeli, zapisu algorytmów oraz innych działań w obszarze informatyki
K_U23 Potrafi posługiwać się językiem angielskim w stopniu umożliwiającym korzystanie z dokumentacji oprogramowania i sprzętu
K_U24 Potrafi zbudować i administrować prostą siecią komputerową
K_U25 Posiada umiejętność tworzenia obrazów z wykorzystaniem standardowego API graficznego i zrealizować podstawowe transformacje, zaimplementować proste procedury transformacji obrazów
K_U26 Potrafi formułować proste zapytania w języku SQL, przygotować schemat relacyjnej bazy danych
K_U27 Potrafi zbudowac prosty system bazodanowy wykorzystując co najmniej jeden z popularnych systemów zarzadzania bazą danych
K_U29 Posiada umiejętność przygotowania typowych prac pisemnych dotyczących zagadnień informatycznych
K_U31 Zna co najmniej jeden język obcy na poziomie pozwalającym przetłumaczyć prosty tekst
KOMPETENCJE SPOŁECZNE (POSTAWY)
K_K01 Ma świadomość poziomu swojej wiedzy i umiejętności, rozumie potrzebę dokształcania się i podnoszenia kompetencji zawodowych i osobistych
K_K02 Potrafi odpowiednio określić priorytety w ramach realizowanego projektu informatycznego
K_K03 Potrafi wykazać się inicjatywą i efektywnością w trakcie realizowanego projektu
K_K04 Potrafi pracować indywidualnie i zespołowo, rozumie konieczność systematycznej pracy nad projektami o długofalowym charakterze
K_K05 Potrafi wykorzystać zdobytą wiedzę w pracy zawodowej z zachowaniem zasad prawnych i etycznych
K_K06 Rozumie społeczne aspekty stosowania zdobytej wiedzy oraz związaną z tym odpowiedzialność
K_K07 Potrafi komunikować się przy użyciu różnych technik w środowisku zawodowym

Metody dydaktyczne:
Praktyczne analiza tekstów z dyskusją. Dyskusja klasowa prowadzona przez nauczyciela. Studenci pracują indywidualnie iw grupach rozwiązujących problemy przypisane przez promotora
Treści programowe:
Tematyka dotyczy zagadnień związanych z komputerowym przetwarzaniem i analizą danych, zaawansowanych metod eksploracji danych, algorytmów.
Wykorzystanie dostępnego oprogramowania do przygotowania pracy licenziatskie
Opracowanie metod i narzędzi do rozwiązywania zaawansowanych zadań i podstawowych problemów badawczych oraz prac eksperymentalnych
Omówienie i korekta poszczególnych części projektu, dyskusja nad poprawnością zastosowanej metody .
Krytyczna analiza i interpretacja uzyskanych wyników, przygotowanie prac i prezentacji oraz wystąpień ustnych w języku polskim i obcym, prezentacja dostępnych źródeł informacji
Kryteria oceny i sposoby weryfikacji zakładanych efektów kształcenia:
Na zaliczenie I sem.
W - Dokonanie wstępnego wyboru literatury
W - Określenie celów pracy i środowiska programistycznego
U - Dokonanie wyboru literatury przedmiotu
U - Dokonanie wyboru dyscyplin potrzebnych do przygotowania części praktycznej pracy licenziatskie
U - Zaplanowanie kolejnych etapów pisania pracy licenziatskie
K - Zapoznanie się ze specjalistycznym słownictwem z zakresu tematyki pracy licenziatskie
K - Weryfikacja stanu wiedzy z zakresu tematyki pracy
K - Określenie priorytetów badawczych w pracy

Literatura podstawowa i uzupełniająca:
1. Pułło A., Prace magisterski i licencjackie: wskazówki dla studentów. Warszawa: Lexis Nexis, 2003.
2. Weiner J., Technika pisania i prezentowania przyrodniczych prac naukowych. Przewodnik praktyczny. Warszawa: PWN, 2008.

Literatura dobierana indywidualnie do zainteresowań naukowych studenta i potrzeb tematu pracy


Inżynieria oprogramowania - wykład

Cele przedmiotu:
C1-Podniesienie poziomu wiedzy studentów w zakresie inżynierii oprogramowania
C2-Przedstawienie i szczegółowe omówienie wszystkich aspektów tworzenia oprogramowania od początkowej fazy specyfikacji aż do jego pielęgnacji po dacie rozpoczęcia użytkowania
C3-Zapoznanie studentów i wyrobienie u nich umiejętności pracy zgodnie z metodykami strukturalną, obiektową i zwinną
Wymagania wstępne:
Znajomość programowania strukturalnego i obiektowego, język angielski
Efekty kształcenia:
W1 - Student wie, czym jest inżynieria oprogramowania, proces tworzenia oprogramowania, zarządzanie przedsięwzięciami (K_W04, K_W06, K_W08)
W2 - Student wie, jak powinny być stawiane wymagania oprogramowaniu, jak wygląda proces inżynierii wymagań, modelowanie systemu, prototypowanie oprogramowania, weryfikacja, testowanie i odbiór zatwierdzonego oprogramowania (K_W04, K_W06)
W3 - Student wie jakie są metody zarządzanie personelem, zarządzania jakością, szacowania oprogramowania, ulepszania oprogramowania K_W06, K_W08)
U1 - Student umie konstruować wymagania niefunkcjonalne i sporządzać specyfikację oprogramowania (K_U02, K_U04, K_U13, K_U14, K_U23)
U2 - Student potrafi używać diagramów opisu struktury i zachowań programu (K_U02, K_U04, K_U13, K_U14, K_U23)
U3 - Student potrafi w stopniu podstawowym korzystać z języka UML (K_U02, K_U04, K_U13, K_U14, K_U23)
U4 - Student potrafi opracować plan przedsięwzięcia dotyczącego budowy oprogramowania (K_U02, K_U04, K_U14, K_U23)
U5 - Student potrafi kontrolować i zarządzać wersjami tworzonego oprogramowania oraz stosować się do zasad obowiązujących programistów podczas pracy w zespole (K_U02, K_U04, K_U13, K_U14, K_U23, K_U29, K_U30)
K1 - Student jest otwarty na złożoność problemów, z którymi może spotkać się w życiu (K_K01, K_K06)
K2 - Student umiejętnie rozwiązuje problemy inżynierii oprogramowania stosując poznane metody oraz obiektywnie ocenia uzyskane wyniki (K_K01, K_K03)
K3 - Student potrafi pracować zarówno indywidualnie, jak i zespołowo, właściwie planując pracę swoją i zespołu w kontekście postawionego celu (K_K02, K_K04, K_K07)
Metody dydaktyczne:
Wykład informacyjny (konwencjonalny) z prezentacją multimedialną
Treści programowe:
Wykład:
1 Wprowadzenie 1
2 Procesy wytwarzania oprogramowania 2
3 Inżynieria wymagań 2
4 Metody strukturalne 3
5 Metody obiektowe i podstawy UML 5
6 Jakość kodu, inspekcje kodu 2
7 Testowanie 3
8 Dokumentacja użytkowa 1
9 Konserwacja 2
10 Systemy krytyczne 2
11 Metody formalne 1
12 Wzorce projektowe 4
13 Programowanie ekstremalne i Scrum 2
Kryteria oceny i sposoby weryfikacji zakładanych efektów kształcenia:
Student potrafi:
NA OCENĘ 3
W1-opisać najważniejsze procesy cyklu życia oprogramowania i omówić artefakty tych procesów w stopniu podstawowym
W2-opisać podstawowe elementy metodyk inżynierii oprogramowania oraz podstawowe wzorce projektowe
U1-pracować w każdej z faz cyklu życia oprogramowania, wykorzystując podstawowe notacje, pojęcia i diagramy, np. najprostsze wzorce projektowe i oprogramowanie
U2-posługiwać się podstawowymi diagramami strukturalnymi (diagram wymagań funkcjonalnych, diagram przepływu danych) i obiektowymi (diagram klas, diagram przypadków użycia), opisującymi strukturę kodu i zachowanie oprogramowania – z wykorzystaniem podstawowych kategorii składniowych wspomnianych diagramów, oraz wykorzystując w tym celu odpowiednie oprogramowanie
K1-pracować zgodnie z etyką obowiązującą inżynierów oprogramowania
K2-umiejętnie rozwiązywać podstawowe problemy, z którymi może spotkać się w życiu, stosując poznane metody inżynierii oprogramowania, obiektywnie oceniając uzyskane wyniki
K3-pracować efektywnie, sprawnie, zespołowo i indywidualnie, umiejętnie oceniając priorytety w pracy nad tworzonym oprogramowaniem
NA OCENĘ 4
W1-opisać procesy cyklu życia opr. i omówić ich artefakty
W2-opisać najważniejsze metodyki inżynierii opr. oraz wzorce projektowe
U1-pracować w każdej z faz cyklu życia opr.
U2-posługiwać się diagramami strukturalnymi i obiektowymi, opisującymi strukturę kodu i zachowanie oprogramowania, wykorzystując w tym celu odpowiednie oprogr.
K1-pracować zgodnie z etyką obowiązującą inż. opr., odnosząc wyniki swojej pracy do odpowiednich dobrych praktyk i standardów obowiązujących inżynierów opr.
K2-umiejętnie rozwiązywać problemy, z którymi może spotkać się w życiu, stosując poznane metody inżynierii oprogramowania, obiektywnie oceniając uzyskane wyniki
K3-pracować efektywnie, sprawnie, zespołowo i indywidualnie, umiejętnie oceniając priorytety w pracy nad tworzonym oprogramowaniem, w szczególności umiejętnie współpracując z kolegami z grupy
NA OCENĘ 5
W1-opisać procesy cyklu życia opr. i omówić ich zaawansowane artefakty, jak również metody wykorzystywane do ich wytworzenia
W2-opisać w stopniu zaawansowanym najważniejsze metodyki inżynierii opr., wzorce projektowe, krytycznie ocenić ich efektywność i potencjalne zastosowanie
U1-pracować w każdej z faz cyklu życia opr. stosując zaawansowane notacje, pojęcia, diagramy, zaawansowane wzorce projektowe, posługiwać się biegle biblioteką JUnit
U2-posługiwać się w stopniu zaawansowanym diagramami strukturalnymi i obiektowymi (np. diagramami czynności i stanów UML), opisującymi strukturę kodu i zachowanie oprogramowania, biegle wykorzystując w tym celu odpowiednie oprogr.
K1-pracować zgodnie z etyką obowiązującą inżynierów opr., odnosząc wyniki swojej pracy do odpowiednich dobrych praktyk i standardów obowiązujących inżynierów opr., dbać o możliwie najwyższą jakość wytwarzanych przez siebie artefaktów
K2-umiejętnie rozwiązywać złożone i zaawansowane problemy, z którymi może spotkać się w życiu, stosując poznane metody inżynierii opr., obiektywnie oceniając uzyskane wyniki, korzystając z nowoczesnych technik inf., potrafić zastosować poznane modele do zaawansowanych procesów, w szczególności gospodarczych
K3-pracować efektywnie, sprawnie, zespołowo i indywidualnie, umiejętnie oceniając priorytety w pracy nad tworzonym oprogramowaniem, korzystając z zaawansowanych narzędzi inf., szczególnie współpracując z kolegami

Egzamin: 35 pytań wielokrotnego wyboru (należy stwierdzić prawdę/fałsz dla 140 zdań, 1 punkt za jedno złożone z 4 zdań pytanie). Niech N=maksymalna liczba zdobytych punktów w grupie zdających. Wówczas: Ocena: 5: [N - (N - 10)*0.2; N], 4+: [N - (N - 10)*0.4; N - (N - 10)*0.2), 4: [N - (N - 10)*0.6; N - (N - 10)*0.4), 3+: [N - (N - 10)*0.8; N - (N - 10)*0.6), 3: [10; N - (N - 10)*0.8), 2: [0,10), +bonusy za oceny 5 z ćwiczeń, aktywne uczestnictwo + egzamin USTNY
Literatura podstawowa i uzupełniająca:
Literatura podstawowa
1. K. Sacha, Inżynieria oprogramowania, PWN, Warszawa 2010
2. A. Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice 1997
3. I. Sommerville, Inżynieria oprogramowania, WNT, Warszawa 2003
Literatura uzupełniająca
1. L. Miękina, Inżynieria oprogramowania, Wydawnictwo AGH, Kraków 2009
2. P. Stevens, UML. Inżynieria oprogramowania, Helion, Gliwice 2007
3. J. Myers, C. Sandler, T. Badgett, T. M. Thomas, Sztuka testowania oprogramowania, Helion, Gliwice 2005
4. R. C. Martin. Czysty kod. Podręcznik dobrego programisty, Helion, Gliwice 2010
5. Bruegge B., Dutoit A. H., Inżynieria oprogramowania w ujęciu obiektowym. UML, wzorce projektowe i Java, Helion, Gliwice 2011
6. http://wazniak.mimuw.edu.pl