Dinamikus Algoritmus Vizualizációs Keretrendszer (DAVIK)


Bevezető

A rendszer létrehozásának gondolata 2010-ben merült fel bennem, amikor másodéves hallgatóként Kőhegyi János Tanár Úr Algoritmusok és Adatszerkezetek II gyakorlatára jártam. Ez a csoport a szokványostól eltérő módon tanulta meg a magasabb szintű, gráfokkal, tömörítéssel, szövegfelismeréssel és hasító-függvényekkel foglalkozó algoritmusok működését. Ahelyett, hogy táblán mutatta volna meg az algoritmusok működését, a Tanár Úr arra kért minket, hogy készítsünk az algoritmusokhoz egy vizuális megjelenítést, amiből elsősorban mi magunk, de mások is tanulhatnak.

Hamar rájöttem, hogy az algoritmusok vizualizációja nagymértékben épít közös elemekre. Ahogy haladtunk előre a hasonló feladatokkal, egyre kevesebbet kellett dolgoznom, mert a munka nagyobb részt már kész volt. A félév végére elkészült egy gráfalgoritmusokat megjeleníteni képes rendszer.

Persze, ez a rendszer nem volt tökéletes. A kezelőfelület nem volt ergonomikus, mind az új algoritmusok, mind a bemeneti adatok beviteléhez kódot kellett írni, amit fel kellett tölteni a szerverre. Amikor egy új algoritmust helyeztem el a rendszerben, a vizuális felületet úgy kellett átalakítani, hogy annak a vizualizációjára is megfeleljen. Továbbá vizualizáció megjelenését nem lehetett befolyásolni, mindenkinek úgy kellett néznie az algoritmust, ahogy én gondolatban felépítettem.

Ekkor fogalmazódott meg bennem, hogy jó lenne egy olyan rendszer, amelyben nincsenek meg ezek a korlátozások, és nem csak gráf-, hanem tetszőleges algoritmus vizualizációjára alkalmas. Ahogy a szakirodalmat és a különböző kísérletek elemzését olvastam, arra jutottam, hogy ami még nem készült el, az egy olyan rendszer, mely nem csak a jól használható vizualizációt, hanem az algoritmusok gyors létrehozását is segíti.

Remélem, hogy ez a rendszer nem csak elméleti érdekességként, hanem hasznos tanítási segédeszközként is megállja a helyét.

Az algoritmusvizualizáció elméleti alapjaiból, tudományos eredményeiből és ezek szerepéből a jelen rendszer megalkotásában TDK-dolgozatot is készítettem, így a témát mind elméleti, mind gyakorlati oldalról tanulmányoztam.