Katedra Algorytmów i Modelowania Systemów

TEMATY PRAC INŻYNIERSKICH - 2020r.

 

1.

Rozbudowa serwisu Visual TreeCmp.

2.

Środowisko współpracy zdalnej wspierające programowanie w parach przy projektowaniu, implementacji i testowaniu algorytmów

3.

Graficzne środowisko współpracy zdalnej do projektowania algorytmów grafowych

4.

Algorytmy dokładne dla problemów bezpieczeństwa w gridach

5.

Projekt i implementacja aplikacji do gry w n-królowych mod 2

6.

Biblioteka realizująca obliczenia w wybranych ciałach liczbowych

7.

Program rozgrywający wybrane końcówki szachowe

8.

Złożoność obliczeniowa interpretera FOCS

9.

R(4,5)=25 – powtórzenie eksperymentu

10.

Inteligentny agent pozwalający na rozgrywkę dwuosobową  w grę ROJO.

11.

System do automatycznego sprawdzania kodów w językach Haskell i Prolog w postaci kontenera Docker.

12.

System dla wizualizacji i testowania algorytmów rozproszonych w grafach

13.

Implementacja biblioteki do tworzenia dynamicznych grafów obliczeniowych, automatycznego liczenia gradientu oraz optymalizacji równań wielu zmiennych.

14.

Rozproszony system testowania rozwiązań zadań.

15.

System do testowania i oceny algorytmów uczenia ze wzmocnieniem.

16.

Otwarte rozwiązanie do diagnostyki dużych systemów informatycznych.

17.

Modele rzeczywistych sieci złożonych

18.

Aplikacja wspomagająca przygotowanie arkuszy do egzaminów z przedmiotu "Podstawy programowania".

19.

System komputerowy dla wizualnej sztuki generatywnej

20.

Gra typu strzelanka z perspektywy pierwszej osoby

21.

Kwantowe języki programowania

22.

Wokselowy silnik umożliwiający proceduralne generowanie świata 3D.

 

 

1.

Temat pracy inżynierskiej

Rozbudowa serwisu Visual TreeCmp.

Tytuł w j. angielskim

Development of the Visual TreeCmp website.

Opiekun pracy

Prof. dr hab. inż. Krzysztof Giaro

Konsultant pracy

mgr inż. Tomasz Goluch

Cel pracy

Serwis pozwala na Visual TreeCmp dostepny jest pod adresem: https://eti.pg.edu.pl/treecmp/. Zaimplementowany jest w oparciu o platformę Spring. Pozwala na porównywanie i wizualizację drzew filogenetycznych wykorzystując bogaty zbiór metryk. Celem pracy jest rozszerzenie funkcjonalności o nowe wariant metryk, a także poprawa wydajności wyznaczania miar MAST i UMAST. Ponadto dla metryk matching’owych (MS, MC, MP) należy wizualizować skojarzenie dopasowanych kladów.

Zadania do wykonania

  1. Zapoznanie z budową serwisu Visual TreeCmp.
  2. Implementacja brakujących spośród metryk: Nodal, Nodal Splitted oraz Cophenetic w wersjach ważonych i bez wag, z normami L1 i L2, warianty Geodesic, Geodesic Unrooted bez wag.
  3. Poprawa wydajności metryk MAST i UMAST.
  4. Udostępnianie optymalnego dopasowania kladów w metryce MP.
  5. Implementacja wizualizacji skojarzenia kladów dla metryk MS, MC, MP.
  6. Testy poprawnościowe i wydajnościowe.
  7. Dokumentacja.

Źródła

  1. Visual TreeCmp: https://github.com/TreeCmp/TreeCmpWEB.
  2. Visual TreeCmp manual: https://github.com/TreeCmp/TreeCmpWEB/blob/master/VisualTreeCmp_manual.pdf.
  3. TreeCmp: https://github.com/TreeCmp/TreeCmp/blob/master/TreeCmp_manual.pdf.
  4. Cole, Richard & Farach-Colton, Martin & Hariharan, Ramesh & Przytycka, Teresa & Thorup, Mikkel. (1996). An O(n log n) Algorithm For The Maximum Agreement Subtree Problem For Binary Trees. SIAM Journal on Computing. 30. 10.1145/313852.314079.

Liczba wykonawców

2-3

Uwagi

 

 

2.

Temat pracy inżynierskiej

Środowisko współpracy zdalnej wspierające programowanie w parach przy projektowaniu, implementacji i testowaniu algorytmów

