The last three exercises in this column are all conceptual problems, rather than programming problems.
Before the days of low-cost overnight deliveries, a store allowed customers to order items over the telephone, which they picked up a few days later. The store’s database used the customer’s telephone number as the primary key for retrieval (customers know their phone numbers and the keys are close to unique). How would you organize the store’s database to allow for orders to be inserted and retrieved efficiently?
»Read More
I had my suspicions about Life of Pi, simply because I saw so many people reading it when it was first published. In my experience, a book that gets that much attention is usually pretty crummy.
What I didn’t realize is that it’s a Canadian book, so it probably didn’t get much exposure outside of the country. Thus, the actual readership was probably pretty limited, and so my rule of correlating popularity with disappointment has not necessarily been compromised 
»Read More
From the exercise:
One problem with trading more space to use less time is that initializing the space itself can take a great deal of time. Show how to circumvent this problem by designing a technique to initialize an entry of a vector the first time it is accessed. Your scheme should use constant time for initialization and for each vector access, and use extra space proportional to the size of the vector.
This one is obviously aimed at C-ish languages, since most other modern languages will automatically zero-out data structures upon construction whether you like it or not.
»Read More