This text describes how a computer works and explains how the various hardware components are organised and interconnected to provide a platform upon which programs can be executed. It takes a simple, step-by-step approach suitable for first year undergraduates coming to the subject for the first time. The second edition of this book has been thoroughly updated to cover new developments in the field and includes new diagrams and end of chapter exercises. It is accompanied by a lecturer and student web site which contains solutions to exercises, further exercises, PowerPoint slides and all the source code used in the book.