Intelligent tutoring systems (ITS) are computer learning environments that help students master knowledge and skills by implementing intelligent algorithms that adapt to students at a fine-grained level and that instantiate complex principles of learning. An ITS normally works with one student at a time because students differ on many dimensions and the goal is to be sensitive to the idiosyncrasies of individual learners. ITS have been developed for mathematics and other computationally well-formed topics as well as knowledge domains that have a verbal foundation. Reviews and quantitative meta-analyses confirm that ITS technologies frequently improve learning over reading text and traditional teacher-directed classroom teaching. This chapter describes affordances that are frequently incorporated in most applications. Some affordances are routinely incorporate in ITS (active student learning, interactivity, adaptivity, and feedback) whereas others are frequently but not always included (choice, non-linear access to topics, linked representations, and open-ended learner input). The Generalized Intelligent Framework for Tutoring (GIFT) is a framework that articulates the frequent practices, pedagogical and technical standards, and computational architectures for developing ITS; the goal of the GIFT initiative is to scale up ITS development for schools, the military, industry, and the public. The chapter also identifies major challenges in building ITS and some of their limitations.