Constraint programming is like a puzzle or game. You have certain pieces that need to fit together. You have to figure out how they all fit together so they make a picture or solve a problem. To do that, you create a set of rules and combinations that tell the pieces how to move, or which ones go where. These rules and combinations all join together to form a 'program' that helps you solve the puzzle.