The Elements of Computing Systems : Building a Modern Computer from First Principles

The Elements of Computing Systems : Building a Modern Computer from First Principles


A textbook with a hands-on approach that leads students through the gradual construction of a complete and working computer system including the hardware platform and the software hierarchy.

In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements of Computing Systems gives students an integrated and rigorous picture of applied computer science, as its comes to play in the construction of a simple yet powerful computer system.

Indeed, the best way to understand how computers work is to build one from scratch, and this textbook leads students through twelve chapters and projects that gradually build a basic hardware platform and a modern software hierarchy from the ground up. In the process, the students gain hands-on knowledge of hardware architecture, operating systems, programming languages, compilers, data structures, algorithms, and software engineering. Using this constructive approach, the book exposes a significant body of computer science knowledge and demonstrates how theoretical and applied techniques taught in other courses fit into the overall picture.

Designed to support one- or two-semester courses, the book is based on an abstraction-implementation paradigm; each chapter presents a key hardware or software abstraction, a proposed implementation that makes it concrete, and an actual project. The emerging computer system can be built by following the chapters, although this is only one option, since the projects are self-contained and can be done or skipped in any order. All the computer science knowledge necessary for completing the projects is embedded in the book, the only pre-requisite being a programming experience.

The book's web site provides all tools and materials necessary to build all the hardware and software systems described in the text, including two hundred test programs for the twelve projects. The projects and systems can be modified to meet various teaching needs, and all the supplied software is open-source.

Similar Books

ISBN 10: 0262510871
ISBN 13: 9780262510875

25 Jul 1996
Harold Abelson

ISBN 10: 0262534800
ISBN 13: 9780262534802

04 May 2018
Matthias Felleisen

ISBN 10: 0735611319
ISBN 13: 9780735611313

11 Nov 2000
Charles Petzold

ISBN 10: 1849967202
ISBN 13: 9781849967204

31 Oct 2010
Steven S Skiena

ISBN 10: 1292101768
ISBN 13: 9781292101767

28 Feb 2018
Randal Bryant

ISBN 10: 1593279280
ISBN 13: 9781593279288

09 May 2019
Eric Matthes

ISBN 10: 069116407X
ISBN 13: 9780691164076

01 Nov 2014
G. Polya

ISBN 10: 0262033844
ISBN 13: 9780262033848

30 Sep 2009
Thomas H. Cormen

ISBN 10: 006285268X
ISBN 13: 9780062852687

24 Sep 2019
Scott Young

ISBN 10: 1118787315
ISBN 13: 9781118787311

17 Feb 2014
Bruce Dang

ISBN 10: 0131103628
ISBN 13: 9780131103627

01 May 1988
Brian Kernighan

ISBN 10: 0262527952
ISBN 13: 9780262527958

08 Sep 2015
Daniel P. Friedman

Warning: fopen(/var/www/ failed to open stream: Permission denied in /var/www/ on line 0

Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/ on line 0

Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/ on line 0