Tytuł w j. angielskim

Collaborative distance environment supporting remote pair programming in development, implementation and testing of algorithms

Opiekun pracy

dr hab. inż. Michał Małafiejski, prof. PG

Konsultant pracy

 

Cel pracy

Celem pracy jest adaptacja środowiska programistycznego wzbogaconego o mechanizmy współpracy zdalnej w celu przetestowania możliwości wspólnego w parach (ang. pair programming) opracowania biblioteki elementarnych algorytmów grafowych.

Zadania do wykonania

  1. Analiza możliwości wspólpracy zdalnej w czasie rzeczywistym przy projektowaniu i budowie kodu.
  2. Analiza możliwości wspópracy zdalnej w czasie rzeczywistym przy projektowaniu algorytmów (programy graficzne, whiteboards)
  3. Opracowanie koncepcji współpracy zdalnej w ramach programowania w parach.
  4. Opracowanie biblioteki elementarnych algorytmów grafowych w modelu współpracy programowanie w parach, uwzględniając etap projektowania, kodowania oraz testowania.
  5. Zebranie doświadczeń i porównanie z tradycyjnymi metodami wytwarzania oprogramowania.

Źródła

  1. The best code editors for remote pair programming https://buttercms.com/blog/the-best-code-editors-for-remote-pair-programming
  2. Remote Pair Programming: The Ultimate Guide

https://www.verypossible.com/blog/a-comprehensive-guide-to-remote-pair-programming

Liczba wykonawców

2-3

Uwagi

 

 

3.

Temat pracy inżynierskiej

Graficzne środowisko współpracy zdalnej do projektowania algorytmów grafowych

Tytuł w j. angielskim

Graphical tools for the remote collaborative design of algorithms

Opiekun pracy

dr hab. inż. Michał Małafiejski, prof. PG

Konsultant pracy

 

Cel pracy

Celem pracy jest opracowanie nowego lub adaptacja istniejącego środowiska graficznego o funkcje umożliwiające współpracę zdalną przy opracowywaniu algorytmów grafowych.

Zadania do wykonania

  1. Analiza webowych oraz desktopowych środowisk graficznych umożliwiających opracowywanie, analizę i wizualizację algorytmów (w formie tekstowo-graficznej).
  2. Analiza możliwości wytworzenia mechanizmów współpracy zdalnej  w ramach istniejących narzędzi graficznych (np. MyPaint).
  3. Opracowanie koncepcji i realizacja mechanizmów współpracy zdalnej przy opracowywaniu i weryfikowaniu algorytmów grafowych.
  4. Testy zaproponowanych rozwiązań na przykładzie opracowywania wybranych algorytmów grafowych.

Źródła

  1. Przykładowy web whiteboard: https://www.webwhiteboard.com/
  2. Thomas H. Cormen, Clifford Stein, Ronald L. Rivest, Charles E. Leiserson,
  3. Introduction to Algorithms, The MIT Press (3 rd Edition), (2009)

Liczba wykonawców

2-3

Uwagi

 

 

4.

Temat pracy inżynierskiej

Algorytmy dokładne dla problemów bezpieczeństwa w gridach

Temat w jęz. angielskim

Exact algorithms for security problems in grids

Opiekun pracy

dr hab. inż. Michał Małafiejski, prof. PG

Konsultant pracy

mgr inż. Kacper Wereszko

Cel pracy

Celem pracy jest komputerowe zweryfikowanie parametrów wybranych grafowych dla problemów bezpieczeństwa: koalicji wierzchołkowych i krawędziowych, zbiorów defensywnych oraz bezpiecznych, dla grafów, które są iloczynami kartezjańskimi ścieżek i cykli (Pn x Pm, Pn x Cm, Cn x Cm).

Zadania do wykonania

  1. Zapoznanie się z literaturą.
    Implementacja algorytmów (zalecane zrównoleglenie na klastrze obliczeniowym) wyczerpującego przeglądu (branch-and-bound, algorytmy programowania dynamicznego).
  2. Testy algorytmów dla krat (grids) z ograniczoną liczbą wierzchołków w jednym z wymiarów.
  3. Stworzenie katalogu wzorców rozwiązań oraz wypracowanie stosownych hipotez teoretycznych.
  4. Próba udowodnienia wybranych hipotez (we współpracy z promotorem i konsultantem).

