Wiley has published a new book that, in a certain sense, is about algorithms: Computer Science Reconsidered: The Invocation Model of Process Expression, by Karl M. Fant. From the back cover:
A groundbreaking, seminal work that challenges the theoretical foundations of computer science
For some juicy bits of this book, I refer you to the article Want to be a computer scientist? Forget maths, with the subtitle:
A new book seeks to demolish the concept that computer science is rooted in mathematics and, in particular that the notion of the algorithm is fundamental to computer science.
After reading the article, I realized that there are so many things that can be said about this new book and I really don’t know how to begin. I guess I just have to rely on fellow bloggers. You know, with quotes like—
Any program utilising random input to carry out its process, such…is not an algorithm.
—I can only imagine that Mike Mitzenmacher has more than a few things to say on the subject. And consider this—
A logic circuit is not a sequence of operations.
—that, that… that’s a brilliant observation! My sky is falling…
When I was a kid, I was told that a book could gain immortality when people referred to it without even mentioning its title. At that time I wasn’t sure what that meant.
As I grew up, I started to hear about legends of the Green Dragon and the Red Dragon that soar over the great land of Computer Science…
After some twenty years, this semester, the Purple Dragon has finally made its debut to take over the reign of the Red Dragon.
But somehow, deep inside, I felt something looks “wrong” ever since I laid my sight on its cover. I couldn’t identify the subtle cause.
And this morning, ah ha! I finally realized—the computer has disappeared! Indeed, everything else like the Sword of LALR Generator are still there. The computer, however, has disappeared.
I can only imagine that the Knight has an UMPC mounted behind the Shield on his/her forearm. Or perhaps, with the advancement of technology in the last twenty years, the battlefield is now the Matrix.
P.S. Seriously, parsing has definitely advanced in the last twenty years. For a great theory-meets-practice story, you can read about ANTLR. It’s fascinating.
Starting from my inbox, I discovered that
The Art of Computer Programming, Volume 4, Fascicle 4 : Generating All Trees–History of Combinatorial Generation
is available for sale now. Here is a totally no-commission-involved link to the item on Amazon.com. The previous three fascicles are of course also available.
I just discovered that there is another book about TeX that has been “freed”:
TeX for the Impatient
I have not found time to read it yet, but flipping through the PDF suggests that this is a pretty good book.
As for why you would want to read about TeX? Well, at least you can tell confidently which one of the following five gives a different (probably unintended) output:
5. H\aa stad
and perhaps even explain the (visually non-existent) differences between the other four.
P.S. I feel obligated to make sure you really know 2 is wrong unless you really have defined
\aastad. 1 and 4 are better because they are less confusing. A control word “eats” the spaces and also the end-of-line after it, hence 3 and 5 both “work” but for a less obvious reason.
Even though many of us do not use TeX directly, knowing TeX can certainly help you use LaTeX better. For one thing, you can write your own macros.
For many years TeX by Topic by Victor Eijkhout is one of the best—if not the best—reference books on TeX since it is organized by, urr, topic. And here is the good news: Victor has generously put the full text online after the publisher reverted the rights to him. Kudos!
P.S. Reading TeX by Topic by itself can be very unproductive since it’s a reference book. For a book on TeX that you should read cover to cover, nothing beats Knuth’s The TeXbook.
As a manual of geometry and Postscript, the beginning chapters of this book reminds me a lot of my junior school Logo tutorials. But very soon Bill Casselman starts to draw 3D objects in 2D and projection is where the story gets very interesting. (Think how to draw a polyhedron on a piece of paper.)
The book has an online version and a paper edition.
P.S. One tidbit I learned from this book is that doughnut, oh I mean, torus means cushion in Latin. Hehe.
I find this recent book (sort of available online) by Mark Jason Dominus to be very CS-friendly. The reason: Closures!
The Perl Review: Why did you write Higher Order Perl?
Mark Jason Dominus: [...] But I had a few hidden agenda items as well. The book is about how to use closures, and I think there are too many languages around that have no easy way to use closures. Java, in particular, seems to me to be a giant step back towards the languages of the 1970s.
Two interesting tidbits from the book are:
- The term memoization was coined in 1968 by Donald Michie.
- Data marshalling is so named because it was first studied in 1962 by Edward Waite Marshall, then with the General Electric corporation.
In a previous job, I have done a lot of programming that involves data marshalling, now the term finally makes sense!