0. Intro 🗿
I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun.
— Alan J. Perlis
A most intriguing—and confounding—book is CLRS, the much-talked-about book on algorithms, one that’s heavily geared toward researchers’ needs, and which has come to be known simply by the initials of its four co-authors. Titled Introduction to Algorithms, and now in its fourth edition, it is published by the venerable shop that is The MIT Press.
CLRS is a monumental work, being a veritable goldmine for researchers, but a perennial landmine for (unwary) students—students who approach it with the hope of learning algorithms, that is—with correspondingly explosive and dismally obliterating consequences for the latter.
I think you sense where we’re going: Let’s make sure nobody gets buried under any monument. And we’ll look for the upside with an eye on keeping the study—and practice—of algorithms a fun pursuit. It doesn’t have to be root canal, amirite?
Intrigued? Read on.
This stuff—the relevance, or otherwise, of books and such to the lives of everyday programmers and other tech types—goes to the heart of how life might well get (unwittingly) drained out of algorithms. More importantly, how does one avoid such a fate: We simply don’t do gloom-and-doom around here. Oh no, none of that.
Looks like we’ve got some unpacking to do, amirite? With a ton of ideas already jostling about, seeking clarity, the thing to do is to unpack them together, you and I.
1. With A Straight Face 🎭
A fine quotation is a diamond on the finger of a man of wit, and a pebble in the hand of a fool.
— Joseph Roux
But first things first: Check the Easter Island-like monumental bust pictured above. That’s my pal, Long Face. So I had to commission a small commando operation to snag Long Face from a neighborhood garden, namely mine. Hush now. You’re not a tattletale, are you?
Not a few moments had passed after my putting Long Face alongside CLRS—juxtaposition being the fancy word for that—than his face grew measurably longer. Evidently, our pal had had some prior exposure to CLRS, none of it too endearing. Oh my!
And that’s how Long Face came to be chosen as the poster child for this essay. You see, our pal had fashioned a life revolving around algorithms, devoting his days and nights to the study of algorithmic coolness.
But then came that ill-starred day when CLRS crossed Long Face’s threshold. And needless to say, given that Long Face had always been an oh so ardent student of all things algorithms—not a researcher, mind you—everything went south from there. His unalloyed, pristine school of thought had led him to a solid algorithms education based on prep stuff such as that featured at the coordinates below:
But this CLRS, with its intimidating mathematical machinery—researchers take note—was a bit too much for poor Long Face.
2. We Got… Um, Color 🎪
There’s hope a great man’s memory may outlive his life half a year.
Anyhow, with CLRS now into its fourth edition—and colorization now featured prominently as a selling point—what do we have on our hands?
Alas, it is still algorithms with the life drained out of them, albeit in (flatline) color this time. Oh, it comes in colors everywhere, oh everywhere, just like a rainbow; hey, did anyone catch the reference to that Rolling Stones song with the rainbow and colors theme?
Recall how the colorization of that canonical movie, The Wizard of Oz, is a legend unto itself. The same, when applied to CLRS, a bit less so. You see, analogies can take one only so far—and this is not an especially pretty one, though it’s the one that leapt to mind—is of the meme that’ll have you put lipstick on the pig. Sigh, all in a day’s work, amirite?
Let’s lunge for an analogy here. Consider how, outside of its two principal authors—Bertrand Russell and Alfred North Whitehead—how many people really, really understood what the Principia Mathematica was all about? Five? Ten, tops? I’m sure CLRS has its ardent adherents; researchers all, in all likelihood. I mean, the copious references and mathematical rigor is great. But when it comes down to the business of learning algorithms, students—and other mere mortals—would be best served by looking elsewhere.
In other words, here—in CLRS land—be dragons everywhere, oh everywhere, for newcomers, that is. Oh yes, they got the red and black trees in color all right, but with the selfsame rigor mortis attendant on previous (oh so black and white) editions. Thank goodness, as I was muttering under my breath just the other day, that they did not consider featuring daguerreotype to illustrate algorithms. Go, creativity.
Look, the authors are to be commended for the monumental effort that they have been putting in over the years. It’s just that the material is way too opaque for the mathematically uninitiated: In a remarkably candid self-admission, which I recall from Professor Cormen’s slender volume titled Algorithms Unlocked, that one decidedly aimed at beginners, the highly learned professor—the “C” in CLRS—talks about how the book reviewers of CLRS at The MIT Press had given feedback to him that the material in the manuscript was too technical for students at MIT. Now fancy that.
3. Getting Concrete 🎃
And out there in that great big concrete jungle, I wonder how many others there are like me. Poor bedeviled guys on fire with thirst.
— Charles Brackett
Now give me something concrete, you say. Well, taking a cue from that imposing Greek sigma letter featured above, the one engraved in concrete, let’s just say that there’s a kindler, gentler approach to learning algorithms than what CLRS offers.
Please know that this is not meant—by any stretch of the imagination—to be a takedown of CLRS. To the contrary, and as I’ve gone to great lengths to acknowledge, the authors of said tome are to be commended for the monumental effort that they’ve been putting in over the years. Researchers rejoice; learners, (much) less so.
Let’s not beat about the bush: The material in CLRS is way too unfriendly for the uninitiated.
Interestingly enough, a duck has lined up to check the chiseled-in-concrete sigma, amirite?
4. But, Compared To What? 🍄
I compare human life to a large Mansion of Many Apartments, two of which I can only describe, the doors of the rest being as yet shut upon me.
— John Keats
Concrete and ducks and all, the question remains, though: Compared to exactly what does CLRS come out short? Glad you asked. And this one’s simple. All I have to do is point you in the direction of algorithms texts that are eminently friendly for the student:
Aimed as they are for learners, the mileage of researchers may (well) vary. Or, as they, YMMV.
But wait a second: Are we ready for a hint from the playbook of ace sleuth Tintin, he who has barged into the scene pictured above? And we hear him say, his mouth wide agape, quoting from a fellow—and equally eminent—sleuth on a predicament:
“Data! Data! Data!” Sherlock Holmes cried impatiently. “I can’t make bricks without clay.“
— Arthur Conan Doyle (in The Adventure of the Copper Beeches)
You see, it’s elementary: Keep the material friendly for learners of algorithms. (And if a book is aimed at researchers, please say so; please don’t be disingenuous about advertising who a given book’s audience is. Are learners the audience, or researchers?)
5. And The Plot Thickens 🎫
The life of every man is a diary in which he means to write one story, and writes another; and his humblest hour is when he compares the volume as it is with what he vowed to make it.
— James Barrie
Elementary indeed, except that poor Tintin was heading in the wrong direction a few moments ago, sigh, back when we were contemplating whether we were ready for a hint from the playbook of our ace sleuth. Oops!
But not to worry: We now have our star sleuth looking some upright, algorithmic material straight in the face, as in the pic above, amirite?
The plot thickens, and the algorithmic picture grows richer by the minute. (Check that globe-enshrined dandelion just to Tintin’s left-hand side.) And with everyone—Tintin, duck, dandelion, and Long Face—peering intently in the direction of algorithmic coolness, we’re ready to bring on-stage some splendid volumes on the subject of algorithms.
6. Check These Out, For Example 🐳
It has often been said that a person does not really understand something until he teaches it to someone else. Actually a person does not really understand something until he can teach it to a computer, i.e., express it as an algorithm… The attempt to formalize things as algorithms leads to a much deeper understanding than if we simply try to comprehend things in the traditional way.
— Donald E. Knuth
And there you have it: A handful of splendid volumes on the subject. (For a whole lot more, check the two linked references from a few minutes ago, repeated here for your handy reference:
At this time, we thank Tintin, duck, dandelion, and Long Face for their rapt attention in this matter of being our captive audience.
Check that: Tintin gets to stand on his soap-box.
Wait, what? That’s no soap-box! That’s a nifty Ahmad Tea-box… What could be brewing there here for us? And while Tintin ascends to the Pantheon, we mere mortals have plenty of (algorithmic) coolness right here on our hands, no?
7. Always, Keep Going Back To The Basics ☕
I got into my bones the essential structure of the ordinary British sentence—which is a noble thing….
— Winston Churchill
One thing’s for sure: It pays—it will always repay—to keep going back to the basics, to keep going back to the classics. Keep looking for that friendly text on algorithms that resonates with you, the one which lights your spark.
And what do you know? Featured above, standing right behind Tintin’s outstretched raincoat is a friendly volume titled Algorithms Unlocked by none other than Professor Cormen. (You’ll recall him as the “C” in CLRS.) You may notice it being spiral-bound; its pages had fallen apart from overuse or something.
Speaking of the fine professor, I invite you to check out his sincere review (of CLRS) on Amazon.com.
8. Algorithms Unchained, Yay! 🚧
Scorn not the sonnet; Critic, you have frowned,
Mindless of its just honors; with this key
Shakespeare unlocked his heart.
— William Wordsworth
Interestingly enough—and check Professor Cormen’s Algorithms Unlocked pictured above, Polaroid-style, and from a time when said book’s pages were still intact—the fabled Towers of Hanoi make a guest appearance, amirite?
One of these days, let’s you and I chat some about a certain package delivery company, you know the one with those inimitably endearing, chocolate-brown trucks, and really about how they go about finding near-optimal routes for their trucks; that’s algorithms at work, amirite? (TSP, anyone?)
9. A Happy Reunion 🍎
Live now, believe me, wait not till tomorrow;
Gather the roses of life today.
— Pierre de Ronsard
Finally, we have a reunion of sorts, one featuring the following ragtag, motley crew: Tintin, duck, dandelion, cardboard house and, most of all, our pal, Long Face. The only thing missing is algorithmic stuff. But we’re good there, having shared a boatload of learner-friendly algorithms resources, amirite?
Life that might have otherwise gotten drained is resurgent, reveling in the glory of motivation, all revved up. Check the river teeming with life, coming right next up.
10. Life Is Coming Back, The River Flows Again 🌊
Th’ imperial ensign, which, full high advanc’d,
Shone like a meteor, streaming to the wind.
— John Milton (in Paradise Lost)
Life is good. A river runs through it, one coursing with life. A thing well begun is half done, they say, so let’s echo the quote from Alan Perlis, the one with which we had set the tone of this essay at the outset: “I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun.”
And we’re no stranger to that tone, amirite? Hey, that’s the bedrock of the philosophy here at Programming Digression: Keep the fun in programming and stuff like that.
Oh, and wedging in a (last) word, edgewise: Look for patterns and, really, look for the unreasonable effectiveness of patterns at work. That study will enrich you for a lifetime.
With that, I thank you for checking an exploration of why it’s “extraordinarily important that we keep fun in computing,” algorithms and all. See you next time.
Meanwhile, we would love to hear from you, by way of comments and stuff like that.