Źródła

  1. R.Lewoń, A.Małafiejska, M.Małafiejski, Global defensive sets in graphs, Discrete Mathematics 339 (2016), 1861–1870
  2. R.Lewoń, A.Małafiejska, M.Małafiejski, K.Wereszko, Global edge alliances, Discrete Applied Mathematics

Liczba wykonawców

1-2

Uwagi

Temat o potencjalnym charakterze badawczym.

 

5.

Temat pracy inżynierskiej

Projekt i implementacja aplikacji do gry w n-królowych mod 2

Tytuł w j. angielskim

Project and implementation of mod 2 n-queen game

Opiekun pracy

dr inż. Joanna Raczek

Konsultant pracy

 

Cel pracy

Stworzenie aplikacji grającej w grę w n-królowych mod 2

Zadania do wykonania

  1. Opis zasad gry.
  2. Analiza strategii.
  3. Implementacja GUI umożliwiającego grę dwóm osobom.
  4. Implementacja gracza komputerowego.

Źródła

  1. Tricia Muldoon Brown, Abrahim Ladha, Exploring mod 2 n-queens games, Recreational Mathematics Magazine https://content.sciendo.com/configurable/contentpage/journals$002frmm$002f6$002f11$002farticle-p15.xml
  2. Bell, J., Stevens, B. A survey of known results and research areas for n-queens, Discrete Math., 309, 1--31, 2009.

Liczba wykonawców

2-3

Uwagi

 

 

6.

Temat pracy inżynierskiej

Biblioteka realizująca obliczenia w wybranych ciałach liczbowych

Tytuł w j. angielskim

A library that performs calculations in selected number fields

Opiekun pracy

dr hab. inż. Robert Janczewski

Konsultant pracy

 

Cel pracy

Implementacja struktury danych umożliwiającej przechowywanie i wykonywanie obliczeń na elementach wybranych ciał liczbowych.

Zadania do wykonania

  1. Zapoznanie się z budową ciał liczbowych i algorytmami realizującymi podstawowe operacje arytmetyczne.
  2. Implementacja struktury danych, która umożliwia przechowywanie i wykonywanie obliczeń na elementach wybranych ciał liczbowych.

Źródła

  1. R. Lidl, H. Niederreiter: Finite Fields. Cambridge University Press, 1997.
  2. https://en.wikipedia.org/wiki/Field_extension

Liczba wykonawców

2-4

Uwagi

 

 

7.

Temat pracy inżynierskiej

Program rozgrywający wybrane końcówki szachowe

Tytuł w j. angielskim

A program that plays selected chess endgames

Opiekun pracy

dr hab. inż. Robert Janczewski

Konsultant pracy

 

Cel pracy

Implementacja programu rozgrywającego wybrane końcówki szachowe przy pomocy wybranych technik sztucznej inteligencji (m.in. sieci neuronowych).

Zadania do wykonania

  1. Zapoznanie się z technikami programowania szachów.
  2. Implementacja programu, który rozgrywa wybrane końcówki szachowe przy pomocy sztucznej sieci neuronowej.

Źródła

  1. Żurada J., Barski M., Jędruch W.: Sztuczne sieci neuronowe: podstawy teorii i zastosowania. PWN 1996.
  2. https://en.wikipedia.org/wiki/Chess_endgame

Liczba wykonawców

2-4

Uwagi

 

 

8.

Temat pracy inżynierskiej

Złożoność obliczeniowa interpretera FOCS

Tytuł w j. angielskim

Computational complexity of the FOCS interpreter

Opiekun pracy

mgr inż. Andrzej Jastrzębski

Konsultant pracy

 

Cel pracy

Gra FreeOrion ma własny język skryptów (FOCS), który umożliwia sterowanie rozgrywką. Celem pracy jest opisanie FOCS – FreeOrion Content Script, wyznaczenie złożoności obliczeniowej i pamięciowej interpretera dla wybranych skryptów oraz propozycja ulepszenia algorytmów użytych w wyżej wymienionym oprogramowaniu.

Zadania do wykonania

  1. Opisanie FOCS,
  2. Wyznaczenie złożoności obliczeniowej interpretera,
  3. Implementacja własnego interpretera,
  4. Testy wydajności

Źródła

  1. freeorion.org
  2. Łagodne wprowadzenie do analizy algorytmów. / M.Kubale
  3. Standard C++ ISO/IEC 14882:2011

Liczba wykonawców

2

Uwagi

 

 

9.

