Grad Student Eric Allen Books His
Time Well
Most people in academia are familiar with the publishing standard:
earn a Ph.D., obtain a professorship, and write a book somewhere
down the line. Eric Allen has sidestepped that process by authoring
a book, Bug Patterns in Java, while attending graduate school in
the Rice computer science department.
“I was amazed when I learned that Eric was writing a book
in addition to writing a dissertation and working as a teaching
assistant in my software engineering course,” says Professor
Robert “Corky” Cartwright, Allen’s graduate adviser
and leader of the Java Programming Languages Team at Rice. “Eric
is extremely focused in organizing his time, which enables him
to achieve levels of productivity that I have never seen before
in a graduate student.”
In Bug Patterns, published by Apress, Allen presents program developers
with a method for diagnosing and debugging computer programs. According
to Allen, the book is his response to the increasing need for programmers
who are proficient at preventing, diagnosing, and quickly repairing
bugs in computer programs.
“
We need to educate new developers more quickly,” Allen says. “By
identifying common patterns of signaled errors with their underlying
causes and teaching these patterns to new programmers, we can leverage
the experiences of many programmers to improve the effectiveness
of each.”
Allen started writing Web articles for JavaWorld and the IBM developer
Works “Java Zone” in January 2000. After the articles
led to a monthly column, “Diagnosing Java,” Allen attracted
the attention of Gary Cornell of Apress. Cornell encouraged him
to produce a book on common bugs and how to solve them, a recurring
theme in Allen’s online articles.
“
Eric’s book is another example of the culture in Corky Cartwright’s
group that seems to integrate research, teaching, and educational
outreach, to the benefit of all three,” commented computer
science department chair Keith Cooper.
Cartwright intends to use Allen’s book in the future for
his software engineering course. In fact, students attending Cartwright’s
course this spring have the added benefit of having the author
as their teaching assistant.
“
Eric’s Bug Patterns provides compelling justification for
the software engineering principles that I teach,” Cartwright
explains. “If you fail to follow any of them, Eric’s
book provides a graphic illustration of the peril that ensues.”
Allen views his book as a natural extension of his studies. “Graduate
school is primarily about learning to communicate,” he says. “Between
publishing papers, giving lectures, designing posters, writing
grant proposals, etc., a researcher spends the majority of his
time communicating his expertise. Being able to focus intensely
on learning to communicate well—and to work closely with
an adviser like Corky Cartwright, who is so renowned in his field—is
not something you typically gain in industry.”
Allen, who received a bachelor’s degree in computer science
and mathematics from Cornell University in 1997, says his next
challenge is completing his thesis. His thesis topic is focused
on the design and implementation of first-class generic types for
Java. “Basically, it’s about performing much more powerful
automatic checks on programs before they are ever run. We’ve
been able to extend the Java language to include these more powerful
checks without sacrificing the expressiveness or performance of
the language.”
Although Allen reports that authoring a book has not changed his
life much, he finds it exhilarating to see his name on Amazon.com.
Other exciting changes await Allen this spring, when he anticipates
receiving his doctoral degree and he and his wife, Kori, expect
the arrival of their first child.
Allen’s postgraduate plans include looking for a research
position in academia, government, or industry and spending time
with his family. He does anticipate writing a second book to cover
additional patterns and plans to include more discussion about
the development process and the Rice Java Programming Languages
Team’s approach to developing software.
— Donna Jares
|