Abstract
A $$ {\em covering design}, or {\em covering}, is a family of $k$-subsets, called blocks, chosen from a $v$-set, such that each $t$-subset is contained in at least one of the blocks. The number of blocks is the covering's {\em size}, and the minimum size of such a covering is denoted by $C$. This paper gives three new methods for constructing good coverings: a greedy algorithm similar to Conway and Sloane's algorithm for lexicographic codes~\cite{lex}, and two methods that synthesize new coverings from preexisting ones. Using these new methods, together with results in the literature, we build tables of upper bounds on $C$ for $v \leq 32$, $k \leq 16$, and $t \leq 8$.%