The objective of this paper is to compare three optimization-based methods for solving aerodynamic design problems. We use the Euler equations for one-dimensional duct flow as a model problem. The optimization methods are (i) the black-box method with finite difference gradients, (ii) a modification where gradients are found by an algorithm based on the implicit function theorem, and (iii) an all-atonce method where the flow and design variables are simultaneously altered. The three methods are applied to the model problem and compared for efficiency, robustness, and implementation difficulty. We also show that the black-box (implicit gradient) method is equivalent to applying the "variational" or "optimal control" approach to design optimization directly to the discretized analysis problem, rather than to the continuous problem as is usually done. The black-box method with implicit gradients seems to provide a good compromise of features, and can be retrofitted to most existing analysis codes to turn them into design codes. Although the all-at-once method was found to be less robust than the black-box methods, when it succeeded it was considerably more efficient.