Building Goals

In a Knewton-powered learning application, goals help express the scope and pedagogy used to guide the recommendations delivered to a learner. Product designers and instructors can use goals to tailor a product or course to their needs.

knAtom See our goal api specs to build your first goal.


In this section:



What are Goals?

Knewton provides near real-time recommendations to guide learners toward completion of their individual learning objectives. Recommendations may consist of instructional and assessment material. But how does the learning application tell Knewton what a particular learner’s objectives are? How does an instructor guide a class, group, or individual toward specific objectives?

In a Knewton-powered learning application, goals help express the scope and pedagogy used to guide the recommendations delivered to a learner. A goal can be used in the context of large assignments (“achieve proficiency on this week’s ten learning objectives”) or more narrowly specified ones (“see initial instruction and a few questions on the two learning objectives we’ll cover tomorrow”). Product designers and instructors can use goals to tailor a product or course to their needs.

Goals are also used as context for some of Knewton’s analytics. Consider as an example an instructor, Mr. Smith. Mr. Smith might create a goal that requires learners to achieve proficiency with a set of learning objectives that will be on a quiz this coming Friday. He can use Knewton-powered analytics to track progress on that goal. “How many students have started or completed this goal? What progress have my students made toward proficiency on the assigned learning objectives?” The analytics used to answer these questions reflect learners’ activity on the goal. Note that this is not the case for all available analytics: Mr. Smith might ask “What score would each student be likely to receive if they took the quiz today?” The Predicted Score metric would answer this question by considering learner activity across potentially many goals.

By varying the number of goals, scope of each goal, and other goal parameters, a learning application can fulfill a wide variety of product visions for any configuration of learners. Goals give instructors, administrators, learners, and other users of the learning application a great deal of flexibility. Any authorized user can use goals to create targeted homework assignments, configure broad review centers, and generally structure the overall learning experience in accordance with the pedagogical and instructional functions of that particular learning application.

Goals can apply to individuals or groups of learners. In either case, recommendations requested for the goal are optimized for each individual learner.

Creating Goals

Applications should use Partner Admin credentials to create goals on behalf of instructors or learners. The time it takes for a new goal to be created is a function of the number of target and recommendable modules in the goal and, if it is being assigned at creation, the number of registrations it is being assigned to. While most responses are quite quick, in the worst case, response times can be up to 10 seconds to create and assign very large goals.

The sections below describe the options available to learning applications when creating goals.

Specifying Goal Targets

The “targets” of a goal indicate what content learners are expected to master by satisfying the goal’s completion criteria. Additionally, learners may see non-target content while working on a goal when deemed appropriate for the goal’s adaptive behavior and remediation depth.

Targets may be specified via the targets parameter in a goal creation or update request as learning objective (LO) IDs (See Content Identifiers).

Using Target Modules (DEPRECATED)

Targets may alternately be specified as module IDs. If target modules are specified, then Knewton infers a set of target LOs that contains all LOs that are assessed by at least one of the specified target modules. Directly specifying target LOs is preferred.

Grouping Targets into Topics

In some applications, a single adaptive assignment may cover learning objectives (LOs) across several loosely related topics. In this case, it is usually undesirable for the recommender to switch focus from one LO to a different LO in another topic. The experience is more coherent for learners if they can complete all of the LOs in one topic before moving to the next topic. The goals API enables this behavior by allowing target LOs to be specified in groups via the topics parameter in the request body rather than as a flat list via the targets parameter. Target modules may not be used with topics.

Note that from the Knewton Platform perspective, a goal’s topics are just ad hoc groups:

  • They are not represented in the Knowledge Graph.
  • They do not need to be provisioned in any way before they can be used in a goal definition.
  • They have no effect outside the goal whose definition they appear in. Even if the same topic ID is used for topics in two goal definitions, no relationship between those goals’ topics is implied.
  • They have no semantic meaning to the Knewton platform beyond how they inform the recommender behavior described above.

Specifying Goal Scope

The “scope” of a goal defines a “recommendable pool,” which is the set of content items that the recommender can draw from when a recommendation is requested. Thus, the scope controls what content learners may encounter when working on the adaptive assignment.

The simplest way to specify the scope of a goal is to leverage the learning objective (LO) prerequisite relationships encoded in the graph, and to define the recommendable pool as containing all of the content that is covered by LOs within a certain number of prerequisite hops away from the goal’s target LOs. This approach can also be thought of as putting a limit on how far back in a content domain the recommender will take a struggling student when remediating them. The scope.remediation_depth parameter in the request body is used to set the desired value. If our LO prerequisite graph looked like this, with LO A being the goal’s only target LO:

Sample Graph

Then the available remediation_depth values will have the following effects:

  • none: Only content covered by LO A will be recommended.
  • one: Initially content covered by LO A will be recommended. For struggling students, remedial content covered by LOs B and C may be recommended.
  • two: Same as for one, but students who continue to struggle on LOs B or C may be recommended content covered by D and E, or F and G, respectively.
  • three: Same as for two, but remediating all the way back to LOs H, I, and J if necessary.
  • maximum: Same as for three, but remediating all the way back to LOs K and L if neccessary (and beyond, if there were futher prerequisite relationships).

Note that there is an entity limit on the number of modules that can be included in a goal’s recommendable pool (see Entity Limits). If this limit is reached, modules closer to the goal’s targets in terms of prerequisite distance will be prioritized for inclusion over those further from the goal’s targets.

Excluding Specific Items

In some cases it can be useful to prevent certain content from being recommended that would otherwise be included in the recommendable pool. Specific modules or groups of modules tagged with specific taxons can be excluded from the recommendable pool using the scope.exclude parameter in the request body.

