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:

  • Główny pomysł:
    • Kompilować SWI-Prologa z wykorzystaniem starszej wersji GLIBC + statyczne linkowanie potrzebnych bibliotek + powyrzucać zbędne moduły z swi-prologa, żeby był lżejszy → w wyniku otrzymujemy programy 32bit i 64bit, które możemy udostępniać razem z naszymi narzędziami
  • Alternatywne pomysły na rozwiązanie problemu:
    • Przygotowanie jara zawierającego jakiś interpreter
    • Skorzystanie z PrologCafe i kompilacja w locie kodu prologa (który aktualnie generujemy) do kodu javy, a następnie na kodzie javy wykonywać działania naszych systemów (przykład) – problem: dużo zmian w kodzie i będzie to trudne, ale warto rozważyć
Technologie
  • PHP
  • Prolog
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
  • Do uzgodnienia.
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
  • Python
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
  • Python
Materiały
  • Tutoriale do tworzenia bibliotek w Pythonie

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

Celem projektu jest rozbudowa narzędzia do wizualizacji danych kontekstowych o stronę w formie “Dashboardu” umożliwiającego szybkie przeglądanie danych kontekstowych w odniesieniu do lokalizacji zaznaczonej na mapie. Analogicznie jak na: http://glados.kis.agh.edu.pl/doku.php?id=pub:software:contextviewer:start

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.

  • Technologia implementacji systemu - zalecany python, ale dowolna w ramach rozsądku.

Materiały

student/seasons_of_code/spring_of_code_2016/start.txt · Last modified: 2019/06/27 15:49 (external edit)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0