Optimization is of fundamental importance in virtually all branches of science and technology. As a consequence, optimization methods find their applications in numerous fields, starting from, e.g., network flow and ranging over shape optimization in engineering to optimal control problems. This course provides an introduction into the most important methods and techniques in discrete and continuous optimization. We will present, analyze, implement, and test -along selected problems- methods for discrete and continuous optimization. Particular emphasis will be put on the methodology and the underlying mathematical as well as algorithmic structure. Starting from basic methods as the Simplex method, we will consider different central methods in convex as well as non-convex optimization. This will include optimality conditions, the handling of linear and non-linear constraints, and methods such as interior point methods for convex optimization, Newton's method, Trust-Region methods, and optimal control methods.