BACK TO THE FEATURE INDEX

Editor's note: Assistant Professor David Hiebeler joined the mathematics faculty at the University of Maine in 2002. Here's how he got there.

In high school, I got a part-time job and bought myself an Apple II+ computer. I was really into computer graphics, and my hometown newspaper even published some of my images. But what really kept my attention was what I thought of as "self-generated computer art." I would write a program that, for example, simulated a bunch of balls bouncing around the screen, with gravitational attractions between them, as well as external forces being applied to them. The balls would bounce around, and on each time step I'd connect them with lines. The thing that fascinated me was that I would specify the initial conditions and some relatively simple rules of behavior, then say "go." I'd get some interesting, complex image that I hadn't predicted.

In college, I read about John Conway's "Game of Life" cellular automaton in Martin Gardner's "Mathematical Games" column in Scientific American. Cellular automata were exactly what I had been looking for, without realizing it: very simple rules applied to a collection of simple entities--like the squares on a grid--which, when following their simple local dynamics, would produce fantastically rich and varied macroscopic phenomena. I spent inordinate amounts of time as an undergrad playing around with cellular automata models and writing simulation software to make it easier for me to study them.

Cellular Automata Machine

A temporary roommate of mine when I was moving to a new apartment was a computer science master's degree student. She told me her advisor had just gotten a new special-purpose computer for simulating cellular automata and didn't really have any students who were good at using it yet. I dropped by and introduced myself; he gave me a copy of the (incomplete at the time) instruction manual, along with a key to the computer room, and turned me loose. The machine was the CAM-6 Cellular Automata Machine, described in the book Cellular Automata Machines: A New Environment for Modeling, by Toffoli and Margolus (MIT Press, 1987). This book and computer were key pieces in shaping the way I perceive the world.

In my perpetual quest for more computing horsepower, I wrote my own low-level networking code to turn a computer lab into a virtual parallel computer to do cellular automata simulations, years before Beowulf clusters of Linux machines came along.

I started contacting a few people who had written papers on cellular automata to see if they had any ideas for interesting summer jobs in that field for undergraduates. Through a series of what seemed like amazing coincidences--although everyone's lives are probably full of such things--I ended up falling into a job at the General Electric Corporate Research and Development Center in Schenectady, New York, quite close to Rensselaer Polytechnic Institute, where I was studying at the time. They had also just gotten a CAM-6 and wanted to hire someone to help them figure out what to do with it. (Those guys later founded a company to build better versions of those computers and brought me along as a co-founder to help with the programming.)

I then wrote to Chris Langton at the Center for Nonlinear Studies at Los Alamos National Laboratory, after reading a couple of his papers, also asking about possible ideas for places to look for summer jobs. He wrote back saying his summer student had just cancelled, and he'd be interested. Shortly after, I was working for him, writing cellular automata software for the massively parallel CM-2 Connection Machine supercomputer they'd gotten.

I worked with Chris for a couple of summers. He was busy creating a new field called "artificial life," involving bottom-up modeling of lifelike phenomena. Along the way, during my days as an undergrad, I wrote a philosophy paper on some of the implications of successfully creating life in a computer, which I eventually got published in a philosophy journal. I also gave a talk about cellular automata at a physics conference; that one ended up being published as a chapter in a nonlinear physics book. And a software review of cellular automata software packages I'd written ended up in a conference proceedings published in a nonlinear physics journal. So I had quite a strange set of credentials for a kid with a B.S. in computer science.

When I graduated with my B.S., my work with Chris led to a job with Thinking Machines Corp., the company just down the road from the Massachusetts Institute of Technology that made the CM-2. Already having used their computers was a nice advantage when applying for work with them. After having enough of that job, I went back to the Santa Fe Institute to work with Chris Langton some more, developing a prototype of some agent-based simulation software called Swarm.

When funding looked like it might dry up on that project, I decided it was time to start looking into grad schools. I knew I didn't want to continue in computer science. I'd done a lot of math as an undergrad, but didn't think I really wanted to be a "mathematician." I wanted to use math and computers as tools, not as ends in themselves. I ended up entering the applied math program at Harvard, thinking I'd do something in mathematical biology, but not sure what yet.

