Knuth's Volume IV Preview Available Online
ahto writes: "The first section of volume 4 of Knuth's The Art of Computer Programming is available for peer review (and the $2.56 finder's fee for every typo is still there :)." Knuth's series-in-progress made a lot of people's lists when it came to assembling the perfect collection of library books for computer science; now you have a chance to make the next one better. If you can find any mistakes, that is.
eventually you approach a point where anything you write down is obsolete the next day
That depends on your subject. When you're writing about fundamentals of computer science, it doesn't change nearly that fast.
Turing submitted his seminal work describing what we call a 'Turing machine' in 1936. Except for quantum computing and other non-deterministic models, every notion in computer science must fit within its framework.
Jon von Neumann wrote papers that describe what we call a 'von Neumann architecture' in 1945. The vast and overwhelming majority of computers ever built have been von Neumann machines.
Bubblesort, mergesort, quicksort, and heapsort were all invented before 1970. They remain the most commonly used used generalized sorting algorithms to this day.
Thinking that the latest language or operating system du jour invalidates everything that came before is really just cultural myopia.
Wasn't it Dijksta who originally flamed gotos? http://www.acm.org/classics/oct95/
-- What do you need?
-- Gnus. Lots of Gnus.
I have a book from an AI class,
Artificial Intelligence: A Modern Approach by Stuart Russel and Peter Norvig (ISBN 0-13-103805-2)
that covers the Markov Chain and Genetic algorithms, but not Monte Carlo.
Monte Carlo is more of a computation/scientific programming random sample approach, whereas the random sample in Genetic algorithms are the functions themselves, and not the data.
(nil)
Get the following book: How To Solve It: Modern Heuristics By Zbigniew Mihalewicz Published by Springer Verlag This is a great book and contains info on all of the algo's you mentioned in your post. Cheers. BobRock
Try Richard Crandall's Projects in Scientific Computation perhaps? It covers all of these and more in one book.
NetBSD: the cathedral vs the bizzare.
After writing the first 3 volumes he became disgusted at the current state of the art in typesetting, so he decided to take a short break to write TEX solve that minor problem. Now many years later I assume he has solved his typesetting problem because vol 4 is becomming available. Volume 5 is scheduled to be done in 2009.
"IMHO, if you haven't read Knuth's work, you aren't a programmer."
There are plenty of people out there who've read (and even understood) Knuth's books, yet who still write horrible spaghetti code. This includes at least 50% of the mathematics PhD's who have worked for me over the years. I would barely classify these people as programmers.
At the same time, I have seen plenty of good (even "very good") software engineers who have never even seen Knuth's books.
TAOCP (esp. vol I) is important, I would even agree with you that aspiring programmers "should" read it, but IMHO the knowledge is neither sufficient nor entirely necessary for making good programmers.
You're going to fail, dude!
Knuth isn't going to have ready either book in time to help you with your project.
Dancin Santa
The acrobat distiller will convert postscript files to pdf files. Additionally, you might already have psview (I think it's called that). Adobe ships it as a postscript viewer.
Try GSView + GhostScript. GhostScript is an open source PostScript interpreter. GSView is a (shareware) GUI for GhostScript. Both are available on Windows and Linux.
All of Knuth's future plans for the series are spelled out on his webpage.
- Abelson and Sussman: Structure and Interpretation of Computer Programs. This book covers a lot of ground when it comes to programming, implementation of programming languages, and the use of abstraction in software development.
- Cormen, Leiserson, and Rivest's algorithm book is an excellent modern exposition of algorithms and concepts in algorithm development.
- Russel and Norvig's "AI -- A Modern Approach" is an excellent textbook covering logic, search, and AI.
Also very relevant to modern computer science are the following books:- Duda, Hart, and Stork's "Pattern Classification" is also a book computer scientists should know, but rarely do.
- Strang's "Introduction to Applied Mathematics" covers elementary material in applied math that every scientist (computer or otherwise) should know by heart.
- Gershenfeld's "The Nature of Mathematical Modeling" is a neat, if somewhat quirky, book at the intersection of mathematical modeling and computer science.
If you have recommendations of other introductory books with a similar style, say on automata theory, string algorithms, number theory, combinatorics, etc., please do share them.Remove the .gz extension. The remaining .ps file will open cleanly with GhostView/GhostScript under Win 98.
It's the respective version numbers for those programs that are converging to pi and e (and, as DK has decreed, will reach those values upon his death).
The error-finder's fee, as I understand, is not bounded in any way-- save for The Knuth's ability to walk the walk of a perfectionist };-)
iSKUNK!
how many assembly style languages, a la MIX (or the RISC based MMIX) have a while loop structure? On a fundamental level, GOTOs or jump instructions are neccessary. Granted, utilizing them in a high level OO language is no good. But to truly understand and see the algorithm just a couple of steps above the machine.. they simply must be there...
Knuth's books are timeless. Java, C++, C, Fortran... it's all pretty irrelevant. If you spend some time with Knuth's books it reduces the rest of the books on programming to piddly details that need little time.
Here is Don Knuth home page, it answers some of you questions. He has retired from his job, and has decided not even have an email address, as he wants to finish his Encyclopaedia. He considers it rightfully as the work of his life.
http://www-cs-faculty.stanford.edu/~knuth/
Danny.
I have written over 900 book reviews
I know that mozilla/galeon can have a nasty habit of gunzipping files on download.. if your webbrowser is the same, your file is already gunziped. Try to rename it to .ps and open in your favorite postscript viewer.
This is not a draft of volume IV. This is a draft of a section of one chapter in volume IV, namely section 7.2.1.1.
Dr. Knuth writes: "This is a section of a long, long chapter on combinatorial algorithms. Chapter 7 will eventually fill three volumes (namely Volumes 4A, 4B and 4C), assuming that I'm able to remain healthy."
This particular section deals with generation of combinatorial patterns and was released for public review in hope to winnow the most egregious errors before it's released; the subject is so extense that Dr. Knuth felt this was one of the best ways to improve this 67-page section.
I've read the first four or five pages and it's impressive, as always. Heavy on the math from the first page. Either way this will make for very enjoyable reading (if you're in hyper-nerd mode).
Cheers!
E
http://eugeneciurana.com | http://ciurana.eu
Pretty damn gutsy thing to offer. Imagine if there'd been 30 errors...
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
I disagree with this point of view.
Khalid wrote: "Knuth books are the material proof that software patents are stupid."
All the basics can be found in his works, agreed. But implementing products, whether in software or hardware, involves aggregation of this knowledge into a useful form.
Remember: Knowing the periodic table and the properties of chemicals isn't enough; products such as plastics or drugs are the result of aggregating the compounds and combining them through experimentation and know-how (i.e. the art part). In the case of software, knowing algorithms and programming languages doesn't result in a new product or way of solving a software problem. This product or service only has value to *anyone* if the application of algorithms and programming skills results in solving a problem.
Many of us think that the persons who figure how to solve some problem first (or better than anyone before them) are entitled to manage the discovery and protect the know-how involved (i.e. the intellectual property) any way they consider appropriate.
This freedom of choice is what allows some of us to produce code and licence it under the GPL, or the Apache licence, or patent it, or copyright it, or assign it to a third party, or whatever.
I tend to agree that most (perhaps all?) business methods and quite a few service patents are stupid. I don't agree when it comes to software. Then, I am primarily a technologist and make my living creating software products. If I were a business person I'd may have a more informed opinion of their stance on patents.
Cheers!
E
http://eugeneciurana.com | http://ciurana.eu
It's been a long wait since the first three book of TAOCP came out (in the 80's I suppose). Knuth said it would be a 7-volume series. We always wait for the rest to come out. Here's volume 4. You could check out what will come out for volume 5-7. The contents for volume 4 is there too (including the erratas of vol 1-3).
He said that he'll spend his retirement to write the rest. Wow. Check out his homepage, probably you could help him. If you could give him a "significant suggestion", he'll reward you for 32c. If only ask slashdot offer the same prize for each highly modded post. :-)
Caveat emptor: His book is not for the faint-hearted. It's full of math & logic -- but it's wonderful.
--
Error 500: Internal sig error
Download MikTeX from here. It's free rather than Distiller. Install it and you can invoke ps2pdf to convert your ps file.
--
Error 500: Internal sig error