Live data from Hacker News

The Elements of Computing Systems, Second Edition

mitpress.mit.edu

81–90 of 101 posts

Re: The Elements of Computing Systems, Second Edition

#81

Earlier quoted context omitted.

>"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?

The book "Understanding Computation: From Simple Machines to Impossible Programs" by Tom Stuart was/is my Theory Of Computation Nirvana experience. Its motives is the same as NandToTetris: to make any programming-literate person comfortable with the rough outlines of the theory of computation and its main lore and results. The author uses Ruby as an interactive "Illustration language", a notation to describe concepts…

This is fantastic. I will definitely search this title out. Thanks for the wonderfully detailed response. This sounds exactly what I was looking for. Cheers.

Re: The Elements of Computing Systems, Second Edition

#82

Earlier quoted context omitted.

Just curious what curriculum gave a low level CS education? Did you deliberately choose courses such as Compiler thoery and Operating System? In my school(I'm in first semester but join as a returner as I got a Stat master yrs ago) they are both optional and we can skip many low level courses.

Honestly, it was my school. I went to Digipen Institute of Technology. There are a lot of teachers there who worked for Nintendo which has a very old school dev culture. For example, the Wii U was literally their first console with an actual operating system. There are also a lot of Microsoft folks there who worked in jobs like Xbox dev support which gives one a pretty intense education in tackling low level problems…

Thanks. This does sound very interesting. I wonder if there is any other place that offers a combination of many low level courses as well as game programming ones...Those Nintendo guys must be very cool. Did any of them work in the nes/snes period?

Re: The Elements of Computing Systems, Second Edition

#85
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.

I have both a computer engineering education and have read the book. My recollection is that it's good for what it is but omits[0] a heck of a lot of necessary background knowledge to apply the material outside of the limited context of the book. I'm not saying that it's not good, just be aware that it's not the whole picture, so to speak. [0] or perhaps it would be better to say "has no choice but to omit" or it wou…

I did part one of two of nand2tetris online.

The biggest part they omitted was how flip flops work. They talk about it briefly in a end of unit video, however. They don't really talk about clock cycles in any depth, and their interactions with flip flops, and why they're important.

The course, I think, it better to have left it out. It keeps the first part focused on the combination of elements culminating in a CPU.

And, most of all, it inspires you. After doing the course, I was more than motivated to understand this myself. And it remains the most educational computing course I've ever done.

Re: The Elements of Computing Systems, Second Edition

#86

do you need any external resources to go through this book?

The webpage https://www.nand2tetris.org/software has a link to a file, nand2tetris.zip, which contains projects and tools which are all one needs to go through the book (explained on this page). This open source software can be run on Windows, Unix, and MacOS. I've worked through most of the book on my Mac.

Re: The Elements of Computing Systems, Second Edition

#87
post #69
post #55

Earlier quoted context omitted.

Oh really? I was going off their own FAQ since the graded items requiring paying, and I didn’t want to do it if I couldn’t use the languages I wanted, namely F# and Racket. From the FAQ: > > Which programming language do I have to use in order to complete the assignments in this course? > We expect learners to submit assignments in any version of Java, or Python. We will assume that you have basic programming ability…

Yeah, I guess the FAQ is out of date. Think you should be to sign up for free if you want to check for yourself. I highly recommend it! And F# would be a pretty great language for this course, I think. Looks like no Racket (or any Lisp) support, though.

Yea, I have already done the first course part and then the assembler, which is in F# and linked in one of my other comments.

Thanks for letting me know about the extended grader support.

Re: The Elements of Computing Systems, Second Edition

#88
post #59

Earlier quoted context omitted.

I wonder what might be some good examples of that. IME, it's mostly been college textbooks which suffer from being refreshed for the sake of encouraging new purchases (killing the used market), often by someone other than the original authors and editors. Of course, some AD&D fans would say everything past 2nd edition might be an example of it.

> past 2nd edition Case in point: the vomit-inducing colorful print of the 3rd edition of Axler's Linear Algebra Done Right .

Sorry that you do not like the color in the third edition of Linear Algebra Done Right. Most students find it useful, for example, to have definition boxes be a different color than theorem boxes. The color did not increase the price of Linear Algebra Done Right. New hardbound copies of the book usually sell for about $45 on Amazon, much less than most competing books. Furthermore, Linear Algebra Done Right almost always has the best Amazon sales rank of books for a second course in linear algebra. --Sheldon Axler

Re: The Elements of Computing Systems, Second Edition

#89
post #61

Earlier quoted context omitted.

>This book follows more along the lines of the coursework for a computer engineering degree than a computer science degree > but CS curricula generally completely omit the electrical engineering portions Where in this book does it talk about electrical engineering?

The first half of the book is about digital design, which is part of electrical engineering. They call it "Hardware Land" in the book. From page 6 (1st ed.): Of course the layers of abstraction don't stop here. Elementary logic gates are built from transistors, using technologies based on solid-state physics and ultimately quantum mechanics. Indeed, this is where the abstractions of the natural world,as studied and f…

They actually call it "Hardware." If you look on the left of the thread linked website, you'll see a very nice "Table of contents." In this table of contents, it lists all the topics that the books covers.

HARDWARE

1 Boolean Logic 9

2 Boolean Arithmetic 31

3 Memory 45

4 Machine Language 61

5 Computer Architecture 83

6 Assembler 103

These topics are fundamental to computer science. Boolean algebra is fundamental to computer science. Just because E.E. or C.E. degree courses mention a topic, doesn't mean that topic all of a sudden becomes exclusive to them.

Also, I notice you're using the first edition. May I suggest you look at the second edition, as stated in the title?

Re: The Elements of Computing Systems, Second Edition

#90
I had the pleasure to be taught this course by Prof. Schocken and also implement https://www.nand2tetris.org/ It's very important to know that Prof. Schocken is a true hacker - he speaks a lot with his students about hacking and curiosity, which is far more important than academic grades.
Post reply on HN