After I began to develop an interest in mathematical ecology, I decided Harvard wasn't the best place for me, so I wrote to some mathematical ecologists whose papers I'd read. They suggested I check out a couple of places, including Cornell. I visited Cornell and fell in love with the place ... all aspects of it really, the environment and the school. I picked up a master's degree from Harvard and moved to Cornell to finish my Ph.D.

Modeling populations' interactions with land-use patterns

While there, I interacted with several people in the ecology department, along with some people in math and other departments such as entomology, natural resources, and biometrics. For my dissertation, I ended up working on lattice-based models of populations on fragmented landscapes. The model was really intended to elucidate how populations would react to changing land-use patterns and how that depended on the distances the organisms moved. But underneath, it was still really a cellular automata model, with a few small changes. I was surprised sometimes when I realized I was still working on systems very much like what had captivated me since I was a teenager.

Interacting with the biologists--especially David Winkler, an ornithologist and the co-chair of my committee--was a very rewarding experience. I had one desk in the ecology department and another one in the Center for Applied Math, so I got to hang out in two worlds. Although I often felt like a bit of a stranger in both worlds, I was also welcomed by both groups, and it was nice to have the diversity of experience of moving between the groups. I like to do different things to break up the monotony.

That aspect of my personality also led to me publishing a couple of children's short stories in Chinese. While working at that computer job in Boston, I wanted to do something in my spare time that was as far removed from math/computers/science as possible, since the job wasn't all that exciting. So I decided to learn Chinese. I took a little evening starter class at the Boston Language Institute, then studied it on my own for about a year and a half, and finally managed to squeeze in one semester of second-year Chinese while I was at Harvard.

Some years later I saw a Chinese children's magazine which sometimes printed submissions from kids. I figured if the kids could do it, I should be able to, and gave it a shot! I cleaned up a little fairy tale about a monkey I'd written for the class at Harvard (I enjoy a little creative writing now and then) and sent it to the magazine, and they published it, along with my photo. A couple of years later, I sent another one, this time a true story about my encounter with a deer when I was growing up, and they published that one, too. I guess that only made my credentials that much stranger, but I always get a lot of comments about it (including when I interview), so not only was it fun to do, it did maybe help a little bit in various ways as well.

Upon finishing my degree at Cornell, I was so in love with the place I really didn't want to leave, but it didn't look like I'd be able to land a tenure-track job in any department there, so I started considering other options. I did, however, land a 3-year Visiting Lecturer position, so I had some time to figure out my next step.

In my second year, a position in the math department at the University of Maine opened up, and they seemed interested in someone doing interdisciplinary stuff. The University of Maine also seemed to have a good biology program, so I figured there would be plenty of biologists to interact with. I pursued the job--turning down another offer along the way, which was probably insane given the tight job market--and ended up getting an offer.

Now that I'm here, there are folks in many departments that I'm working with: resource economics, marine sciences, computer science, physics, and more.

Keep your eyes open and mess around

I really have to say, the huge amounts of time I spent just exploring models in my spare time as an undergraduate really led from one point to another, down the path that I am following today. I always encourage students to just keep their eyes open for something that seems interesting, and when they find something, mess around with it in their spare time as much as they can, and try to maybe find a faculty member interested in interacting with them. I also advise students to go around knocking on doors to see if there are any opportunities. I bugged everyone I could think of as an undergraduate looking for projects to work on, and occasionally got lucky.

Practically every job I had was the result of me actively looking for any chance I could find to work on interesting things, although admittedly I had doses of good luck at just the right times. I also did a ton of independent-study courses, to work on various projects with faculty in physics, philosophy, computer science, and chemistry while I was an undergraduate. Faculty generally love to have motivated students around. Now, I'm on the other side of the table, so I try to provide opportunities to the students around me!

Sometimes I stop and reflect on what I'm doing, and wonder, for example, how I ended up building agent-based models of lobster fisheries. But then I realize it's who I've always been--studying artificial worlds (usually inside a computer) to try to understand the world around me.