Jeff Edmonds

Computer Science Professor Jeff Edmonds’ wide-ranging research projects have produced an extensive list of published papers, journals, technical reports, and, in 2008, a textbook for his intermediate algorithms course.

Professor Jeff Edmonds, who is a part of a strong Computing Theory Group at York, didn’t set out to write a textbook. When he first began teaching, however, he found that he was not a particularly good at it and many of his undergraduate students were lacking the required fundamental skills. “The hard part was the huge gap between how easy I found the material and how overwhelmingly hard they found it. The ongoing struggle was to find out what that gap was and how to make it narrower. It turned out that we had completely different ways of thinking about the material. The students need to be retrained to think abstractly.” What didn’t help was that the existing material was too focused on concrete polished algorithms and polished proofs, and lacked step by step explanations of how to produce this work oneself. Towards this goal, Edmonds started writing notes and teaching supplements as he ran to class. After ten years of hard work on them, they had grown. Somehow Cambridge University Press found them and asked if they could publish them. After a great deal of work polishing, How To Think About Algorithms was published (Cambridge University Press, 2008).

Edmonds explains, “Although solving problems does require brute force, hard work and attention to detail, the insight and understanding comes from somewhere in the subconscious. The subconscious, however, does not think in Java code. It requires abstract thinking.” This is what Edmonds tries to encourage with his textbook. Temporarily putting aside computer code in favour of using analogies such as fairy godmothers, little birds, and friends serves to train the students in a way of thinking about an algorithm that is better suited to daydreaming or chatting to a friend about it while on the subway. Edmonds believes this opens up students to a way of thinking about algorithms that ensures the ‘core’ of the algorithm is correct from the outset. He tries to get them to appreciate that this is not just an esoteric theory course, that not just the topics covered, but this whole new way of thinking is hugely useful in real-world scenarios. By raising their comfort level, Edmonds tries to instill in the students a love (or at least an appreciation) of the material.

His text has been widely praised for its innovative approach, called “a must-read for every teacher of algorithms” (SIGACT News), as it “leads an apprentice from knowing how to program to understanding deep principles of algorithms” (Times Higher Education Supplement).

Edmonds approaches his own research in a similar, organic way. Whether the problem involves scheduling, time-space tradeoffs, or data transmission, it first must be held as an abstract concept. “For research, I have to get kind of addicted to a problem. It has to come to me, stay in my brain, circulating around for days, months. I don’t know what makes me hooked on this versus that, just whatever catches my fancy.”

Collaboration is also key, as seen in his extensive work with Kirk Pruhs of the University of Pittsburgh on the topic of cake-cutting and resource allocation. When it comes to investigating a new problem, Edmonds believes “the most useful thing is having someone else around to talk to about it.” The depth and breadth of his research is a testimony to both his curiosity and his diversity of research partners. When asked about future research projects, Edmonds replied that he would follow whatever caught his interest next. “Industry always has problems that need to be solved, and no one really knows from which avenue the solutions might come or what might achieve the next breakthrough…”

“Why do I do it? Because it’s fun.”

[YORKwrites would like to thank Patrick Russel for providing this profile, and Ricardo Laskaris for his help with the interview process.]