dsoa: the implementation of a dynamic system optimization algorithm This paper describes the ANSI C/C++ computer program dsoa, which implements an algorithm for the approximate solution of dynamics system optimization problems. The algorithm is a direct method that can be applied to the optimization of dynamic systems described by index-1 differential-algebraic equations (DAEs). The types of problems considered include optimal control problems and parameter identification problems. The numerical techniques are employed to transform the dynamic system optimization problem into a parameter optimization problem by: (i) parameterizing the control input as piecewise constant on a fixed mesh, and (ii) approximating the DAEs using a linearly implicit Runge-Kutta method. The resultant nonlinear programming (NLP) problem is solved via a sequential quadratic programming technique. The program dsoa is evaluated using 83 nontrivial optimal control problems that have appeared in the literature. Here we compare the performance of the algorithm using two different NLP problem solvers, and two techniques for computing the derivatives of the functions that define the problem.