Temat pracy inżynierskiej

R(4,5)=25 – powtórzenie eksperymentu

Tytuł w j. angielskim

R(4,5)=25 – repetition of the experiment

Opiekun pracy

mgr inż. Andrzej Jastrzębski

Konsultant pracy

 

Cel pracy

Celem pracy jest odtworzenie obliczeń McKaya i Radziszowskiego z artykułu "R(4,5)=25".

Zadania do wykonania

  1. Opisanie generowania grafów
  2. Opisanie sklejania grafów
  3. Stworzenie algorytmu
  4. Wygenerowanie grafów
  5. Sprawdzenie zgodności wyników z artykułami

Źródła

  1. http://users.cecs.anu.edu.au/~bdm/nauty/
  2. Algebra stosowana dla matematyków i informatyków : grupy, grafy, kombinatoryka / M. Ch. Klin, R. Pöschel, K. Rosenbaum
  3. McKay, Radziszowski: R(4,5)=25, J. Graph Theory 19 (1995) 309-322
  4. Angeltveit, McKay: R(5,5)≤48, arXiv:1703.08768

Liczba wykonawców

3

Uwagi

 

 

10.

Temat pracy inżynierskiej

Inteligentny agent pozwalający na rozgrywkę dwuosobową  w grę ROJO.

Tytuł w j. angielskim

An intelligent agent to play two-player ROJO game.

Opiekun pracy

mgr inż. Tomasz Goluch

Konsultant pracy

mgr inż. Tomasz Goluch

Cel pracy

ROJO to popularna (szczególnie znana pod inną nazwą) abstrakcyjna gra logiczna. Celem pracy będzie implementacja agenta pozwalający na rozgrywkę dwuosobową z człowiekiem lub innym programem/agentem. Pierwsze fazy gry w których nie jest możliwe zakończenie gry mogą być oparte o algorytmy głębokiego uczenia maszynowego albo przeszukiwania drzewa gry. Podczas późniejszych faz gdy którykolwiek z graczy może zakończyć rozgrywkę, realizowane będzie pełne przeszukanie za pomocą algorytmu wyszukującego optymalną strategię. Przykładowy program grający w ROJO dostępny jest pod adresem: http://boardwebgames.com/rojo/.

Zadania do wykonania

  1. Zapoznanie z zasadami gry.
  2. Wybór technologii w której będzie reprezentowany agent.
  3. Implementacja agenta.
  4. Testy poprawnościowe i wydajnościowe.
  5. Dokumentacja.
  6. Testy poziomu gry agenta w innymi programami/agentami oraz ludźmi.

Źródła

  1. Song, Zhang & Iida, Hiroyuki & Herik, H. (2017). Deep df-pn and its Efficient Implementations. 10.1007/978-3-319-71649-7_7.
  2. C. Lin, J. Chen and S. Yen, "Deep Learning Competition Framework on Othello for Education," in IEEE Transactions on Games, vol. 11, no. 3, pp. 300-304, Sept. 2019.
  3. ROJO na www.boardwebgames.com: http://boardwebgames.com/rojo/

Liczba wykonawców

2-3

Uwagi

 

 

11.

Temat pracy inżynierskiej

System do automatycznego sprawdzania kodów w językach Haskell i Prolog w postaci kontenera Docker.

Tytuł w j. angielskim

System for an automatically checking Haskell and Prolog codes as a Docker container.

Opiekun pracy

mgr inż. Tomasz Goluch

Konsultant pracy

mgr inż. Tomasz Goluch

Cel pracy

System pozwala na automatyczną weryfikację kodu w języku Haskell bądź Prolog rozwiązującego określone zadanie. Powinien pozwalać na wczytanie kodu, kompilację i uruchomienie wraz z podstawieniem na standardowe wejście zestaw przypadków testowych zdefiniowanych dla danego zadania. W zależności od oceny danych zwróconych przez program powinien wystawić ocenę oraz informację o ewentualnych błędach/różnicach od oczekiwanych wartości. System powinien być uruchamiany w formie kontenera Docker.

Zadania do wykonania

  1. Zapoznanie z istniejącymi serwisami do automatycznej kompilacji i weryfikacji zadań.
  2. Zapoznanie z konteneryzacją przy pomocy platformy Docker.
  3. Implementacja systemu.
  4. Testy poprawnościowe.
  5. Dokumentacja i podręcznik użytkownika.

