1. A system comprising: one or more processors; and memory storing computer executable instructions which when executed perform a method for developing learning activities for use in a learning program, the method comprising: displaying an adaptive path builder user interface for receiving user input to define an adaptive path of language learning activities, the adaptive path builder user interface including: an adaptive path editing window in which the adaptive path of language learning activities is defined, the adaptive path of language learning activities including a plurality of language learning activities that are interconnected by branches; a branching window which displays one or more branches of a selected language learning activity, each branch comprising at least two destination language learning activities to which branching from the selected language learning activity may occur and conditions defining to which of the at least two destination language learning activities branching will occur; displaying an activity builder user interface on a display device for receiving user input to define one or more of the language learning activities of the adaptive path of language learning activities, the activity builder user interface including: a work area in which components are added to a language learning activity of the adaptive path of language learning activities by dragging and dropping the components in the work area, a components list that lists components available to be dragged and dropped into the work area for inclusion in a language learning activity, a variables list that lists a language learning activity's components and properties of each component in the language learning activity, and a properties list that lists properties of a selected component in a language learning activity, wherein displaying the activity builder user interface includes displaying a first language learning activity of the adaptive path of language learning activities in the work area; receiving, at the activity builder user interface, user input that drags and drops a first set of components onto the work area; adding the first set of components to the first language learning activity being displayed in the work area, including displaying a representation of each component in the first set of components in the work area and the variables list, and displaying a representation of each property of each of the components in the first set of components in the variables list; receiving user input that selects the representation of a first component in the work area or the variables list and displaying the properties of the first component in the properties list; receiving user input that drags and drops the representation of a property of a second component displayed in the variables list onto the representation of a property of the first component displayed in the properties list; and automatically generating a relationship between the first and the second component by associating the property of the second component with the property of the first component.