Data Structures and Algorithms with JavaScript: Bringing classic computing approaches to the Web