Introduction

In 1953, when delivering a talk at the Harvard Mathematics Club, mathematician Solomon Golomb [1] defined a new class of geometric figures he named polyominoes. Polyominoes are generalizations of dominoes [2] and have been extremely popular since their use in the game of Tetris [3]. They have also enjoyed a prominent place in the recreational mathematics literature since Martin Gardner further popularized them in 1957.

A polyomino is any connected figure that can be constructed by joining congruent squares side by side. A polyomino formed by n squares is referred to as an n-omino. In the first part of this work, we generate all n-ominoes and extend our method to the corresponding generation of polyiamonds, polyhexes, and polykites [4]. In the second part, we will tessellate rectangles using polyominoes and introduce the family of rep-tiles.

Some sections of this work are ordered so that we can compare performance issues among different computer configurations and also calculate timings for a 2003-vintage model 2.4 GHz personal computer using Mathematica 5.