Optimization. Convex and linear optimization. The simplex method. Advanced simplex procedures. Complexity of problems and algorithms. The complexity of linear programming. The ellipsoid method. Graphs and flows. Transportation and assignment problems. Maximum flows and perfect matchings. Shortest paths and minimum spanning trees. Semidefinite programming. Branch and bound. Heuristic algorithms. Approximation algorithms. Non-cooperative games. Strategic equilibrium. Equilibrium computation. Cooperative games. Bargaining. Stable matchings. Social choice. Mechanism design. Mechanisms with payments.