George T. Heineman

George T. Heineman

George T. Heineman is an Associate Professor of Computer Science at WPI. His research interests are in Software Engineering. He co-edited the 2001 book "Component-Based Software Engineering: Putting the Pieces Together". He was the Program Chair for the 2005 International Symposium on Component-Based Software Engineering.

Aside from his professional pursuits, George is an avid puzzler. He invented Sujiken®, a Sudoku variation played on a right-triangle arrangement of cells in which numbers cannot repeat in a horizontal row, vertical column or diagonal in any direction. See more at

Algorithms in a Nutshell Algorithms in a Nutshell
by George T. Heineman, Gary Pollice, Stanley Selkow
October 2008
Print: $49.99
Ebook: $39.99

Working with Algorithms in Python Working with Algorithms in Python
by George T. Heineman
July 2014
Video: $169.99

Recent Posts | All O'Reilly Posts

George T. blogs at:

May Column: Multi-threaded Algorithm Implementations

June 19 2009

Many of the algorithms presented in the book can take advantage of multi-core chips by using threads. In this column we explore effective uses of threads and report on situations where using threads will not help. read more

April Column: Computational Geometry

May 15 2009

Computational Geometry is the study of geometric algorithms and the data structures that enable their efficient implementation. We present algorithms that solve the Line Segment Intersection problem and describe challenges in validating their implementation read more

March Column: Network Flow Algorithms

April 06 2009

Many real-world transportation networks (i.e., highways, power grids, water subsystems) can be represented as Flow Networks. The Ford-Fulkerson technique describes an approach to solve numerous cost optimization problems. read more

February Column: Improving Performance Of Algorithms

March 03 2009

You need two different techniques for optimizing the performance of an algorithm. Sometimes you improve upon the algorithm; sometimes you improve the way the algorithm is implemented. Both techniques are essential to applying algorithms properly. read more

January Column: Algorithm to Solve FreeCell Solitaire Games

January 18 2009

We describe how to use recursive backtracking to solve a search problem. We design a staged deepening algorithm to solve FreeCell solitaire games. This material is not drawn from the book, but rather helps to place the graph searching algorithms in a better context. read more

December Column: Searching Algorithms

December 04 2008

In the second monthly column for the blog associated with the Algorithms in a Nutshell, we investigate searching algorithms and reaffirm the ability for hash-based search to provide an efficient implementation. read more

November Column: Welcome to Algorithms in a Nutshell

October 25 2008

This is the first of a series of monthly columns in the blog associated with the Algorithms in a Nutshell, published October 2008 by O'Reilly Media, Inc. All algorithms are fully implemented and available in the online code repository associated with the book. read more

Recent Posts | All O'Reilly Posts

"It must be noted that much of this book is covered in some way by university-level computing degrees. Nonetheless, one tends to forget the principles and the algorithms themselves. One develops one's handful of favourites. This book helps one to keep playing with a full deck."
--Al Lukaszewski,

"This book is a "keeper" - make room for it on your bookshelf as it's essential reading."
--Mike James, I Programmer

"Overall, this is a great book for developers looking for more tools in their arsenals. As you might suspect, this is not really a book to read cover to cover unless it's for a class. But it provides a clear and well laid out approach to some of the many algorithms that exist today in computer programming. It isn't an exhaustive list, but it certainly provides a great cross-section from which you could continue your search."
--Brian Fitzpatrick, Blogcrititcs Magazine