Tematy prac inżynierskich, Informatyka, 2014-2015 Prof. W. Bielecki 1. 1.Zastosowanie transformacji blokowania iteracji pętli programowej do zwiększenia lokalności kodu. Zakres: zapoznanie się z technikami blokowania iteracji pętli programowej; zapoznanie się z czynnikami mającymi wpływ na lokalność kodu; wybór techniki blokowania i jej implementacja/lub wykorzystanie gotowej implementacji(pluto, POCC, TRACO); badania eksperymentalne celem określenia stopnia zwiększenia lokalności za pomocą blokowania. 1. 2.Zastosowanie transformacji blokowania iteracji pętli programowej do znalezienia równoległości pozbawionej synchronizacji. Zakres: zapoznanie się z technikami blokowania iteracji pętli programowej zorientowanymi na zrównoleglenie; wybór techniki blokowania i jej implementacja/lub wykorzystanie gotowej implementacji(pluto, POCC, TRACO); badania eksperymentalne celem określenia przyspieszenia uzyskanego za pomocą blokowania. 1 / 9
1. 3.Praca zespołowa (dla 2-ch dyplomantów): Implementacja w kompilatorze TRACO blokowania iteracji pętli opartego na kształcie równoległoboku. Zakres: opracowanie modułu odpowiedniego za blokowanie opartego na kształcie równoległoboku; wbudowanie modułu do kompilatora TRACO; badania eksperymentalne polegające na porównaniu blokowania opartego na prostokącie i na równoległoboku. Dr inż. Mirosław Mościcki (S1/N1) 1. Sterowanie grami z wykorzystaniem naturalnego interfejsu użytkownika przy wykorzystaniu Microsoft Kinect Analiza możliwości sterowania grami z wykorzystaniem naturalnego interfejsu użytkownika realizowanego przy użyciu sensora Microsoft Kinect. W celu weryfikacji przydatności Microsoft Kinect do sterowania grami, należy zaprojektować i zrealizować grę umożliwiającą użytkownikowi sterowanie jej przebiegiem za pomocą sensora Kinect. Skuteczność i ergonomię rozwiązania należy zbadać poprzez porównanie z tradycyjnym sterowaniem opartym o klawiaturę, myszkę lub pada dla kilku wybranych gatunków gier. 2.Opracowanie systemu mobilnego trenera osobistego. 2 / 9
Celem pracy jest projekt i implementacja systemu obsługi treningów osobistych dla szerokiej gamy sportów. Opracowywany system powinien adaptować się do indywidualnego profilu użytkownika. Proponowane plany treningowe powinny uwzględniać zadany cel oraz charakterystykę użytkownika (wiek, wagę, kondycję, ilość wolnego czasu) 3.Opracowanie aplikacja mobilnej wspomagającej trening i start w zawodach biegacza długodystansowego Przegląd istniejących aplikacji mobilnych do wspierania treningu sportowców; opracowanie koncepcji rozwiązania; dobór platformy i języka programowania; przygotowanie aplikacji; przeprowadzenie testów; wdrożenie aplikacji Dr inż. Tomasz Hyla (S1/N1) 1. "Przechowywanie danych w chmurze zapewniające poufność". Projekt i implementacja usługi sieciowej www do przechowywania plików oraz aplikacji klienckiej, w której chmura nie ma możliwości dostępu do dokumentów szyfrowane są po stronie klienta. Przegląd dostępnych algorytmów kryptograficznych, bibliotek kryptograficznych oraz technologii, którą mogą być wykorzystane do zbudowania usługi. Przeprowadzenie testów 3 / 9
bezpieczeństwa i efektywności działania. 2."Szyfrowanie grupowe dokumentów z wykorzystaniem urządzeń mobilnych". Projekt i implementacja aplikacji na wybrane urządzenia mobilne umożliwiającej grupowe szyfrowania i deszyfrowanie dokumentów. Przegląd algorytmów szyfrowania grupowego zakończony wyborem jednego algorytmu posiadającego właściwości przydatne dla implementacji na urządzeniach mobilnych. Przeprowadzenie testów bezpieczeństwa oraz efektywności działania. 3."Protokoły uzgadniania klucza z wykorzystaniem odwzorowań dwuliniowych". Przegląd dostępnych protokołów uzgadniania kluczy za pomocą odwzorowań dwuliniowych oraz bibliotek umożliwiający ich implementacje. Projekt i implementacji aplikacji demonstrującej działanie jednego z wybranych protokołów. Przeprowadzenie testów efektywności działania. Dr inż. Marek Pałkowski S1 1. Programowanie kart graficznych z wykorzystaniem standardu OpenACC. 2. Programowanie równoległe za pomocą kompilatora Accull. N1 1. Blokowanie pętli programowych w programowaniu procesorów graficznych. 4 / 9
Dr Łukasz Radliński 1. 1.Zautomatyzowany parser i analizator danych bibliograficznych z baz publikacji Celem jest budowa narzędzia, które będzie pobierało dane bibliograficzne publikacji na podstawie zadanych kryteriów z różnych baz publikacji, unifikowało te dane oraz dokonywało wstępnej oceny stopnia zgodności wyników wyszukiwania z podanymi kryteriami. 1. 2. Zautomatyzowany parser i analizator historii wersji i ewolucji kodu źródłowego oprogramowania Celem jest budowa narzędzia, które będzie pobierało szczegółowe dane o historii wersji i ewolucji kodu źródłowego z wybranych systemów wersjonowania (Git, SVN, itp.) zgodnie z zadanymi kryteriami, obliczało wybrane miary dotyczące oprogramowania i jego ewolucji, przechowywało te dane w zunifikowanej strukturze oraz eksportowało te dane do popularnych formatów narzędzi analizy danych (csv, xls, r). 1. 3. Analiza porównawcza metod szacowania nakładów w projektach informatycznych Celem jest porównanie różnych metod szacowania nakładów, ze szczególnym uwzględnieniem metod obejmujących udział wiedzy eksperckiej oraz metod bazujących jedynie na danych empirycznych. Porównanie obejmuje wiele kryteriów, w szczególności dokładność szacunków, łatwość/koszt użycia, stopień automatyzacji, wydajność. Szczególny nacisk położony jest na oprogramowanie wykorzystujące nowoczesne technologie (mobilne, cloud-computing, itp.). 4. Analiza porównawcza metod szacowania i prognozowania jakości oprogramowania 5 / 9
Celem jest porównanie różnych metod szacowania i prognozowania jakości oprogramowania, ze szczególnym uwzględnieniem metod obejmujących udział wiedzy eksperckiej oraz metod bazujących jedynie na danych empirycznych. Porównanie obejmuje wiele kryteriów, w szczególności dokładność szacunków, łatwość/koszt użycia, stopień automatyzacji, wydajność. Szczególny nacisk położony jest na oprogramowanie wykorzystujące nowoczesne technologie (mobilne, cloud-computing, itp.). 5. Analiza porównawcza metod definiowania przypadków testowych oprogramowania Celem jest porównanie metod definiowania przypadków testowych oprogramowania, ze szczególnym uwzględnieniem metod generujących przypadki testowe w sposób zautomatyzowany na podstawie wymagań, modeli i innych produktów. Porównanie obejmuje wiele kryteriów, w szczególności różne aspekty jakości generowanego zestawu przypadków testowych (skuteczność, ilość, poprawność, łatwość konserwacji, spójność, adekwatność, itp.), a także łatwość/koszt użycia, stopień automatyzacji, wydajność. Szczególny nacisk położony jest na oprogramowanie wykorzystujące nowoczesne technologie (mobilne, cloud-computing, itp.). Dr inż. Jerzy Pejaś S1 1. Zrównoleglony algorytm Montogomerego mnożenia punktu na krzywej eliptycznej w środowisku CUDA. 2. Wykrywanie ataków typu maksarada w środowisku systemu operacyjnego Unix: na podstawie zarejestrowanych poleceń i innych zachowań użytkownika należy zaprojektować jego profil; profil ten powinien posłużyć do analizy różnych strategii ataków na użytkowników systemu. N1 1. Wzorce projektowe zaciemniające kod w języku Java: projektowanie i analiza technik zaciemniania wzorców projektowych, utrudniających ataki za pomocą inżynierii wstecznej 2. Monitorowanie aktywności studenta w trybie on-line: należy wykorzystać istniejący sniffer, np. Kismet do przechwytywania i klasyfikowania pakietów; jeśli student w trakcie zajęć odwiedza niedozwolone strony, to informacja o tym jest przesyłana do prowadzącego zajęcia za pomocą aplikacji działającej w środowisku Android lub poprzez internet. Dr inż. Piotr Błaszyński 6 / 9
S1 1.Opracowanie kompilatora z wykorzystaniem Microsft.NET Native do optymalizacji kodu wynikowego (temat do ewentualnej kontynuacji w ramach studiów II stopnia), 2.Generator kodu dla środowiska Matlab na podstawie schematów blokowych (narzędzie ma generować kod dla konkretnego zakresu opisywanych procesów), 3. Narzędzie do analizy kodu Matlab i generowania schematów blokowych (narzędzie ma mieć określony zakres i złożoność analizowanych i przetwarzanych kodów źródłowych). Dr inż. D. Burak (S1/N1) 1. Opracowanie tekstowego komunikatora internetowego z zastosowaniem schematu szyfrowania opartego na trójwymiarowym odwzorowaniu chaotycznym. 2. Opracowanie szyfratora plików graficznych opartego na systemie chaotycznym i sieci neurochaotycznej. 3. Opracowanie szyfratora plików graficznych opartego na kodowaniu DNA i odwzorowaniu chaotycznym. Dr inż. Tomasz Wierciński (S1/N1) 7 / 9
1. Opracowanie oprogramowania GIS z wykorzystaniem Spring Framework 2. Opracowanie aplikacji internetowej zabezpieczonej w technologii Spring Security 3. Porównanie frameworków Java i.net opartych o wzorzec Inversion of Control 4. Porównanie frameworków do tworzenia nowoczesnych aplikacji internetowych dla platform Java i.net 5. Porównanie frameworków do tworzenia usług sieciowych w języku Java 6. Porównanie frameworków do tworzenia gier sieciowych w języku JavaScript Dr inż. Tomasz Klimek (S1/N1) 1. Implementacja generatora kodu równoległego z wykorzystaniem biblioteki Intel Threading Building Blocks. 2. Opracowanie kompilatora zrównoleglającego typu source-to-source dokonującego ekstrakcji równoległości bez synchronizacji. Dr inż Witold Maćków S1/N1 1. Analiza porównawcza statycznych analizatorów kodu Java na podstawie zbioru przypadków testowych Juliet NIST. 2. Analiza porównawcza statycznych analizatorów kodu C/C++ na podstawie zbioru przypadków testowych Juliet NIST. 3. Analiza porównawcza bibliotek kryptograficznych dla języka Java Script z uwzględnieniem różnych środowisk uruchomieniowych. 4. Projekt i implementacja lekkiej biblioteki C# opartej o wywołania zwrotne umożliwiającej efektywne wytwarzanie i testowanie aplikacji korzystających z protokołu WebSocket. Dr inż. Agnieszka Konys (S1) Przegląd narzędzi ułatwiających ocenę poprawności tworzonej ontologii Zastosowanie ontologii jako modelu bazy wiedzy w rozwiązywaniu wybranych problemów dziedzinowych 8 / 9
9 / 9