Študent:
Eduard Batmendijn
ebatmendijn@gmail.com
Vedúci:
doc. RNDr. Daniel Olejár PhD.
olejar@dcs.fmph.uniba.sk
Projekt:
Vizualizácia kódov a kódovacích algoritmov
Cieľom projektu je vytvorenie javovskej knižnice umožňujúcej jednoduchú vizualizáciu (nielen) kódovacích algoritmov a niekoľko týchto algoritmov vizualizovať. Táto knižnica a vizualizácie budú ďalej použité v tomto projekte.
Pri vizualizácii sa snažíme oddeliť kód algoritmu od kódu vizualizácie. Za týmto účelom používame nasledovný návrh:
Účastníci: Algoritmus, Vizualizátor, Továreň, Aplikácia
Algoritmus obsahuje implementáciu daného algoritmu a môže obsahovať pokyny (značky) pre Vizualizátor. Nerieši, ako sa bude vizualizovať.
Vizualizátor poskytuje Algoritmu abstraktnú Továreň na dátové štruktúry. Spracúva pokyny od Algoritmu a jeho priebeh vizualizuje na plátno, ktoré mu poskytne Aplikácia.
Aplikácia kontroluje, kedy sa Algoritmus spúšťa a poskytuje Vizualizátoru plátno, na ktoré môže kresliť jeho priebeh.
Továreň vytvára dátové štruktúry pre Algoritmus. Vytvorené dátové štruktúry vedia, ako sa majú vizualizovať a Vizualizátor na ne dostáva referencie. Vždy, keď dátová štruktúra mení svoj obsah, notifikuje o tom Vizualizátor, ktorý tým pádom vie, že ju má prekresliť.
Obsahom knižnice má byť definícia rozhraní Vizualizátora a Továrňe, implementácia jednoduchého vizualizátora a základná implementácia najpoužívanejších dátových štruktúr (aj s ich vizualizáciou). Tie majú používateľovi (programátorovi) umožniť:
ArrayList
Vizualizácia mergesortu (kód je tiež v gitovom repozitári).
Screenshot:
Kód algoritmu (zvýraznené časti kódu ovplyvňujú vizualizáciu, zvyšok je obyčajný mergesort):
Vizualizácia Hammingovho kódu (kód je tiež v gitovom repozitári).
Screenshot: