The book provides a bottom-up approach to understanding how a computer
works and how to use computing to solve real-world problems. It covers
the basics of digital logic through the lens of computer organization
and programming. The reader should be able to design his or her own
computer from the ground up at the end of the book. Logic simulation
with Verilog is used throughout, assembly languages are introduced and
discussed, and the fundamentals of computer architecture and embedded
systems are touched upon, all in a cohesive design-driven framework
suitable for class or self-study.