Źródła

  1. Docker Documentation: https://docs.docker.com
  2. SWI-Prolog: https://www.swi-prolog.org
  3. Haskell, An advanced, purely functional programming language: https://www.haskell.org
  4. Sphere Online Judge (SPOJ): https://www.spoj.com/

Liczba wykonawców

2-3

Uwagi

 

 

12.

Temat pracy inżynierskiej

System dla wizualizacji i testowania algorytmów rozproszonych w grafach

Tytuł w j. angielskim

System for visualization and testing of distributed algorithms in graphs

 

Opiekun pracy

mgr inż. Robert Ostrowski

Konsultant pracy

 

Cel pracy

Celem pracy jest stworzenie narzędzia pozwalającego na wizualizację i testowanie algorytmów rozproszonych w grafach. Narzędzie to powinno umożliwiać stworzenie środowiska w oparciu o graf, zdefiniowanie jego parametrów i udostępnienie możliwości interakcji z nim poprzez zdefiniowane API. Algorytmy do testowania mogą być dostarczane przez użytkownika  w formie czarnej skrzynki.

Zadania do wykonania

  1. Zapoznanie się z tematyką (modele środowisk w algorytmach rozproszonych)
  2. Implementacja programu umożliwiającego stworzenie środowiska i działanie na nim
  3. Implementacja prostego przykładowego algorytmu do demonstracji działania systemu
  4. Przygotowanie dokumentacji

Źródła

  1. Hagit Attiya, Jennifer Welch ,,Distributed Computing: Fundamentals, Simulations, and Advanced Topics''
  2. Potop-Butucaru, M., Raynal, M., & Tixeuil, S. (2011, September). Distributed computing with mobile robots: an introductory survey. In 2011 14th International Conference on Network-Based Information Systems (pp. 318-324). IEEE.

Liczba wykonawców

2-4

Uwagi

 

 

13.

Temat pracy inżynierskiej

Implementacja biblioteki do tworzenia dynamicznych grafów obliczeniowych, automatycznego liczenia gradientu oraz optymalizacji równań wielu zmiennych.

Tytuł w j. angielskim

Implementation of a library for creating dynamic computational graphs, automatic differentiation and optimization of equations of many variables.

Opiekun pracy

dr inż. Krzysztof Manuszewski

Konsultant pracy

 

Cel pracy

Zrozumienie zasad działania oraz implementacji dynamicznych grafów obliczeniowych oraz mechanizmu automatycznego liczenia gradientu. Poznanie korzyści grafów dynamicznych w stosunku do statycznych.

Zadania do wykonania

Zaimplementowanie w języku C++ biblioteki do tworzenia dynamicznych grafów obliczeniowych, automatycznego liczenia gradientu i optymalizacji równań. Porównanie grafów dynamicznych ze statycznymi oraz zalet i wad obu rozwiązań na przykładzie biblioteki PyTorch i TensorFlow. Porównanie własnej implementacji z biblioteką PyTorch.

Źródła

  1. https://papers.nips.cc/paper/9015-pytorch-an-imperative-style-http://www.cs.columbia.edu/~mcollins/ff2.pdf
  2. high-performance-deep-learning-library.pdf
  3. https://openreview.net/pdf?id=BJJsrmfCZ
  4. https://pytorch.org/docs/stable/index.html
  5. https://github.com/pytorch/pytorch
  6. https://www.tensorflow.org/api_docs

Liczba wykonawców

2-4

Uwagi

 

 

14.

Temat pracy inżynierskiej

Rozproszony system testowania rozwiązań zadań.

Tytuł w j. angielskim

Distributed Online Judging System

Opiekun pracy

dr inż. Krzysztof Manuszewski

Konsultant pracy

 

Cel pracy

zaprojektowanie i zaimplementowanie rozproszonego systemu pozwalającego na automatyczne i sprawiedliwe testowanie jednocześnie wielu rozwiązań zadań algorytmicznych. System składa się z serwera udostępniającego aplikację internetową i agentów odpowiedzialnych za wykonywanie programów.

Zadania do wykonania

  1. Analiza problemu i specyfikacja wymagań
  2. Analiza dostępnych technologii izolacji procesów i rozmieszczania zadań.
  3. Wybór technologii i projekt architektury systemu
  4. Implementacja i testowanie systemu
  5. Opracowanie dokumentacji projektu

Źródła

  1. https://12factor.net/
  2. Dokumentacja techniczna Dockera
  3. Dokumentacja techniczna Kubernetesa
  4. Dokumentacja techniczna QEMU
  5. Dokumentacja techniczna libvirt

