Integer programming is a type of mathematical optimization or feasibility program in which some or all of the variables are restricted to be integers. It is NP-complete and 0-1 integer linear programming, where unknowns are binary, is one of Karp's 21 NP-complete problems. Mixed-integer programming is a related problem with some decision variables not discrete.

This course from Carnegie Mellon University provides a deep understanding of AI's theory and practice, covering methods for decision-making, problem-solving, and handling uncertainty. Topics include search algorithms, computational game theory, and AI ethics.