Live data from Hacker News

Computer Science from the Bottom Up

bottomupcs.com

31–40 of 46 posts

Re: Computer Science from the Bottom Up

#31
This is bottom-up:

http://www.charlespetzold.com/code/

http://www.nand2tetris.org/

I've only read a little bit of the 2nd book (IIRC I stopped reading and lost interest when I found a very obvious and repeated error), but all of the 1st one. The 1st one is highly recommended.

IMHO the trend of teaching things in CS top-down doesn't encourage understanding of how computers actually work, which turns out to be quite important in many situations, especially debugging and knowing the limitations of what computers can and cannot do. I believe that a lot of the problems with software today (bugs, inefficiency, overcomplexity) can be eliminated or at least reduced greatly via a deeper understanding of these basic concepts, since the majority of programmers seem to have only a very vague idea of e.g. memory, number representation, CPU operation, etc.

I think CS should start at the lowest level above EE, with binary representation of data and basic digital circuits (without e.g. going into the physics of how transistors work.) Have students build basic CPUs and write/enter programs for them and run them manually to see computation happening at this level. Then proceed up to Asm, C, and higher-level languages to write more complex programs, maybe even a simple operating system, accompanied by some of the more theoretical material (e.g. algorithmic complexity), continuing to keep the theme that there is a practical use for learning these things.

Re: Computer Science from the Bottom Up

#32
post #6

"from the bottom up" and the _first_ chapter is called "General Unix and Advanced C" ? This book may be useful, but I would look for another name (I wouldn't even mention computer science, but that may be because I agree with Dijkstra that that isn't science or about computers). I also think a generic computer science book shouldn't only use Linux as example OS. Also, if chapter 1 is about _advanced_C_, why does chap…

(author here) This book was created both from my experiences and the experiences of teaching 3rd year operating systems classes. Students came in to that class having done a 2nd year class (data structures and algorithms I think) that was done with a lot of C. They really learnt "high-level" C, enough syntax to get by in the their course, but most didn't really understand it -- not enough to read the source to any ke…

It's great work, but the title is still misleading. Computer Science deals with more than just operating systems. I'd have expected at least some more discrete mathematics before it could be called "computer science".

This criticism, by the way, should not be seen as in any detracting from the amazing job you have done there! Thank you for publishing this.

Re: Computer Science from the Bottom Up

#33

This is bottom-up: http://www.charlespetzold.com/code/ http://www.nand2tetris.org/ I've only read a little bit of the 2nd book (IIRC I stopped reading and lost interest when I found a very obvious and repeated error), but all of the 1st one. The 1st one is highly recommended. IMHO the trend of teaching things in CS top-down doesn't encourage understanding of how computers actually work, which turns out to be quite im…

+1 for CODE, I can't recommend that book enough to... and when you start talking about Morris code, telegrams, braille, OHMs, and binary math as your build up... well, it really just connects a lot of mental dots.

Re: Computer Science from the Bottom Up

#34
post #6

"from the bottom up" and the _first_ chapter is called "General Unix and Advanced C" ? This book may be useful, but I would look for another name (I wouldn't even mention computer science, but that may be because I agree with Dijkstra that that isn't science or about computers). I also think a generic computer science book shouldn't only use Linux as example OS. Also, if chapter 1 is about _advanced_C_, why does chap…

(author here) This book was created both from my experiences and the experiences of teaching 3rd year operating systems classes. Students came in to that class having done a 2nd year class (data structures and algorithms I think) that was done with a lot of C. They really learnt "high-level" C, enough syntax to get by in the their course, but most didn't really understand it -- not enough to read the source to any ke…

> I don't imagine it's done like that today; this was a long time ago.

Sadly, it still is in many (most?) places' CS curricula.

> And most didn't really understand binary and hex, and how it relates to code either. You'd be amazed most 3rd year students didn't know how 2^10, 2^20, 2^30 relates to kilo, mega, giga bytes

I've worked with graduates who didn't know binary, didn't understand signed/unsigned overflow and how integers wrapped around, and perhaps even more disturbingly, had never used a command line or knew how to do a lot of other things that could be called "basic computer literacy for CS students"... because almost all they were taught were mechanised steps on how to open an IDE, write some code, and click the Build/Run buttons. I think your book would be suitable for those students.

> But suggestions are welcome and I'll consider it when I get some time.

I think for the purpose you created the book, the organisation is fine; it appears to be a collection of selected topics instead of one meant to be coherently read from start to end.

Re: Computer Science from the Bottom Up

#38

I read through couple chapters and enjoyed it. Does anyone have suggestions on other books dealing with this level of complexity?

If you're looking for a really great book on basics of systems with particular focus on Unix/Linux and C (like what this tutorial seems to be... rather than all computer science), I don't think you could do better than "Computer Systems, A Programmer's perspective" by Bryant and O'Hallaron.

Re: Computer Science from the Bottom Up

#39

This is bottom-up: http://www.charlespetzold.com/code/ http://www.nand2tetris.org/ I've only read a little bit of the 2nd book (IIRC I stopped reading and lost interest when I found a very obvious and repeated error), but all of the 1st one. The 1st one is highly recommended. IMHO the trend of teaching things in CS top-down doesn't encourage understanding of how computers actually work, which turns out to be quite im…

(Author of the linked book)

Funny you mention that Petzold book; I read that as an IT student doing airy courses about software requirements and design and realized I had to get across to the electrical engineering building. I didn't have the prereqs for the OS course, so I did the first assignment from the previous year and sent it to Gernot and begged to be let in. He ended up my thesis supervisor.

(The other person I remember not being totally thrilled with the IT courses was Scott Farquhar, of billionaire Atlassian fame)

So that book can change your life, and is the first thing I tell people to read who show an interest in the systems area

Re: Computer Science from the Bottom Up

#40
This is not "bottom up". Bottom up is not ultra-reductionism. Bottom up is not learning writing & literature from the sequential arrangement of ink and space(≈ taleb). Though it is technically correct to say so. Below is something very similar.

"At a purely formal level, one could call probability theory the study of measure spaces with total measure one, but that would be like calling number theory the study of strings of digits which terminate. At a practical level, the opposite is true: " - Terrence Tao [1]

[1] http://terrytao.wordpress.com/2010/01/01/254a-notes-0-a-revi...

Post reply on HN