The study of data structures is core to the Computer Science curriculum, providing the techniques and tools necessary to construct efficient solutions to problems. This course builds on the concepts in algorithm design and fundamental programming techniques in order to comparatively measure algorithms’ performance including efficiency and optimality. As such, it is a study of the design, implementation, and use of collection classes including linked structures, lists, stacks, queues, graphs, and tree structures for problem resolution. It uses mathematical strategies to develop analysis tools needed to examine the operations of abstract data structures and the performances of algorithms.