Statystka i Sage
Projekt Statystyka i Sage jest jednym z naszych pierwszych projektów. Projekt ten ma na celu rozbudowę darmowego pakietu matematycznego Sage o możliwości statystyczne.
Pakiet Sage cechuje się bardzo modularną budową. Nowe elementy w pakiecie Sage mogą pojawić się dzięki jednej z dwóch dróg. Pierwszą z nich jest implementacja całej funkcjonalności od podstaw. Dzieje się tak często, gdy pakiet zawiera pewne metody jako pierwszy. Inną drogą jest droga integracji. Sage integruje w sobie ponad sto innych darmowych pakietów specjalistycznych. Integracja przebiega stopniowo. Oprócz samego włączenia pakietu, konieczne jest stworzenie warstwy komunikacji dodanego kodu z pozostałymi elementami pakietu. Statystyka w pakiecie Sage jest właśnie we wczesnej fazie takiej integracji, tzn. z Sagem zintegrowany został pakiet R oraz SciPy (zawierający moduł statystyczny). Istnieje też prosta implementacja szeregów czasowych w module finansowym oraz podstawowe statystyki opisowe w module statystycznym. Niestety, obecnie nikt nie prowadzi dalszego rozwoju pakietu w tym kierunku, co było inspiracją dla powstania tego projektu.
Projekt podzielony jest na cztery etapy. Opis ich wszystkich, wraz z zadaniami oraz wymaganiami stawianymi członkom zespołów podczas każdego etapu znajduje się poniżej. Aktualnie jesteśmy w trakcie realizacji pierwszego etapu projektu. Obecnie projekt realizowany jest jedynie przez członków naszego koła, jednak w dalszych etapach projektu nie wykluczamy współpracy z innymi kołami naukowymi.
- Etap projektowy
- Zadania
- Analiza istniejących implementacji metod statystycznych w pakietach matematycznych, takich jak Mathematica, Maple, Magma.
- Analiza istniejących implementacji metod statystycznych w pakietach statystycznych, takich jak Statistica, R, SAS, SPSS.
- Wyodrębnienie wymaganej funkcjonalności, stanowiącej rozsądną bazę dla przyszłego rozwoju pakietu, pozwalającej jednocześnie zrealizować statystyczne laboratoria do zajęć znajdujących się w programie studiów na kierunkach matematycznych i informatycznych.
- Zaprojektowanie interfejsu programistycznego dla wybranej funkcjonalności, gwarantującego szybki i łatwy dostęp do metod statystycznych.
- Zaprojektowanie interfejsu manipulacji danymi w obrębie pakietu Sage.
- Wymagania stawiane członkom zespołu na tym etapie
- Znajomość podstaw statystyki.
- Przynajmniej podstawowa znajomość jednego pakietu statystycznego bądź matematycznego.
- Mile widziana znajomość zasad projektowania ergonomii użytkowania.
- Zadania
- Etap algorytmiczny
- Zadania
- Analiza zaproponowanej na etapie projektowym funkcjonalności oraz ustalenie jakich metod należy użyć do implementacji.
- Udokumentowanie algorytmów.
- Wymagania stawiane członkom zespołu na tym etapie
- Znajomość technik projektowania algorytmów i metod numerycznych.
- Znajomość języka angielskiego pozwalająca na łatwe przeszukiwanie źródeł oraz pisanie dokumentacji.
- Mile widziana znajomość podstaw statystyki obliczeniowej.
- Zadania
- Etap implementacyjny
- Zadania
- Optymalna implementacja opisanych algorytmów.
- Wymagania stawiane członkom zespołu na tym etapie
- Dobra znajomość języków C oraz Python.
- Dostęp do komputera wyposażonego w system Linux, Solaris, FreeBSD lub MacOS X i umiejętność swobodnego poruszania się w nim.
- Mile widziane doświadczenie w pracy z rozproszonymi systemami kontroli wersji jak Mercurial oraz umiejętność posługiwania się protokołem SSH.
- Zadania
- Etap tworzenia interakcji
- Zadania
- Przygotowanie interfejsu manipulacji danymi.
- Przygotowanie demonstracji metod przy użyciu techniki „interact”.
- Wymagania stawiane członkom zespołu na tym etapie
- Dobra znajomość technologii internetowych takich jak HTML, CSS, JavaScript, AJAX oraz JQuerry.
- Podstawowa znajomość języka Python.
- Mile widziane doświadczenie w pracy z technologiami Twisted, Sphinx, Jinja oraz SQLAlchemy.
- Zadania