## Teaching

Welcome to my teaching page. Below you will find complete course pages for all current and previously taught courses, including lecture materials, problem sets, and other useful links. Please let me know if you find something here useful. All materials on these pages are copyright Ted Ralphs.

- My Teaching Philosophy and Policies
- Tomorrow’s Professor Archive (an excellent resource for educators)
- Society for a Return to Academic Standards (an extensive collection of essays on controversial topics related to higher education)
- The Chronicle of Higher Education (the definitive source for news related to higher education)
- Course descriptions
- Course pages
- Multilevel and Multistage Optimization: Theory and Algorithms (Short course most recently given at Zuse Institute Berlin in December 2016)
- Introduction to Algebraic Modeling and the COIN-OR Optimization Suite (tutorial most recently given at the INFORMS Computing Society Annual Conference 2015)
- Tools for Modeling Optimization Problems (short course offered at North-West University, PUK Campus, South Africa)
- Computational Integer Programming (short course offered most recently at the Chinese Academy of Science)
- Engineering 5 Introduction to Engineering Practice
- IE 170/171 Algorithms in Systems Engineering (C++ Version)
- IE 172 Algorithms in Systems Engineering (Python Version)
- IE 316 Advanced Operations Research Techniques
- IE 372 Systems Engineering Design
- IE 406 Introduction to Mathematical Programming
- IE 407 Computational Methods in Optimization
- IE 411 Graphs and Network Flows (Python)
- IE 411 Graphs and Network Flows (C++ and GIDEN)
- IE 417 Nonlinear Programming
- IE 418 Integer Programming
- IE 447 Financial Optimization
- IE 495 Computation in Operations Research

### Course Descriptions

- Computational Integer Programming
- IE 170/171 Algorithms in Systems Engineering
- IE 316 Advanced Operations Research Techniques
- IE 406 Introduction to Mathematical Programming
- IE 407 Computational Methods in Optimization
- IE 411 Graphs and NetworkFlows
- IE 417 Nonlinear Programming
- IE 418 Integer Programming
- IE 447 Financial Optimization
- IE 495 Computation in Operations Research

*Course Description*: In this short course, we give an overview of the theory and practice of integer programming. The course describes in detail the primary computational components of a modern solver: methods for bounding, branching, and search. We also spend some time discussing software: what’s available and how to use it. The focus will be on open source, especially the software available in the COIN-OR repository.

*Course Description*: This course introduces students to the principles involved in designing, analyzing, and implementing basic algorithms common in systems engineering applications. The course is divided into five units by topic area (see syllabus on course page). Course meetings consist of two 75 minute lectures and one three hour laboratory each week. The laboratory exercises consist of case studies in which the students will have to apply the principles discussed during the week’s lectures to solve a given systems engineering problem. This is accomplished mainly through implementing various algorithms in C++. Weekly homework based on the laboratory case studies further reinforce student learning.

*Course Decription*: An introduction to mathematical programming, including techniques for the solution and analysis of deterministic linear models used in operations research. Primary types of models addressed are linear programming, network flow, and integer linear programming. The course emphasizes the application of mathematics to the solution of optimization problems, effective modeling of optimization problems, the use of algebraic modeling languages, and the use of commercial solvers.

*Course Decription*: An introduction to mathematical programming, including techniques for the solution and analysis of deterministic linear models used in operations research. Primary types of models addressed are linear programming, network flow, and integer linear programming. The course emphasizes the application of mathematics to the solution of optimization problems, effective modeling of optimization problems, the use of algebraic modeling languages, and the use of commercial solvers.

*Course Decription*: This course covers a wide range of topics related to the computational methods encountered in optimization applications. The lectures cover both the theoretical aspects of computation and computation in practice, attempting to bridge the gap between the two. Assigned exercises will focus on employing the computational methods discussed in class to real-world applications. Topical coverage will include data structures, design and analysis of algorithms (sequential and parallel), programming paradigms and languages, development tools and environments, numerical analysis, and matrix computations.

*Course Description: This course focuses on an important class of optimization problems known as network flow problems that arise in the analysis of systems whose operation involves determining how to direct the flow of certain commodities through an underlying network. The course addresses the modeling of such systems as they arise in a variety of settings and the development of efficient algorithms for performing the analysis. Specifically, the course covers the analytical and computational aspects of the shortest path problem, the maximum flow problem, and the minimum cost flow problem. Other topics include generalizations of the minimum cost flow problem, such as the convex cost flow problem and the multicommodity flow problem, and related models, such as those for matching and computing minimum cost spanning trees. *

*Course Decription*: Advanced topics in mathematical programming with emphasis on modeling and analysis of non-linear optimization problems. Topics include convex analysis, unconstrained and constrained optimization, duality theory, Lagrangian relaxation, and methods for solving non-linear programs, including descent methods, Newton methods, conjugate gradient methods, and penalty and barrier methods.

*Course Decription*: Advanced topics in mathematical programming with emphasis on modeling and analysis of optimization problems with integer variables. Topics include polyhedral theory, theory of valid inequalities, duality and relaxation, computational complexity, and methods for solving integer programs, such as branch and bound and branch and cut.

*Course Decription*: This course concerns making sound financial decisions in an uncertain world. Increasingly, financial decision-makers are depending on optimization techniques to guide them in their decisions. We will survey the use of such methods in financial decision-making processes. Financial topics to be covered will include asset/liability management, option pricing and hedging, risk management, and portfolio optimization. The optimization techniques to be covered will include linear and nonlinear programming, integer programming, dynamic programming, and stochastic programming. As a supporting theme, the course will also emphasize effective modeling, the use of modeling languages, such as AMPL, and the use of

commercial solvers for solving financial optimization problems.

*Course Decription*: A survey of topics related to the theory of computation as they relate to implementing algorithms in operations research.