GEIST Spring of Code 2016
1 Statyczny interpreter Prologa na serwerze
prowadzący: K. Kutt
keywords: Prolog, PHP, kompilacja
Opis
Motywacja: Narzędzia rozwijane przez GEIST do swojego działania wymagają serwera z zainstalowanym interpreterem SWI-Prolog. Aktualnie przy różnych wirtualnych serwerach trudno o pełny dostęp i możliwość zainstalowania własnych pakietów, co uniemożliwia korzystanie z narzędzi GEISTowych.
Zadanie: Przygotowanie statycznej wersji interpretera Prologa, która mogłaby być udostępniana w formie oddzielnej biblioteki udostępnianej razem z naszymi narzędziami i działającej po kopiuj-wklej do odpowiedniego katalogu na serwerze.
W fazie testów należy sprawdzać czy wiki Loki współpracuje z przygotowywanym w ramach projektu interpreterem.
Możliwości:
Technologie
Materiały
2 Edytor diagramów decyzji DMN
prowadzący: K. Kluza
keywords: DMN
Opis
Opracowanie wizualnego webowego edytora modeli decyzji DMN.
Edytor może być oparty o istniejącą bibliotekę lub o napisany w ramach innego projektu edytor.
Technologie
Materiały
3 Biblioteka Pythona do obsługi modeli decyzji DMN
prowadzący: K. Kluza
keywords: DMN, Python
Opis
Opracowanie biblioteki Pythona do przetwarzania modeli decyzji DMN.
Projekt skupiający się na stworzeniu biblioteki (ew. znalezieniu podobnej i jej dostosowaniu), która umożliwi:
wczytanie pliku XML dla DMN do jakiejs wewnętrznej reprezentacji (grafowej/obiektowej?)
export z wewnetrznej reprezentacji do standaryzowanego XMLa
wyswietlaniu modeli w formie tekstowej i graficznej (uproszczonych diagramów, np. uproszczony graf przy użyciu graphviza)
API do edycji elementów modelu (usuwanie, dodawanie, modyfikowanie elementów)
Technologie
Materiały
4 Biblioteka Pythona do zarządzania regułami SBVR
prowadzący: K. Kluza
keywords: DMN, Python
Opis
Opracowanie biblioteki Pythona do zarządzania regułami SBVR.
Projekt skupiający się na stworzeniu biblioteki (ew. znalezieniu podobnej i jej dostosowaniu), która umożliwi:
wczytanie pliku XML dla SBVR do jakiejs wewnętrznej reprezentacji (grafowej/obiektowej?)
export z wewnętrznej reprezentacji do standaryzowanego XMLa
wyswietlaniu reguł w formie tekstowej (z kolorowaniem składni)
API do edycji reguł (usuwanie, dodawanie, modyfikowanie elementów)
Technologie
Materiały
WEKA/MOA dla Android
prowadzący: Szymon Bobek
keywords: android, java, machine learning
Opis
celem projektu jest stworzenie wersji WEKI/MOA (narzędzia Open Source do machine learningu), która działałby na Androidzie, oraz umożliwiałaby (przy pomocy skryptów) na “wyciąganie” poszczególnych algorytmów jako projektów standalone.
Technologie
Java
Android
Python/Bash/…
Materiały
Wizualizacja danych kontekstowych
prowadzący: Szymon Bobek
keywords: android, java script, html, css, MySQL
Opis
Technologie
Materiały
System automatycznego oceniania zadań programistycznych
prowadzący: Mateusz Ślażyński
Keywords: Tests
Opis
Celem projektu jest stworzenie systemu pozwalającego na automatyczne testowanie/ocenianie projektów wysyłanych przez studentów. Ma on przypominać rozwiązania dostarczane w ramach wielu kursów przez Courserę.
Po stronie studenta system powinien pozwalać:
autoryzować studenta (username/password)
zmianę hasła
przejrzeć listę aktualnych zadań oraz pobranie do nich instrukcji
odczytać informacje zwrotne na temat wysłanej implementacji
wysłać implementację będącą rozwiązaniem danego zadania
Po stronie dydaktyka system ma docelowo umożliwić:
autoryzację dydaktyków
dodawanie do systemu użytkowników (studentów/dydaktyków)
dodawać do systemu zadania wraz z instrukcjami i deadlinami
dopisywać do rozwiązań własny feedback (a'la code review)
przeglądać implementacje wysłane przez studentów
automatycznie uruchamiać testy programu w odizolowanej od reszty systemu przestrzeni i zbierać ich wyniki
integrację z wykrywaniem plagiatów przez
jplag
System powinien działać dla projektów w różnych językach programowania. Zakładamy jednak, że same testy są realizowane przez różne (zależnie od języka testowanego programu) frameworki, które mają ustandaryzowane wyjście. Dla uproszczenia możemy założyć, że dydaktyk musi sam napisać kod, który uruchamia testy, oraz musi podać ścieżkę do pliku, w którym znajdą się ich wyniki.
Technologia implementacji systemu - dowolna w ramach rozsądku.
Interfejs użytkownika - dowolny. W szczególności aplikacja klienta może być zwykłym narzędziem konsolowym. Narzędzia dydaktyka również mogą bazować na plikach tekstowych, aczkolwiek interfejs webowy byłby nie do pogardzenia.
Dostępne rozwiązania - można do projektu dopasować istniejące rozwiązanie open-source (aczkolwiek wtedy liczba osób w projekcie powinna być mniejsza niż 3). Zalecane jest zastosowanie istniejących narzędzi do izolacji testów w systemie.
Materiały
Kurs Reinforcement Learning na przykładzie gry konsolowej
prowadzący: Mateusz Ślażyński
Keywords: Deep Q-Learning, Reinforcement Learning
Opis
Celem projektu jest nauczenie sieci neuronowej gry w prostą grę arkadową (np. River Raid) korzystając z uczenia typu Q-Learning. Efektem prac poza działającym algorytmem ma być dokumentacja w postaci instrukcji, które mogłyby być zastosowane następnie na zajęciach laboratoryjnych.
Materiały