A Common-Sense Guide to Data Structures and Algorithms