The Elements of Computing Systems: Building a Modern Computer from First Principles (Noam Nisan, et al)

0.0 (0)
The Elements of Computing Systems: Building a Modern Computer from First Principles (Noam Nisan, et al)

The interplay of hardware, software, compilers, and operating systems in the early days of computer science was straightforward enough to provide students with a general understanding of how computers functioned. Such clarity is frequently lost as computer technology becomes more complicated and knowledge becomes more specialized as a result.

The Elements of Computing Systems provides students with an integrated and rigorous view of applied computer science as it is used in the creation of a straightforward yet effective computer system, in contrast to other texts that only address one part of the discipline. In fact, building a computer from the ground up is the greatest way to understand how it operates. This textbook guides students through twelve chapters and tasks that gradually construct a fundamental hardware platform and a contemporary software hierarchy.

Students learn about hardware architecture, operating systems, programming languages, compilers, data structures, algorithms, and software engineering through practical experience. The book presents a substantial body of computer science knowledge using this constructive approach and shows how theoretical and applied approaches covered in prior courses fit into the bigger picture.

The book is built on an abstraction-implementation paradigm and was created to support one or two-semester courses. Each chapter includes a significant hardware or software abstraction, a suggested implementation that makes it concrete, and a real project. Although this is simply one possibility given that the projects are self-contained and can be completed or skipped in any sequence, it is possible to build the emerging computer system by following the chapters.

The book contains all the computer science information required to complete the tasks; programming experience is the sole prerequisite. The whole construction kit for the hardware and software systems described in the book is available on the book's website, together with 200 test programs for the twelve projects. All of the provided software is open-source, and the projects and systems can be altered to suit different instructional needs.

Ebook Details

About the Authors
  • The dean of the Hebrew University of Jerusalem's School of Computer Science and Engineering is Noam Nisan.
  • Shimon Schocken is a professor of computer science and the founding dean of the IDC Herzliya, Israel's Efi Arazi School of Computer Science.
Published Date / Year
(March 31, 2005)
344 pages
eBook Format
PDF files

Similar Programming & Computer Books

Designing Computers and Digital Systems using pdp 16 Register Transfer Modules (C. Gordon Bell, et al)
This is a classic free programming book from the era when pdp 16 registers were used in the design of computers. It was written by Gordon Bell, John Grason,...
A History of the Personal Computer: the People and the Technology (Roy A. Allan)
The history of the personal computer revolution in this free programming book is fascinating. We go into detail on early personal computing, the "first" personal computer, Intel's invention of...
A Technical History of Apple's Operating Systems (Amit Singh)
These documents cover a variety of operating systems that Apple has attempted to create as well as those that it has previously developed.
Retrograde - The Ultimate Guide to Pre-millennial PC Hardware (Ben Hardwidge)
With our free guide to retro PC hardware, you can go back in time to the Neolithic era of the 286, CGA graphics, and the earliest sound cards. ...
Computer Arithmetic of Geometrical Figures: Algorithms and Hardware Design (S. I. Khmelnik)
This free programming book describes many iterations of processors made for affine transformations of planar and spatial many-dimensional figures. This processor is designed to perform affine transformations on geometrical...
Operational Amplifiers and Linear Integrated Circuits: Theory and Application (James M. Fiore)
This free programming book provides a thorough and in-depth analysis of the contemporary op amp and related specialized linear integrated circuits. The differential amplifier serves as the foundational building...
PIC Microcontrollers (Milan Verle)
It's time to educate yourself on microcontrollers and how they work if you haven't before. You will love working with PIC microcontrollers because of the many pictures and real-world...
Programming dsPIC (Digital Signal Controllers) Microcontroller in PASCAL (Zoran Milivojevic, et al)
Learn how to create your own programs, how to debug them, and how to launch a microcontroller using them.
Digital System Design - Use of Microcontroller (Dawoud Shenouda Dawoud, et al)
The widespread use of embedded systems in modern technology, from toasters to spacecraft, presents various difficulties for embedded system designers.
Circuit Design: Anticipate, Analyze, Exploit Variations (Stephan Weber, et al)
Circuit design combines science and art. To address every issue and follow both written and unwritten criteria, designers need a strong "gut sense" for circuits, relevant analytical methods, and...

Others Programming Books by Noam Nisan, Shimon Schocken

