Live data from Hacker News

The Elements of Computing Systems, Second Edition

mitpress.mit.edu

21–30 of 101 posts

Re: The Elements of Computing Systems, Second Edition

#21

How similar is this book to CODE by Charles Petzold? I loved that book because it progressively builds up an imaginary computer using very easy to understand concepts. Even non-technical people can read it to understand how computers work internally.

"Elements of Computing Systems" is more detailed and involves you actually creating (virtually) a working computer starting from NAND gates. CODE is much more introductory.

Re: The Elements of Computing Systems, Second Edition

#22
post #14

As others have commented, the original book was one of those little gems that once you read, you realise how blind you were before, and it is extremely accessible. Often material is either too abstract or far too detailed, ECS managed to find the perfect balance where someone with a CS background can drill down to transistors and come back upwards again and really understand where they are going on that journey.

I didn't use this one, but my Computer Organization class which did gates -> circuits -> cpu -> microcode -> assembly was the lightbulb that allowed me to attempt to deconstruct everything to at least the gate level if I had to and made me much more comfortable with computer science and software in general. The only thing that rivaled that lightbulb was aspects of Theory of Computation with undecidability, turing mac…

>"The only thing that rivaled that lightbulb was aspects of Theory of Computation with undecidability, turing machine vs stack machine vs state machine powers that theoretically limit Von Neumann architecture."

Might you or someone else have a title that you would recommend for this that is the equivalent of a "Elements of Computing Systems" style book?

Re: The Elements of Computing Systems, Second Edition

#23

How similar is this book to CODE by Charles Petzold? I loved that book because it progressively builds up an imaginary computer using very easy to understand concepts. Even non-technical people can read it to understand how computers work internally.

The Elements of Computing Systems is a project-based course, starting with transistors going through building a computer and then an OS and software on top of it. Code goes deeper into the history leading to modern computers, but doesn't offer this project-based experience from the transistor level up. IMO, the two books offer a nice complement to each other.

Re: The Elements of Computing Systems, Second Edition

#24
post #14

As others have commented, the original book was one of those little gems that once you read, you realise how blind you were before, and it is extremely accessible. Often material is either too abstract or far too detailed, ECS managed to find the perfect balance where someone with a CS background can drill down to transistors and come back upwards again and really understand where they are going on that journey.

I didn't use this one, but my Computer Organization class which did gates -> circuits -> cpu -> microcode -> assembly was the lightbulb that allowed me to attempt to deconstruct everything to at least the gate level if I had to and made me much more comfortable with computer science and software in general. The only thing that rivaled that lightbulb was aspects of Theory of Computation with undecidability, turing mac…

This particular book/course is aimed at being accessible to even high school students. The projects stop short of the depth you'd see in a computer engineering degree because it ends up being a survey of CMPE. It's a good starting point for people who either are considering that discipline of formal study, or hobbyists/professionals with different backgrounds that want to understand hardware better.

Regardless, you'd need a different book or course to get what you're asking for in your last paragraph as that changes the scope and target of the book radically.

Re: The Elements of Computing Systems, Second Edition

#26

Earlier quoted context omitted.

I didn't use this one, but my Computer Organization class which did gates -> circuits -> cpu -> microcode -> assembly was the lightbulb that allowed me to attempt to deconstruct everything to at least the gate level if I had to and made me much more comfortable with computer science and software in general. The only thing that rivaled that lightbulb was aspects of Theory of Computation with undecidability, turing mac…

>"The only thing that rivaled that lightbulb was aspects of Theory of Computation with undecidability, turing machine vs stack machine vs state machine powers that theoretically limit Von Neumann architecture." Might you or someone else have a title that you would recommend for this that is the equivalent of a "Elements of Computing Systems" style book?

I TAed the class for a while in undergrad and it was one of the few CS classes with a textbook that really actually helped and augmented the lectures/homework.

The one we used was Introduction to the Theory of Computation by Michael Sipser (not hard to find a pdf online).

Re: The Elements of Computing Systems, Second Edition

#27

Does anybody know something about the main differences to the first edition? Is it the same HACK computer (and stack, with assembler, high-level language, etc.), or did they change that? The original architecture had some caveats - e.g. no external interrupt capability, so IO was implemented using busy polling and inspection specific IO-mapped memory regions (I don't blame them, as it made the book more concise and y…

I emailed the authors a while back when I found out about the second edition, asking about the differences. They stated that the hardware platform and software stack specifications are unchanged.

Re: The Elements of Computing Systems, Second Edition

#28

How similar is this book to CODE by Charles Petzold? I loved that book because it progressively builds up an imaginary computer using very easy to understand concepts. Even non-technical people can read it to understand how computers work internally.

I read CODE before reading The Elements of Computing Systems. I felt like the former provides details that you actually implement in the latter. Highly recommend both and in that order.

Re: The Elements of Computing Systems, Second Edition

#30
post #5

Buy this book if you're a programmer who wants to know how computers work. I read the first edition in high school, and if I had to choose either this book or my entire undergrad CS education, I'd pick this book.

Seriously. After reading this book I realized that I didn't understand shit about computers before. Wondering what the second edition adds.

I feel like computer science degrees rarely get into much of the hardware beyond some basic assembly. You might have benefitted from taking some computer engineering courses which cover the topics in this book in much greater detail.
Post reply on HN