This paper describes a cognitively-oriented architecture that facilitates the development of expertise. Based on knowl-edge about human decision making, it integrates multiple representations, multiple decision-making rationales, and multiple learning methods to support the construction of in-telligent systems. A constraint solver implemented within the architecture engineers a problem-solving paradigm. This program manages a variety of search heuristics and learns new ones. It can transfer what it learns on simple problems to solve more difficult ones, and can readily export its knowledge to ordinary solvers. It is intended both as a learner and as a test bed for the constraint community. Both the program and the architecture are ambitious, ongoing re-search projects to support human reasoning.