This thesis presents two methods for initial design propeller optimization using constrained non-linear programming. The process uses the Nelder-Mead simplex algorithm. The Wageningen B-series optimal propeller selection is presented along with the combined annular momentum theory and blade element theory optimization. Both techniques require preliminary hull and engine design characteristics, but do not necessitate extensive background knowledge of propellers and their calculations. A comparison of the two methods shows the combined annular momentum theory and blade element theory optimization produces the more efficient propeller. The optimization programs were designed with a graphic user interface implemented in the programming language Python.