This document provides an introduction to linear and integer programming. It defines key concepts such as linear programs (LP), integer programs (IP), and mixed integer programs (MIP). It discusses the complexity of different optimization problem types and gives examples of LP and IP formulations. It also covers common techniques for solving LPs and IPs, including the simplex method, cutting plane methods, branch and bound, and heuristics like beam search.