This paper describes a knowledge-based architecture, called curriculum tree, for building intelligent tutoring systems. Primarily based on the subject domain knowledge structure, the architecture naturally incorporates the global curriculum planning and monitors the local learning activities. The curriculum tree can also be viewed as a structure of various teaching knowledge at different stages of learning. By adopting rule inheritance, the architecture allows additional additivity and flexibility for developing an intelligent tutoring system incrementally as well as efficiency for running rules in each learning episode. Thus, curriculum tree is an architecture towards building large scale intelligent tutoring systems. In this paper, we shall also discuss how the curriculum tree architecture is used in building Integration-Kid, a Learning Companion System which is a particularly complex type of intelligent tutoring system, in the domain of learning indefinite integration.