Introduction to Computing
The reason most people do not understand their first programming language is because they are forced to memorize technical details. They do not understand the basic underpinnings. This book is based on the premise that starting with a high-level programming language has its shortcomings. This premise lead to Patt/Patel's "bottom-up approach" found in Introduction in Computing.