Skip to content

Student Data Records

Richard Tibbles edited this page Jun 17, 2015 · 2 revisions

Student Data Records

We keep logs of student progress in order to help teachers assess student progress and trouble. We limit these logs to a few pieces of basic information, in order to keep the app running with low required resources. We expose those data to teachers through our coach reports.

Here is documentation about the fields that we store when a student interacts with videos or exercises

To generate example student data, you can run the 'generaterealdata' management command by typing this in the command line: bin/kalite manage generaterealdata

Exercise Log

As students do exercises, they can check their answer and be right or wrong, or get hints.
If right: streak_progress and points continue incrementing. If hint or wrong: streak_progress and points get reset to 0.

  • streak_progress: [# of consecutive correct answers (with no hints)] * 10% (10 consecutive answers required to get to 100%!)
  • attempts: # of times the student tried answering (includes successful & failed answers)
  • points: total points acquired on this exercise
  • complete: If the student got streak_progress=100
  • struggling: True IF attempts > 20 and not complete
  • attempts_before_completion = models.IntegerField(blank=True, null=True)
  • completion_timestamp = models.DateTimeField(blank=True, null=True)
  • completion_counter = models.IntegerField(blank=True, null=True)

Video Logs:

  • total_seconds_watched: integer specifying the total # of seconds a video was watched. If they replay the video, or leave the page and return, this number is added to (never reset)
  • points: Points are received while watching a video, with a maximum number per video. If the video is rewatched, then the # of points is reset (not added to)
  • complete = models.BooleanField(default=False)
  • completion_timestamp = models.DateTimeField(blank=True, null=True)
  • completion_counter = models.IntegerField(blank=True, null=True)
Clone this wiki locally