Explicitly Defining Scope (DEPRECATED)

The recommendable pool can also be defined explicitly by including specific modules or groups of modules tagged with specific taxons using the scope.include parameter in the request body. The same results can generally be achieved with less effort using a combination of scope.remediation_depth and scope.exclude, so this method of specifying the goal scope is deprecated.

Specifying Goal Completion Criteria

The completion_criteria parameter of the request body may be specified to configure various preconditions for completion of the goal. Three parameters may be used to configure a goal’s completion criteria.

  • completion_criteria.min_predicted_mastery refers to the knowledge state at which Knewton’s proficiency model will deem the student sufficiently proficient to complete an LO. Setting a lower min_predicted_mastery will allow students to complete a goal with a generally lower rate of accuracy; conversely, a higher min_predicted_mastery will require students to demonstrate a higher level of proficiency with target material before completing an LO.
  • completion_criteria.min_work_per_target refers to the minimum number of unique questions a student must answer before completing an LO, regardless of their knowledge state. Students may require more questions to reach a sufficient level of min_predicted_mastery, but each student will be required to answer at least min_work_per_target questions on each LO.
  • completion_criteria.max_work_on_goal allows a student to complete a goal after a specified number of unique questions, even if the above criteria are not satisfied. If the student satisfies the other completion criteria in fewer than max_work_on_goal interactions, the goal may be completed sooner. This parameter can cause unusual or unbalanced assignment experiences (e.g., working for most the goal on just one of the goal’s several target LOs), and it is only recommended for special circumstances.

Each goal target will be considered complete when all of the specified criteria have been satisfied. The entire goal will be considered complete when either:

  • each of its targets has been completed (by satisfying completion_criteria. min_predicted_mastery and completion_criteria. min_work_per_target)
  • the student has completed completion_criteria.max_work_on_goal questions

The mastery computation used to check against the completion_criteria.min_predicted_mastery parameter also underpins the Status & Progress analytic. Therefore, it is important for a consistent user experience that integrations utilizing the Status And Progress analytic to report assignment progress to students and instructors create goals using flexible goal completion criteria.

Setting Target Score (DEPRECATED)

A target score between 0 and 1 may be specified via the targets.score parameter of the request body. Each goal target will be considered complete for a registration when the Expected Score analytic value for that target exceeds the specified target score for the registration.

The targets.completion_behavior parameter of the request body is used to control when the entire goal will be considered complete in the context of target score.

  • all: The goal will be complete when each of the targets is completed.
  • average (DEPRECATED): The goal will be complete when the average Expected Score across all targets exceeds the specified target score.

It is important for a consistent user experience that integrations utilizing the deprecated Expected Score analytic to report assignment progress to students and/or instructors create goals using target score completion criteria.

Specifying Adaptive Behavior for Scoped Goals

Aside from specifying what content and completion criteria are relevant to a given adaptive experience, scoped goals can also include an adaptive_behavior field (optional) to choose from a range of recommendation behaviors appropriate to different use cases. The adaptive_behavior for a given goal tells the recommendations engine how to structure the pedagogy for an adaptive experience:

adaptive_behavior Example goal use case Pedagogical overview
practice (default) Homework after class Work on assessment questions until completing the assignment or requiring just-in-time instruction or remediation.
introduce Pre-lecture preparation Begin with mandatory instructional material on each learning objective and proceed to assessment questions.
review Revisiting material before an exam Interleave assessment questions on the target learning objectives; if a gap is demonstrated, focus on that learning objective for practice and instruction. Note: For review, remediation_depth should be set to 0, for clarity. (Review does not include remediation, regardless of the remediation_depth set on the goal.)

For each adaptive_behavior, the recommendations engine consults content parameters associated with the targets’ Knowledge Graph (generated from the partner-provided Content Inventory) to structure the resulting adaptive experience.

Once created, a goal’s adaptive_behavior cannot be changed via a goal update. Further technical details for goal management can be found in the reference guide.

Note: adaptive_behavior can only be used with completion_criteria, not targets.score.

Assigning Goals

A goal must be assigned to a registration in order for recommendations and analytics to be generated. A single goal can be assigned to many registrations. This assignment can happen in one of three approaches:

  • Single learner: A goal can be assigned to an individual learner (a single registration). This could be used for directed learning, extra credit work, or individualized intervention.
  • Group of learners: A goal can be activated for a group of learners. This could be used for a specific study group, a set of learners who are all struggling on a particular set of content, or a group project. The goal is still assigned one registration at a time via the Knewton API.
  • All learners: A goal can be used to provide a consistent target for the entire class. While each learner may interact with more or less content to reach the goal, they are all working toward the same objective.

Completing a Goal

When a goal is completed by a learner, Knewton returns a status of “ready” in the recommendation response. Additionally, Knewton by default returns an empty set of modules in the recommendation response when the learner moves to the ready status.

Updating a Goal

An existing goal can be updated to reflect a change that has occurred. For example, an instructor may choose to give an extension to an assignment in the learning application. The goal would therefore be updated with a new duration or end date.

Changes to an existing goal will be applied to all learners who have the goal assigned. Additionally, any learners who have the goal assigned after the change will work against the updated version.

Recommendations and analytics for this updated goal will refresh when a new event is received for each registration (e.g. graded event, ungraded event, focus event).

Goals and Other API Requests

In order to check goal completion progress by retrieving Status & Progress analytics metrics, the application must define a goal with the following configuration:

  • targets.include should be specified with target learning objectives
  • targets.completion_behavior: “all”
  • completion_criteria should be specified (instead of targets.score)

Also, the application must specify a goal_id when submitting a Graded Event for it to impact a goal’s status & progress.