Constraint Programming: Basics and Trends