Liczba wykonawców

2-4

Uwagi

 

 

15.

Temat pracy inżynierskiej

System do testowania i oceny algorytmów uczenia ze wzmocnieniem.

Tytuł w j. angielskim

Judging Reinforced Learning Algorithms System

Opiekun pracy

dr inż. Krzysztof Manuszewski

Konsultant pracy

 

Cel pracy

Zaprojektowanie i zaimplementowanie systemu pozwalającego na definiowanie kontestów (jak np Kaggle) pozwalających na ocenę algorytmów uczenia ze wzmocnieniem. W odróżnieniu od systemu Kaggle ten rodzaj problemu wymaga dla oceny rozwiązania przeprowadzenia symulacji (np gry) a nie analizy danych statycznych. System będący przedmiotem niniejszej pracy musiałby hostować środowisko symulacyjne (zakładamy wykorzystanie gotowych rozwiązań kompatybilnych z openai gym) i powinien dostarczać webowego gui do zarządzania kontestami/wynikami oraz obejmować (pot rozproszone) środowisko wykonawcze.

Zadania do wykonania

  1. Analiza problemu i specyfikacja wymagań
  2. Analiza dostępnych technologii izolacji procesów i rozmieszczania zadań.
  3. Wybór technologii i projekt architektury systemu
  4. Implementacja i testowanie systemu
  5. Opracowanie dokumentacji projektu

Źródła

  1. https://gym.openai.com/
  2. Dokumentacja techniczna Dockera
  3. Dokumentacja techniczna Kubernetesa

Liczba wykonawców

2-4

Uwagi

 

 

16.

Temat pracy inżynierskiej

Otwarte rozwiązanie do diagnostyki dużych systemów informatycznych.

Tytuł w j. angielskim

Open solution for purpose of monitoring large IT systems.

Opiekun pracy

dr inż. Krzysztof Manuszewski

Konsultant pracy

dr inż. Krzysztof Manuszewski

Cel pracy

Celem pracy jest stworzenie otwarto-źródłowego rozwiązania pozwalającego na analizę i obsługę  błędów w dużych systemach tak monolitycznych jak rozproszonych. Istnieje wiele rozwiązań otwartych i komercyjnych adresujących podobną klasę problemów nie oferują one jednak wielu funkcjonalności. Założeniem pracy jest skorzystanie z istniejących narzędzi i doświadczeń dla budowy systemu, który będzie w stanie

- zbierać i korelować (na podstawie ID, czasu, reguł AI) błędy z różnych punktów w systemie z charakterystykami systemu.

- maskować znane błędy (znów definiowane w pot. zaawansowany sposób) w celu znalezienia kolejnych błędów, wyjaśnienia przyczyn znanych błędów 

- dokonywać analizy tych błędów i podejmować zdefiniowane regułami działania (mail, akcja itd.)

- obsługiwać duże ilości zgłoszeń np. dziesiątki lub setki tysięcy miesięcznie)

- stanowić podstawę dla eksperymentów z AI do analizy i obsługi błędów.

Zadania do wykonania

  1. Zebranie wymagań, analiza istniejących rozwiązań
  2. Implementacja pierwszego modelu systemu
  3. Dostosowanie sytemu do nowoczesnych rozwiązań opartych o kontenery/chmurę
  4. Implementacja funkcjonalności w założonych obszarach
  5. Eksperymenty z AI

Źródła

  1. Dokumentacja techniczna ASP .NET Core
  2. Dokumentacja rozwiązań takich jak Elmah, ELK, Prometeus
  3. Monitoring distributed systems with Riemann https://is.muni.cz/th/fia5e/fi-pdflatex.pdf
  4. „Porównanie narzędzi do monitorowania aplikacji rozproszonych w kontekście rozwiązań biznesowych opartych na koncepcji mikro serwisów”, praca mgr Błażej Galiński, 2016

Liczba wykonawców

2-4

Uwagi

Przy tworzeniu rozwiązania możliwa będzie współpraca np. w zakresie wymagań z inżynierami firmy IHSMARKIT

 

17.

Temat pracy inżynierskiej

Modele rzeczywistych sieci złożonych

Tytuł w j. angielskim

Models of real complex networks

Opiekun pracy

Marcin Jurkiewicz

Konsultant pracy

 

