Many optimization problems are conceptually similar to software design patterns - they are generally usable techniques that help with commonly recurring problems. In this course, Understanding and Applying Numerical Optimization Techniques, you'll first learn about framing the optimization problem correctly. Correctly framing the problem is the key to finding the right solution, and is also a powerful general tool in business, data analysis, and modeling. Next, you'll explore linear programming. Linear programming is a specific type of optimization used when the problem can be framed purely in terms of linear (straight line) relationships. Finally, you'll wrap up this course learning about integer programming. Integer programming is similar to linear programming, but it involves adding conditions that our variables be integers. This occurs very often in the real world, but the math of solving these problems is quite a bit more involved. By the end of this course, you will have a good understanding of how numerical optimization techniques can be used in data modeling, and how those models can be implemented in Excel, Python, and R.