Linear and non-linear solvers, developing and teaching Modeling Discrete Optimization.