After learning the basics of programming, we learn algorithms and data structures. I have very fond memories of implementing many algorithms and data structures in ANSI C and Java in the late 1990s. There was something very pleasurable in implementing well-known and well-defined computational concepts and then playing with them. Specifically, data structures like: arrays linked lists hash tables graphs stacks queues trees and on And algorithms like: binary search bubble sort quick sort heap s...