The second edition of Niasn ans Schockens's book, The Elements of Computing Systems in the Kindle version became available for purchase and download today. The hard copy edition will apparently begin shipping tomorrow.
Good to see the book update. Looked over the 2nd edition updates. I couldn't tell how much was changed besides the appendices. One thing I'd like to have seen would be advanced extensions or alternative implementation recommendations. The posthumous acknowledgement to Mark Armbrust is quite thoughtful and well deserved.
I am very fond of the 1st edition and having gone through nearly a half of it I don't know how it could be improved. However I will purchase this 2nd edition one day when my 1st edition gets worn out. But I will still keep my 1st edition as I value it greatly.
Can anyone tell me if there are substantial differences in the 2nd ed, and what exactly has been added? The blurb says "It has been restructured into two distinct parts—Part I, hardware, and Part II, software", but wasn't the original first edition already structured that way?
I wouldn't expect to see a lot of new things or learn a bunch of stuff that you wouldn't have learned in the first edition. It's mostly just trying to make it more effective at accomplishing the same objectives based on many years of experience and feedback.
The organization and content is largely the same. The split between Part I and Part to is more deliberate. The first edition assumed that you had at least read the first part of the book before tackling the second. I think the goal of the second edition was to make it so that someone could start at the second part without ever referencing the first. This may have been motivated by high schools that often teach the course in a two-semester format and want students to be able to take the second course even if they don't have the first. It's also possible that they realized that some instructors use just parts of the course as a component in other courses and so they need to be able to cover just a portion of the book without having to deal with a lot references to earlier material. I haven't look at it in detail to see to what degree they achieved any of this.
They tried to fix the errors they were aware of, though there were amazingly few for a first edition.
They cleaned up a discrepancy between the ordering of the jump bits in the C-type instruction relative to the official mnemonics.
They tried to make a stronger separation between general discussions of the topics and the discussion that is very specific to the project. I think there were a few points were the distinction wasn't obvious and so people got confused thinking that what they were reading was supposed to be applied to the project.
They added some additional explanatory material in appendices (and moved some material from early chapters that wasn't critical to those appendices.
Thanks! I am just about to embark on the course for the first time. Someone loaned me a copy of the original edition, but when I saw there's a second I got anxious about using an outdated text and wondered if I should just buy the new one. It looks like the chapters posted on the site are the old ones though, which the authors probably wouldn't have done if it was that outdated. I appreciate this thorough answer to my question, and based on what you say I think I'll probably just use the old one since I have it.
You are correct that the chapters on the website are for the first version. The authors plan to update them to the new version soon, but we have to remember that this does not represent their bread and butter these days -- they are maintaining the site when they can.
The tools are also the original tools. A completely new set of tools is in the works, but I have no idea when it will be ready and available.
Both the old and the new tools are compatible with either edition of the text.