A Friendly Introduction to Constraint Programming by Daniel Dadush Constraint Programming is a powerful technique developed by the Computer Science community to solve combinatorial problems. I will present the model, explain constraint propagation and arc consistency, and give some basic search heuristics. I will also go through some illustrative examples to show the solution process works.