Featured Engineer

Interview with Allen B. Downey

Allen B. Downey

Allen B. Downey - Professor of Computer Science at Olin College

  • Image taken by MJ Maloney
How did you get into electronics/ engineering and when did you start?

The first computer I used was the DECsystem-20 at Wellesley College, when I was 12 years old. We dialed in with an acoustically coupled modem and played Wumpus. In high school, I had a Commodore 64. I designed a font to display the Greek alphabet, used it to study ancient Greek vocabulary, and won a ribbon in the National Greek Exam.

What are your favorite hardware tools that you use?

I’m mostly a software person, but I am very interested in the Arduino. I subscribe to Make magazine, and every issue makes me wish I was better at soldering.

What are your favorite software tools that you use?

I do almost all of my work with the Ubuntu distribution of GNU/Linux. I started out writing everything in C, but now Python is my go-to language, with Java a distant second. For my books I use LaTeX, xfig, and Inkscape. Lately I’ve been using more web apps like Google Docs and Sites.

What is the hardest/trickiest bug you have ever fixed?

When I was a Research Fellow at the San Diego Supercomputer Center, I was working on a job scheduler for the Cray T3D. We ran into a bug that caused the whole machine to crash, so that was pretty hard to track down, because we got no debugging output, just a crash. At one point, I was sure I had fixed the problem, I got permission to run the program again, and it crashed again. I was baffled. It turned out that the bug was fixed, but we accidentally ran the old executable again, not the new one.

What is on your bookshelf?

Right now I am teaching statistics, so I am reading

  • McGrayne, The Theory That Would Not Die
  • Rosenhouse, The Monty Hall Problem
  • Salsburg, The Lady Tasting Tea
  • Mlodinow, The Drunkard’s Walk
  • Mosteller, Fifty Challenging Problems in Probability
  • Gelman and Nolan, Teaching Statistics: A Bag of Tricks
  • Jaynes, Probability Theory
  • MacKay, Information Theory, Inference and Learning Algorithms
Do you have any tricks up your sleeve?

For statistical projects I find myself using simulation and Bayesian methods. A lot of standard statistical techniques are really computational shortcuts, which is less important when computation is cheap. Bayesian methods are more computationally expensive, but you can get the answers you want more directly. I wrote about some examples in my blog, allendowney.blogspot.com.

Can you tell us about publishing your own books?

When I wrote the Java version of How to Think Like a Computer Scientist (in 1999), I only had 14 days, so I wrote 10 pages a day and then sent it to the printer. At the same time, I put an electronic version on my web page under a free license that allows readers to copy, modify and distribute it. Jeff Elkner took advantage of the license and translated the book into Python, so I actually learned Python by reading my own book.

The Python version turned out to be very popular, so in 2001 I created Green Tea Press and started publishing my books, mostly through Amazon and college books stores.

Now I have five versions of How To Think, and five other books. Two of them have been picked up by “real” publishers—-Cambridge University Press and O’Reilly Media—-some of them are for sale through Amazon, and some are electronic only.

What has been your favorite project?

Working on Free Books has been great. When I started, I didn’t know if anyone would really make modified versions, so the results have been amazing. People have translated the books into French, German, Spanish, and Chinese. And they have done versions in Ruby, Eiffel, and OCaml. I can’t keep track of them, and I don’t even try.

What I’ve learned is that a Free Book is not just a book with a different license; it is a fundamentally different product, and a different value proposition for readers. It turns readers into editors, translators, collaborators, and authors.

What direction do you see your business heading in the next few years?

When I started Green Tea Press, mainstream publishers weren’t interested in Free Books, and there was not as much support for self-publishing. So I ended up doing advertising, ordering, shipping, billing, accounting, and everything else.

Now publishers are starting to understand how Free Books work; for example, working with O’Reilly has been great. And companies like Amazon and Lulu are great for self-publishers. So I am happy to let them take over the things I don’t want to do, and I can focus on writing.

What are you currently working on?

I’m working on a book called Think Complexity. It’s about Complexity Science, which is an interdisciplinary field that includes small world graphs, scale free networks, Zipf’s law and long-tailed distributions, self-similarity, fractals, spectral analysis, self-organized criticality, cellular automata, randomness and order, stochastic modeling, discrete-event simulation, genetic algorithms and memetics, agent-based models, ant colonies, traffic jams, strange loops and consciousness.

So it’s an interesting collection of topics! The book will be published by O’Reilly in January, but you can read the current draft at thinkcomplex.com.

What challenges do you see in engineering education?

The mismatch between the students and the curriculum: students in college now grew up in a world where information is ubiquitous; every cultural artifact in the history of the world is a click away (well, almost). But a lot of classes are run as if there’s only one copy of the book.

There’s too much to learn in four years, which means we need to make smart decisions about what we can stop teaching. But if you try to take anything out of the curriculum, you get a fight from professors and practicing engineers.

What changes would you like to see in the engineering curriculum?

A lot of schools are moving in the right direction, but I would like to see it go faster. We have to stop using math and physics as a barrier. You can do a lot of exciting engineering starting in the first semester, and use that to motivate exploration in math, computation and science.

And we need to broaden the definition of engineering. Engineers can’t wait for someone to tell them what to work on. They have to understand people, identify opportunities and formulate problems; and once they have crafted a solution, they have to know how to get an idea out of the lab and into the world.

Any hobbies outside of work?

I ran the Boston Marathon this year in 3:45, and in May I ran a 5K under 20 minutes for the first time. My wife and I have two daughters, ages 8 and 5, so that keeps us busy!

Previous Spotlights

Click Here