Jeff Duntemann's Contrapositive Diary Rotating Header Image

September 20th, 2016:

It’s Here: Learning Computer Architecture with Raspberry Pi


I had just tossed a salmon filet on the barbie yesterday evening when the UPS man rang the doorbell. There it was: an author case of a book I signed in 2013, finished in early 2014, and have been waiting for ever since. I confess there were times I approached despair and thought the publisher might cancel it, but the concept had legs, and (more important than legs) Eben Upton was behind it.

It’s not all my own work. My co-authors include Ralph Roberts, Tim Mamtora, Ben Everard, and Eben himself. I wrote Chapters 2-7, which entailed about 100,000 words and 90 hand-drawn technical figures. (My chapters come to about 300 pages out of the book’s 507.) Eben wrote a few thousand additional words in my chapters on things that I don’t know well, like compiler internals. (I’m sure he contributed to other chapters too.)

The publisher hasn’t done an especially good job positioning the book, and it’s already being reviewed badly by people who thought it was something other than what it is. So let me position it for you.

Learning Computer Architecture with Raspberry Pi is an introduction to computer architecture for senior high students, and bright junior high students. It’s not a university-level treatment, though it might have application in community colleges. Like the Raspberry Pi itself, it was designed to be affordable to young people, and so it’s not 1,000 pages long. The cover price is $30 (exactly, no .95s or .99s!) and you can get it on Amazon for the inexpensive if peculiar sum of $18.07. It’s not a standalone manual for the board, nor programming the board, nor learning any given language or operating system. It’s about what all the pieces are, and how they work together.

This is important. Today’s young people are digital natives, in that there were cheap desktop computers, lots of them, since before they were born. Kids who are interested in computers have studied and experimented with those parts of the computer that interest them. This is the sort of learning that trips up autodidacts, since it runs very deep in places, but is shot full of holes, some of them huge. The way to fill those holes is to take a survey course, and that’s precisely what this book is for. The course syllabus itself may not exist yet, but I have a hunch that a lot of educators in a lot of places are already hard at work on curricula using the book as the primary text.

People who have read my other books will recognize the approach I took in these chapters: Start at Square One, at the absolute beginning, and tell readers up front that they can skip a chapter if they discover early on that they’re already familiar with the material. Chapter 2 is titled “Recapping Computing,” which goes back to the idea of “a box that follows a plan,” and continues from there. Some people will skip that chapter. Many won’t. A few may be annoyed that it exists at all. (There’s no pleasing some people.) Once you get past Chapter 2, each chapter is much more focused, and covers a specific continent on the larger world of computing:

2: Recapping Computing

3: Electronic Memory

4: ARM Processors and Systems-on-a-Chip

5: Programming

6: Non-Volatile Storage

7: Networking

Chapters 8-12 were written by others, and provide a Raspberry-Pi specific slant on things, especially graphics and I/O. I had not seen those chapters until yesterday, so I can’t say a whole lot more about them just yet. A cursory glance suggests that you won’t be disappointed.

That’s pretty much the story. I had something additional in mind that I didn’t talk about while I was writing my chunk of the book back in 2013: homeschooling. I wanted the treatment to be so clear and comprehensible that parents could use the book in a homeschool environment. I think I succeeded, but I won’t know until I hear from a few homeschoolers. Sooner or later, that’ll happen.

I needed a book like this back in 1970, but of course, it didn’t exist. Computers themselves were mysterious, and the computer gatekeepers seemed to like it that way. Not me. Nothing should stand between people who want to learn and what they want to learn. Nothing. If my lifetime mission as a nonfiction writer could be stated in just a few words, that would be it. I loathe elitism, credentialism, and exclusive-club-ism. I learned stuff, I wrote books about it, and now you can learn it too. If you haven’t started learning about computers yet, well, this is a pretty good time to start. And forgive me for saying so, but this is a pretty good book to start with.

Go for it!