Algorithmic Game Theory (Noam Nisan, et al)
The topic of Algorithmic Game Theory encompasses many of the most active areas of practical new game theory research, offering challenging new issues, methods, and viewpoints that demand both...

Others Programming Books by The MIT Press

Cellular: An Economic and Business History of the International Mobile-Phone Industry (Daniel D. Garcia-Swartz, et al)
From the late 1970s to the present, charts the development of the global cellular industry. It took exceptional collaboration between businesses, governments, and industrial sectors for the mobile phone...
The Ecology of Games: Connecting Youth, Games, and Learning (Katie Salen)
Little has been published on an overall "ecology" of gaming, game design, and play - mapping the ways that all the various elements, from code to social practices to...
Categories, Types, and Structures: An Introduction to Category Theory for the Working Computer Scientist (Andrea Asperti, et al)
This free programming book offers an accessible introduction to category theory for computer scientists as well as useful examples in the context of programming language design. In "Categories, Types...
Sheaf Theory through Examples (Daniel Rosiak)
This free programming book offers a clear introduction to elementary sheaf theory from the standpoint of applied category theory and explores several applications, such as n-colorings of graphs, satellite...
Wandering Games (Melissa Kagen)
Games may use wandering as a topic, formal style, metaphor for aesthetics, or player action. It can refer to moving forward, moving backward, traveling, meandering, or escaping. ...
Probabilistic Machine Learning: Advanced Topics (Kevin Patrick Murphy)
In this book, we broaden the use of machine learning to more difficult issues.
Introduction to Online Convex Optimization (Elad Hazan)
In this book, optimization is portrayed as a procedure. It is not realistic to draw out a thorough theoretical model and utilize traditional algorithmic theory and/or mathematical optimization in...
Statistical Mechanics of Lattice Systems: A Concrete Mathematical Introduction (Sacha Friedli, et al)
Using a variety of specific models, such as the Curie-Weiss and Ising models, the Gaussian free field, O(n) models, and models with Ka interactions, this inspiring textbook provides a...
Software Design for Flexibility: How to Avoid Programming Yourself into a Corner (Chris Hanson, et al)
Techniques for designing huge systems that are easily reconfigurable for different scenarios with very modest programming changes.
Global Fintech: Financial Innovation in the Connected World (David L. Shrier, et al.)
The global financial services industry has been completely transformed by artificial intelligence, big data, blockchain, and other new technologies, opening up new prospects for business owners and corporate innovators....
Structure and Interpretation of Computer Programs, JavaScript Edition (Harold Abelson, et al.)
By building a number of mental models for computation, this book introduces the reader to the fundamental concepts of computation.
The New Hacker's Dictionary (The Jargon File) by Eric S. Raymond
This page includes a glossary of terminology used by various computer hacker subcultures. What we describe here is the language hackers use among themselves for amusement, social contact, and...
Algorithms for Decision Making (Mykel Kochenderfer, et al)
In this book, algorithms for making decisions in the face of uncertainty are introduced in great detail. It introduces the underlying mathematical problem formulations and the strategies for addressing...
Machine Learning: A Probabilistic Perspective (Kevin Patrick Murphy)
Automated data analysis techniques are necessary given the Web-enabled flood of electronic data we face today. These are provided by machine learning, which creates techniques that can automatically find...
Exploratory Programming for the Arts and Humanities (Nick Montfort)
There are no prerequisites or assuming prior programming experience in this book, which introduces programming to readers interested in the arts and humanities.
The Constitution of Algorithms: Ground-Truthing, Programming, Formulating (Florian Jaton)
The technologies we use every day are powered by algorithms, which are sometimes used interchangeably with words like "big data," "machine learning," and "artificial intelligence." Arguments concerning the real...
Linguistics for the Age of AI (Marjorie McShane, et al)
This book presents a model of language understanding for intelligent agent systems that is human-inspired and linguistically complex.
Probabilistic Machine Learning: An Introduction (Kevin Patrick Murphy)
Using probabilistic models and inference as a unifying strategy, this book provides a thorough introduction to machine learning.
How Humans Judge Machines (Cesar A. Hidalgo, et al)
A thorough analysis of how individuals respond to human activities versus machine actions. This book investigates when and why people differentiate between humans and machines through dozens of tests....
Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant (Adam Chlipala)
Many different computer science research endeavors can benefit from the use of mechanized program verification technologies, and the use of similar formal proof-checking tools in mathematics and engineering is...

User reviews

There are no user reviews for this listing.
Rate this Book