This tutorial provides an introduction to programming in ECLiPSe. It assumes a broad understanding of constrained optimisation problems, some background in mathematical logic and in programming languages. The tutorial tries to cover most of the basic aspects of using ECLiPSe: underlying concepts, the programming language, library functionality and interaction with the system.
A few topics have been left out of this tutorial and are covered elsewhere: The Embedding Manual explains how to embed ECLiPSe applications into other software environments, and the Visualisation Manual describes the use of the constraint visualisation facilities. All the features described in this tutorial are documented in more detail in the ECLiPSe User Manual, Constraint Library Manual and in particular the Reference Manual. A methodology for developing large scale applications with ECLiPSe is presented in the document Developing Applications with ECLiPSe by Simonis.
For an informal introduction to combinatorial optimisation and constraint programming see the article Constraint Programming by Wallace. The most closely related books on the subject are the textbook Programming with Constraints by Marriott and Stuckey  (which contains ECLiPSe examples), and the seminal book Constraint Satisfaction in Logic Programming  by Van Hentenryck.
A small selection of textbooks on related subjects includes: Foundations of Constraint Satisfaction by Tsang , Model Building in Mathematical Programming by Williams  and Prolog Programming for Artificial Intelligence by Bratko .