One CS-related book I’ve enjoyed this summer is as follows:
THE THRILLING ADVENTURES
Interesting & Curious Anecdotes
CELEBRATED AND DISTINGUISHED CHARACTERS
Fully Illustrating a Variety of
INSTRUCTIVE AND AMUSING SCENES;
AS PERFORMED WITHIN AND WITHOUT THE REMARKABLE
Embellished with Portraits and Scientifick Diagrams
It was featured in a segment of the show Science Friday on NPR (National Public Radio). By the way, regarding some prior work by Padua, my family and I love the animated movie The Iron Giant —
(And now I should give a shout out for Vin Diesel!
To indicate to you this book’s nature, I’ll quote from its dustjacket’s front flap:
Meet Victorian London’s most dynamic duo: Charles Babbage, the unrealized inventor of the computer, and his accomplice, Ada, Countess of Lovelace, the peculiar protoprogrammer and daughter of Lord Byron. [...] Complete with extensive footnotes that rival those penned by Lovelace herself, historical curiosities, and never-before-seen diagrams of Babbage’s mechanical, steam-powered computer, The Thrilling Adventures of Lovelace and Babbage is wonderfully whimsical, utterly unusual, and, above all, entirely irresistible.
My local public library (which my family and I also greatly appreciate, by the way) where I borrowed this book categorizes it as a graphic novel. I include a sample of this book’s main content with this posting — in a footnote (;-) below.
* But this book contains much more than typical fictional comic-book panels: while I was perusing this book, I actually spent more than half the time reading Padua’s factual footnotes, endnotes, and appendices: they contain a wonderful selection of primary source material and illustrated explanations which I greatly appreciated for CS — particularly things that were new to me such as Lovelace’s calling card; I’ll show some of these things to you as follows:
- On page 26, the footnote:
What was certainly Lovelace’s original realization was to be the essential root of computer science: that by manipulating symbols according to rules, any kind of information, not only numbers, can be operated on by automatic processes.
[The Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechnism of the engine. Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.
- On page 34, Section 1′s Endnote #4:
Politically radical though he was, Frend was a mathematician so conservative that he managed to write an entire book on algebra (Principles of Algebra, 1796) rejecting the use of negative numbers, and he even wrote a satirical burlesque ridiculing the use of zero. His quotation “we desire certainty not uncertainty, science not art,” is from an objection to the use of general undefined symbols in algebra as opposed to purely numbers, a big subject of debate in mathematics in the 1820s and ’30s. Lovelace was to propose using Babbage’s Analytical Engine for the manipulation of general symbols, a truly radical idea.
- On page 34, Section 1′s Endnote #5:
This is as good a place as any to confront the fraught issue of what to call our heroine. Her name when she was born was Augusta Ada Gordon, as her father was George Gordon, Lord Byron. She was called familiarly Ada Byron (dropping the “Augusta” because she was named after Byron’s half-sister, whom Byron . . . oh, geez, it’s too complicated). She married William King when she was nineteen, becoming Augusta Ada King; then her husband became the Earl of Lovelace in 1838, so then she was Augusta Ada King, Countess of Lovelace, or Lady Lovelace. It is quite incorrect to call her Ada Lovelace, but everybody did, and still does.
- On page 36, Section 1′s Endnote #10:
Shorthand of this period, by the way, has an intriguingly codelike look — like this from Thomas Gurney’s Bracygraphy: or, An Easy and Compendious System of Short-hand, 1835:
Viewing Gurney’s book, some text corresponding to this short-hand is as follows: “My Lords and Gntlmn, The jst cnsrn, which I have flt in my on brst, on the sdn deth of the lat King, my ryl grandfathr, mks me not dot, but you mst al have been dply afctd with so sver a los…”
- On page 77, the footnote:
Lovelace is equipped with a handheld puncher [in a panel drawn on this page] for emergencies [to patch code ;-] . Herman Hollerith, who first effected the use of punch cards in computing, was inspired by railway-ticket punches such as Lovelace has here; the first punch cards for analyzing the U.S. Census of 1898 were punched by hand until the repetitive-strain injuries to the tendons of the operators, so familiar to modern computer workers, necessitated Hollerith inventing a keyboard puncher.
- On page 78, the footnote:
Lady Lovelace declared that the Engine could do only what it was “ordered to perform.” Alan Turing (1912-1954), the great theorist of twentieth-century computing, argues back in his Computing Machinery and Intelligence:
LADY LOVELACE’S OBJECTION. Our most detailed information of Babbage’s Analytical Engine comes from a memoir by Lady Lovelace. In it she states, “The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform” (her [emphasis]). The view that machines cannot give rise to surprises is due, I believe, to a fallacy to which philosophers and mathematicians are particularly subject.
- On page 90, part of Section 2′s Endnote #2 (click to view larger):
- On page 277, “M.L.”‘s Personal Recollections of Babbage:
One day [. . .] when he had come to see me, he had also forgotten his cards, so he took a small brass cog-wheel out of his waistcoat-pocket and scratched his name on it and left it for a card!
- On pages 281-82:
- Appendix II comprises history and explanations of the workings of the Analytical Engine such as its Store (memory), Mill (≈ALU), and punch cards, with illustrations of the gears etc. and associated historical material such as 1890 U.S. Census card reading and Colossus paper tape reading. On page 309 is some material as follows:
Babbage [. . .] seemed to have paid almost no attention to software, leaving that to Lovelace (and some of his other assistants through the years) — the scattering of programs in Lovelace’s paper is pretty much all there is. [. . .] Almost a hundred years after Babbage first thought of making his Difference Engine eat its own tail, and Lovelace proposed that it could play symbols beyond the realm of numbers, mathematician Alan Turing described another imaginary machine, the Universal Computer. Turing didn’t bother with the engineering and hardware specifics that Babbage spent so many decades on, picturing instead an abstract, formless device, a platonic form of a computer. Turing’s Universal Machine would have some way to “read” and “write” data, a way to move the data in and out of a storage system, and a code of symbols by which the computer could instruct itself. The Turing Machine is still the standard against which all computers are measured, and by that standard the Analytical Engine was the first computer.
I enthusiastically recommend that you check out Sydney Padua’s The Thrilling Adventures of Lovelace and Babbage. You should appreciate it, and your students should benefit from it.
* Here in my footnote (;-) I’ll show you some of The Thrilling Adventures of Lovelace and Babbage‘s nominally main content, comic-book panels (click to view larger):
This example brings up another reason why I appreciate this book: I had not been conscious of the rationale for the name “Difference Engine” until I saw this material, though I can remember greatly appreciating the method of differences back when I was around 8th grade — I thought that method was very cool. Now, since it’s coming up like this, I feel like sketching it as follows in this footnote. (If the method of differences isn’t new to you, I hope this will give you a warm, fuzzy feeling of remembering it back in high school or middle school like me…
For an example, consider: what polynomial p(n) yields the following sequence of values?
n | 0 1 2 3 4 5 6 . . . -----+-------------------------------------- p(n) | 6 24 60 120 210 336 524 . . .
Well, calculate the differences between successive values of p(n), and then the differences between those resultant successive values, and then the differences between those successive values, and so on:
6 24 60 120 210 336 524 . . . \ /\ /\ / \ / \ / \ / 18 36 60 90 126 168 . . . \ /\ /\ /\ / \ / 18 24 30 36 42 . . . \ /\ /\ /\ / 6 6 6 6 . . . \ / \ / \ / 0 0 0 . . .
Then, it turns out that you can infer some things about p(n) as follows (I’m not explaining everything here, but you can figure out some things or look up…):
- The degree of
p(n)must be 3, i.e.
p(n) = c0 + c1*n + c2*n² + c3*n³.
6 = c0 + c1*0 + c2*0 + c3*0
24 = c0 + c1*1 + c2*1 + c3*1
60 = c0 + c1*2 + c2*4 + c3*8
- . . .
18 = c1 + c2 + c3
36 = c1 + c2*3 + c3*7
- . . .
6 = c3*6
Continuing, you can obtain the values for c0, c1, c2, and c3; i.e., you can solve for what p(n) is.
Lovelace's comment "
Δ7Ux = 0" means 0-s are obtained by level 7.
P.S. Do you have recommendations for other new books which might interest SIGCSE?