Cel pracy

  1. Napisanie przeglądu zawierającego sposoby modelowania wielkich rozszerzających się sieci złożonych (modele wskazane przez opiekuna).
  2. Zaimplementowanie i zrozumienie działania wspomnianych modeli.

Zadania do wykonania

  1. Implementacja oraz przetestowanie niektórych modeli rzeczywistych sieci złożonych w językach C/C++ i Python.
  2. Implementacja oraz przetestowanie niektórych parametrów rzeczywistych sieci złożonych w językach C/C++ i Python.
  3. Opis zachowania oraz porównanie kluczowych parametrów powiększających się sieci złożonych

Źródła

Newman, Mark. Networks. Oxford university press, 2018.

Dehmer, Matthias, ed. Structural analysis of complex networks. Springer Science & Business Media, 2010.

Barabási, Albert-László, Erzsébet Ravasz, and Tamas Vicsek. "Deterministic scale-free networks." Physica A: Statistical Mechanics and its Applications 299.3-4 (2001): 559-564.

Jiang, Wenchao, et al. "An Efficient Method of Generating Deterministic Small-World and Scale-Free Graphs for Simulating Real-World Networks." IEEE Access 6 (2018): 59833-59842.

Comellas, Francesc, and Michael Sampels. "Deterministic small-world networks." Physica A: Statistical Mechanics and its Applications 309.1-2 (2002): 231-235.

Lu, Zhe-Ming, Yu-Xin Su, and Shi-Ze Guo. "Deterministic scale-free small-world networks of arbitrary order." Physica A: Statistical Mechanics and its Applications 392.17 (2013): 3555-3562.

Liczba wykonawców

2

Uwagi

Wymagana znajomość rzeczywistych sieci złożonych

 

18.

Temat pracy inżynierskiej

Aplikacja wspomagająca przygotowanie arkuszy do egzaminów z przedmiotu "Podstawy programowania".

Tytuł w j. angielskim

Application to support exam sheet preparation for "Programming basics" class.

Opiekun pracy

dr hab. inż. Piotr Borowiecki

Konsultant pracy

 

Cel pracy

Celem pracy jest zaprojektowanie i zaimplementowanie systemu umożliwiającego zarządzanie zestawami pytań egzaminacyjnych. Wybrane funkcjonalności to: generowanie arkuszy egzaminacyjnych uwzględniających różne typy zadań (otwarte, testy wielokrotnego wyboru, itp ), generowanie arkuszy z odpowiedziami do testów, powiązanie zadań z zewnętrznymi danymi (np. kody źródłowe programów),  interfejs webowy umożliwiający studentom rejestrację na egzamin.

Zadania do wykonania

  1. Zapoznanie się ze specyfiką problemu.
  2. Wykonanie projektu oraz wybór technologii.
  3. Implementacja i testowanie systemu.

Źródła

  1. Philip Hirschhorn, Using LaTeX exam document class
  2. Inne -- dostępne u opiekuna pracy

Liczba wykonawców

2

Uwagi

 

 

19.

Temat pracy inżynierskiej

System komputerowy dla wizualnej sztuki generatywnej

Tytuł w j. angielskim

A computer system for generative visual art

Opiekun pracy

dr hab. inż. Piotr Borowiecki

Konsultant pracy

 

Cel pracy

Sztuka generatywna to sztuka, która w całości lub w części została stworzona za pomocą autonomicznego systemu, który niezależnie od człowieka może określać cechy dzieła, które w innym przypadku wymagałyby decyzji podejmowanych bezpośrednio przez artystę. W niektórych przypadkach ludzki twórca może wpływać na działanie systemu i w konsekwencji twierdzić, że system generatywny reprezentuje jego własną ideę artystyczną. W innych przypadkach system przyjmuje rolę twórcy. Celem pracy jest zaprojektowanie i zaimplementowanie systemu generatywnego dla wybranego obszaru sztuk wizualnych.

Zadania do wykonania

  1. Zapoznanie się ze specyfiką problemu.
  2. Wykonanie projektu oraz wybór technologii.
  3. Implementacja i testowanie systemu.

Źródła

  1. https://en.wikipedia.org/wiki/Generative_art
  2. Marcin Składanek, Sztuka generatywna. Metoda i praktyki, Wydawnictwo Uniwersytetu Łódzkiego, 2017.

Liczba wykonawców

2

Uwagi

 

 

20.

Temat pracy inżynierskiej

Gra typu strzelanka z perspektywy pierwszej osoby

