Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Art of Computer Programming, Volume 4, Fascicle 5 (amazon.com)
56 points by taeric on Dec 6, 2019 | hide | past | favorite | 12 comments


Interesting general tidbits from http://carmenere.ucsd.edu/drichert/reference_docs/Mathematic...:

"First he showed us a letter from Bob Floyd. The letter opened by saying ‘Don, Please stop using so many exclamation points!’ and closed with at least five exclamation points. After receiving this letter he looked in The Art of Computer Programming and found about two exclamation points per page. (Among the other biographical tidbits we learned at this class were that Don went to secretarial school, types 80 words per minute, and once knew two kinds of shorthand.)

...

Upon receiving a question from the audience concerning how many times he actually rewrites something, Don told us (part of) his usual rewrite sequence: His first copy is written in pencil. Some people compose at a terminal, but Don says, “The speed at which I write by hand is almost perfectly synchronized with the speed at which I think. I type faster than I think so I have to stop, and that interrupts the flow.

...

Don, obviously a fan of rewriting in general, told us that he knows of many computer programs that were improved by scrapping everything after six months and starting from scratch. He said that this exact approach was used at Burroughs on their Algol compiler in 1960 and the result was what Don considers to be one of the best computer programs he has ever seen.

...

The last part of class was spent discussing the font used in the coming book: Euler. The Euler typeface was designed by Hermann Zapf (“probably the greatest living type designer”) and is an especially appropriate font to use in a book that is all about Euler’s work. ”


I'll have to dive in this one more. First pass thoughts:

I love the implication that he thinks slower than 80 wpm. Sounds absurdly unlikely.

I also love the idea of throwing it away. Never fully been brave enough to do that, though. Nor have I ever seen it done. Getting closer as I get older. By coming up with a language for what I'm doing, I'm free to throw out how I've done it, so long as I honor the language I left behind. (Curious if this is the gem of dsl stuff. Just another way of saying to focus on the api.)

The shorthand, of course, complicates this. Does he do the first pass in shorthand? Even a mix of long and shorthand? That increases the writing speed considerably.


I don't think he's saying he literally thinks slower than 80 WPM. I interpret this to mean the rate at which he writes his thoughts down matches the amount of time it takes him to think of what he wants to write next or how he wants to phrase the next sentence. When I am writing research papers there are long pauses between sentences as I think of what I want to say next or how I want to phrase the sentence. That doesn't mean there are long pauses between sentences in my thoughts throughout the day.


I don't see the distinction you are making. I get that it is not a constant stream of words at that rate, but you still described thinking at roughly eighty words a minute. Right?

And I have no clue how that actually stacks up. Eighty looks like a small number, but that is more than this whole post.


Here's his 25th annual Christmas celebration, at Stanford yesterday: https://www.youtube.com/watch?v=s_kd7xE-HqA


I have volume 1 and I found it hard to get into. I think it presupposes a few concepts that my university skipped - eg, the correct way to approach writing a computer science proof (it comes up really early on in the exercises).

I often wonder what else comp sci students learned that us software engineering students did not. All I know for sure is that we did a ton more testing, architecture, hardware, math, and requirements. I think we did more applied programming too, based on trying to work with comp sci students who write custom sorting algorithms instead of thinking to type .sort(). We did not learn a ton of algorithms though


I used to felt what you describe when I got into University (and I'm going forward slowly). I tried to learn all maths and solving problems, reproducing proofs and understanding the logic behind the proof (like the construction of mathematical objects that aid in proving something, a lemma or a theorem). Only after that period of maturing my maths background I could feel comfortable enough reading books on many topics.

If you don't feel comfortable you'd be wasting your time, fighting to get into the proofs.

I really believe CS programs and schools should implement courses on "Thinking ,learning and building".


Almost no schools, even great ones, teach informal (professional) proofs, even in CS and pure math. They expect you to learn by osmosis.


Interested in proofs and proving? Read Social Processes and Proofs of Theorems and Programs by Richard A. De Millo (Georgia Institute of Technology) and Richard J. Lipton and Alan J. Perlis (Yale University) given at POPL3. https://ucsd-pl.github.io/cse-130-230/fa18/papers/demillo-so...

The peer review process often seems to fail when proofs are involved--reviewers often skip over the proofs because reading and checking is hard work.


FYI, that link gave me a 404. I found what appears to be the same paper here: https://www.cs.umd.edu/~gasarch/BLOGPAPERS/social.pdf


This volume is, in many ways, much more approachable. Definitely more fun. It is basically a puzzle book. Highly recommended!


I learned how to write proofs in 6th grade, with Euclidean geometry. Granted, in high-school and early university I became more comfortable with juggling alternating quantifiers (like epsilon-delta), but it wasn't at any point like the shock everyone makes it to look like.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: