We describe the cyclic coordinate-exchange algorithm for constructing D-optimal and linear-optimal experimental designs. The algorithm uses a variant of the Gauss-Southwell cyclic coordinate-descent algorithm within the k-exchange algorithm to achieve substantive reductions in required computing. Among its advantages are the following: Candidate sets, which grow exponentially in the number of factors, need not be explicitly constructed or enumerated. Convex design spaces (or mixed convex by discrete design spaces) are handled directly, without the need for sophisticated nonlinear programming routines or candidate-set adjustment. For design problems having 10 or more factors, the reductions in execution time are typically two or more orders of magnitude when compared to standard candidateset- based procedures such as k exchange, yet the designs produced exhibit no loss of efficiency.