Traditional knowledge representations were developed to encode complete, explicit and executable programs, a goal that makes them less than ideal for representing the incomplete and partial knowledge of a student. In this paper, we discuss state constraints, a type of knowledge unit originally invented to explain how people can detect and correct their own errors. Constraint-based student modeling has been implemented in several intelligent tutoring systems (ITS) so far, and the empirical data verifies that students learn while interacting with these systems. Furthermore, learning curves are smooth when plotted in terms of individual constraints, supporting the psychological appropriateness of the representation. We discuss the differences between constraints and other representational formats, the advantages of constraint-based models and the types of domains in which they are likely to be useful.