Abstract
This article describes an effective algorithm for constructing optimal or near-optimal incomplete block designs with up to 100 treatments. The algorithm is found to perform well when evaluated against 874 optimal or near-optimal incomplete block designs in the literature. Examples that motivated the development of the algorithm are given.