
Figure 1
An example showing how the exercise page appears to students when the Virtual Assistant is enabled.

Figure 2
An example of the exercise-settings page.

Figure 3
An example of using verification logic to statically analyze code. This example is from a Python programming exercise in which the student is asked to use the re.search() function to identify a particular string pattern in text. In some cases, students try to implement the logic using alternative means. The verification logic ensures that the student’s code uses re.search().

Figure 4
An example showing the ability for students to view the instructor’s solution after completing an exercise.

Figure 5
An example showing the ability for students to view a peer’s solution after completing an exercise.

Figure 6
An example of the course-settings page.

Figure 7
Student survey responses regarding the software’s general utility. We surveyed students to assess their perceptions of the software’s utility on a Likert scale.
