Modern Methodologies for Practical Discrete Optimization