Processing Clicker Marks

We use a Python script that combines the raw answer data from the i>clicker software and the clicker registration data from the ClickerRegistrationScript and outputs a text file with student marks. Instructors will need to upload the answer data from their i>grader directory to the course account; the directory in which the script looks for the data for each section is configurable within the script.

Two modes of operation

The RESTRICT_STUDENTS_TO_OWN_SECTION flag controls the basic manner in which the script interprets students' marks. If the flag is set to True, the script will only give credit for answers if the student attends the section in which they are registered. The script attempts to handle students who change sections by assuming that the registration change e-mails sent to the course account are stored in a specific mailbox. If you use this mode of operation, make sure that you save those e-mails in the appropriate place.

If the flag is False, the script assumes that all instructors are asking a common set of questions, and attempts to assign credit to students for answers given in any section. It does so by looking for answers for each student in any section, crediting them with those answers if found, and assigning them zeroes for all questions asked in their home section otherwise.

Note: The script probably doesn't currently work if this flag is set to True. See the "Improvements" section below for more information.


There are a number of configuration variables at the top of the script, which specify the directories in which the CSV files containing answer data are, among other things. These should be relatively self-explanatory; see the script for more details.

Verbose mode

If a student complains that his/her mark is incorrect, and you want more information about how it was calculated, the VERBOSE mode is a good place to start. When enabled, it prints out a large amount of information, including a class-by-class breakdown of the marks for each student.


The script is designed to allow students to change clickers during the term by interpreting clicker registrations as follows:
  • The first clicker registration recorded for the student is taken to be in effect from the beginning of the term.
  • All following registrations are taken to be in effect from the date of registration.
  • A clicker registration remains in effect until another clicker is registered, or until the end of the term if there are no subsequent registrations.
While this interpretation is correct for the case of a student losing their clicker, it doesn't correctly handle the (more common) case of a student entering their clicker ID wrong initially; the script will assign them zeroes for every question asked before they corrected their registration. The ClickerRegistrationScript should probably be modified to ask whether the student wants to update or replace their clicker registration.

As a result, you will probably get students e-mailing you, complaining that their marks aren't correctly recorded. If it turns out that they entered their clicker ID incorrectly, add a line in the file with their registration information. Follow the format given in the file.


If a student routinely doesn't attend the section in which they are registered, it is possible for the system to assign them zeroes for questions that they have answered. This occurs if there is a date where no questions are asked in the section that they are attending, but there are questions asked in the section that they are registered in. The script has no record of them attending any classes that day, and assigns them zeroes as a result.

To solve this problem, students' marks are adjusted by dropping their lowest marks (likely zeroes) until the number of marks used in the calculation is the same as the smallest number of questions asked by any instructor in the course. This solution has the undesirable effect of favouring students in sections where the instructors asked more questions. However, it is the instructors' responsibility to ensure that they are asking a common set of questions.

Future Improvements

  • A general clean-up would be good: this script was originally written in haste, then modified substantially by a different person, and then modified yet again.
  • Modify configuration variables at the top of the script to be command-line arguments. At the very least, the VERBOSE variable should be configurable on the command-line; ideally, all of the configuration information should come from the command-line, and the script should be course-agnostic.
  • Once the script is course-agnostic, it should be moved to ~isg/bin, rather than being copied and modified for each course.
  • The script (likely) only works if the RESTRICT_STUDENTS_TO_OWN_SECTION flag is set to False. If this behaviour is required again (i.e., students must attend the section in which they are registered in order to receive participation marks), the script will need to be fixed.
  • The script assumes that all classes are scheduled in the same manner, whether that's two 80-minute classes on Tuesday or Thursday (the most common schedule) or some other schedule. If the classes are scheduled differently, the script may not work if students are allowed to move around between sections, because it will think that students are skipping classes on days when their home section (the one that they are registered in) has class, but the section that they are attending doesn't. However, the feature of the script that limits students' marks to the smallest number of questions asked by any instructor may deal with this case. Regardless, it's something to be aware of.

-- MorganGrainger - 14 May 2009

Topic revision: r1 - 2009-05-14 - MorganGrainger
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback