data structures algorithms GUI