1. have an understanding of the general principles of integer programming
2. acquire the skills to formulate and build integer programming models, understand how to solve integer programming problems
3. understand polyhedral theory and cutting planes
4. understand the complexity of a problem, identify easy and hard problems
5. learn to solve integer programs using software and interpret software output
6. write a project paper by applying integer programming techniques to solve a real-life problem