CSCI 382: Algorithms and Data Structures