The third edition of Introduction to Computing Systems: From bits & gates to C/C++ and beyond is designed to give students a strong foundation of computing early on in their coursework. The book is in two parts: (a) the underlying structure of a computer, and (b) programming in two high-level languages and programming methodology. Taking a bottom-up approach from foundational concepts, such as how a computer operates, to more high-level programming languages enables students to understand each concept while working through the text. This bottom-up approach can lead students to more conceptual understanding and application with less memorizing.
Loose Leaf for Introduction to Computing Systems: from Bits & Gates to C/C++ & Beyond