Basic Modeling for Discrete Optimization