Tytuł w j. angielskim

First Person Perspective Shooter game

Opiekun pracy

dr inż. Piotr Mironowicz

Konsultant pracy

 

Cel pracy

Celem pracy jest implementacja gry typu FPS (First Person Shooter) za pomocą wybranej technologii (np. Unity 3D). Gra powinna zawierać podstawową funkcjonalność charakterystyczną dla produkcji tego gatunku.

Zadania do wykonania

  1. Przegląd zagadnień związanych z tworzenie gier typu FPS oraz historii gatunku.
  2. Zapoznanie się z wybranym silnikiem do tworzenia gier 3D.
  3. Przedstawienie GDD (game design document).
  4. Implementacja przykładowej gry.

Źródła

  1. https://unity.com/fps-sample
  2. Hossain, Md, and Most Mehbuba. "Design and Development of a First Person Shooter Game-Man from W71." (2018)
  3. https://gamedevacademy.org/unity-fps-shooting-tutorial/
  4. ZHANG, Ying-fang, Chen-lin WANG, and Da-wei ZHU. "FPS Game Design and Implementation Based on Unity3D." DEStech Transactions on Engineering and Technology Research imeia (2016), http://dpi-proceedings.com/index.php/dtetr/article/view/9352

Liczba wykonawców

2-4

Uwagi

 

 

21.

Temat pracy inżynierskiej

Kwantowe języki programowania

Tytuł w j. angielskim

Quantum programming languages

Opiekun pracy

dr inż. Piotr Mironowicz

Konsultant pracy

 

Cel pracy

Celem pracy jest zapoznanie się kwantowym paradygmatem programowania oraz przedstawienie własnych implementacji wybranych podstawowych algorytmów kwantowych lub protokołów kwantowych (przykładowo: Shora, Grovera, Bernstein–Vazirani, Deutsch-Jozsa, kwantowa kryptografia, lub inne) za pomocą wybranego języka programowania kwantowego (np. Q# lub IBM Q).

Zadania do wykonania

  1. Przedstawienie podstaw formalizmu informatyki kwantowej.
  2. Zapoznanie się z wybranym kwantowym językiem programowania.
  3. Ilustracja wybranych koncepcji za pomocą własnych implementacji i uruchomienie ich na emulatorze lub prawdziwym komputerze dostępnym zdalnie.

Źródła

  1. Peter W. Shor, Introduction to Quantum Algorithms, https://arxiv.org/abs/quant-ph/0005003
  2. https://docs.microsoft.com/en-us/quantum
  3. https://www.research.ibm.com/ibm-q/
  4. http://www.quantumplayground.net
  5. https://www.c-sharpcorner.com/article/getting-started-with-q-programming/

Liczba wykonawców

2

Uwagi

Wymagana dobra znajomość angielskiego i algebry liniowej.

22.

Temat pracy inżynierskiej

Wokselowy silnik umożliwiający proceduralne generowanie świata 3D.

Tytuł w j. angielskim

Voxel engine for procedural creation of a 3D world.

Opiekun pracy

dr inż. Piotr Andrzej Mironowicz

Konsultant pracy

 

Cel pracy

Celem pracy jest stworzenie funkcjonalnego silnika 3D opartego o woksele, którego główną funkcjonalnością, poza renderowaniem, będzie proceduralna generacja świata z rozróżnialnymi strefami (biomami). Silnik powinien oferować: wygenerowanie nowego świata, podstawowy graficzny interfejs użytkownika,  dynamiczną zmianę wirtualnego otoczenia poprzez usuwanie i dodawanie nowych bloków (wokseli). Technologią wykorzystywaną do renderowania grafiki będzie Vulkan API.

Zadania do wykonania

  1. Zbadanie problematyki i możliwości jakie daje wykorzystanie wokseli w renderowaniu i generowaniu światów 3D.
  2. Przegląd dostępnych możliwości i sposobów generowania proceduralnych światów.
  3. Implementacja silnika i jego najważniejszych elementów.

Źródła

  1. Jason Gregory: Game Engine Architecture -  A K Peters/CRC Press; 3 edition (August 17, 2018)
  2. Vulkan® 1.2.131 - A Specification (with KHR extensions)
  3. Tomas Akenine-Möller, Eric Haines, Naty Hoffman: Real-Time Rendering - A K Peters/CRC Press; 4 edition (August 6, 2018)
  4. http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

Liczba wykonawców

2