Learn abstract data structures and algorithm