The Elements of Computing Systems: Building a Modern Computer from First Principles by Noam Nisan and Shimon Schocken
Basically it has you hands on work through the basics of every concept active in a modern computer save for networks and web.
You use software tools provided with the book to design memory, ALUs, intepreters, VMs, compilers Operating Systems and applications.
Available as a free online class at http://www.nand2tetris.org