The fundamental goal of this course is to teach a framework for making decisions in the presence of conflicting objectives. The course aims to teach methods and algorithms that interact with the decision maker to solve multi-objective decision problems. These methods include multi-objective sorting and classification methods, evolutionary algorithms, and multi-objective mathematical programming. The course also aims to teach multi-attribute utility and value theories.