This course introduces optimization methods and theories. Capability of selecting and applying various algorithms is emphasized. Techniques for formulation and optimization of real problems are covered including discrete optimization, multi-criteria optimization, evolutionary programming, and probabilistic optimization.