help logoLON-CAPA Help


Bubblesheet format file

Where bubblesheet exams are used in a course, the format of data in the file generated from the processing of bubbled-in bubblesheets may vary between institutions. The format definitions available when performing bubblesheet grading in LON-CAPA were originally listed in the scantronformat.tab file, stored in /home/httpd/lonTabs, which might have been modified locally on each server.

Starting with LON-CAPA 2.7, bubblesheet format information is read from either a custom.tab file, or a default.tab file both of which belong to the special domain configuration user ($dom-domainconfig, where $dom is the name of the domain) and which are automatically published into resource space.

For LON-CAPA installations older than 2.7, when the primary library server for the domain has been updated, a Domain Coordinator should display the "Bubblesheet format file" configuration page via "Domain Configuration". The first time this page is displayed, a default.tab (a copy of the standard LON-CAPA scantronformat.tab file), and a custom.tab (if the scantronform.tab file currently on the server differs from the standard file) will be copied and published. Thereafter any changes to bubblesheet format files to be used for grading bubblesheet exams in courses from the domain will be made via the Domain Configuration menu. Any scantronform.tab files in /home/httpd/lonTab directories on servers in the domain will no longer be used.

The settings available via "Bubblesheet format file" support upload of a new custom file, or deletion of an existing custom file (in which case grading will default to use of the default.tab file). An uploaded bubblesheet format file contains one or more lines of colon-separated values for the parameters in the following order:

name:description:CODEtype:CODEstart:CODElength:IDstart:IDlength:Qstart:Qlength:Qoff:Qon:PaperID:PaperIDlength: FirstName:FirstNamelength:LastName:LastNamelength

  1. name is the internal identifier used within LON-CAPA

  2. description is the text displayed for each option in the "Format of data file" dropdown in the Bubblesheet grading screen. The user will choose the appropriate format for the bubblesheet file currently being used for bubblesheet grading.

  3. CODEtype can be either 'none' 'letter' 'number'

  4. CODEstart: (only matters if a CODE exists) column in the line where the CODE starts

  5. CODElength: length of the CODE

  6. IDstart: column where the student ID starts

  7. IDlength: length of the student ID

  8. Qstart: column where the information from the bubbled 'questions' start

  9. Qlength is the number of characters in the raw data used to record the student's bubbled answer for each row on the bubblesheet.

    If the raw data indicate bubble position by a letter or a number (e.g., A = first bubble or 1 = first bubble etc.) then the number of characters would be 1 (assuming 10 bubbles or less for the number case). If however, bubble position is indicated by position of the Qon (bubbled) character, then each bubble row might have 10 characters (one for each of the 10 possible positions with Qon at the position bubbled and Qoff elsewhere, (e.g. if Qon = 1, Qoff = . the portion of a student's record for a single bubble row might be: ...1...... indicating position 4 was the one bubbled.

  10. Qoff is the character used to indicate an unfilled bubble, this is commonly a single blank space.

  11. Qon is the character used in the raw data generated by the bubblesheet scanner to indicate a filled-in bubble.

    Qon can be either:

  12. PaperID: if the scanning process generates a unique number for each sheet scanned the column that this ID number starts in

  13. PaperIDlength: number of columns that comprise the unique ID number for the sheet of paper

  14. FirstName: column that the first name starts in

  15. FirstNamelength: number of columns that the first name spans

  16. LastName: column that the last name starts in

  17. LastNamelength: number of columns that the last name spans

As an example, below are four different format lines: the first two were used at MSU prior to 2006; the last two have been used since then.

Bubblesheet data upload formats

Starting with LON-CAPA 2.11.3, bubblesheet data generated from the processing of bubbled-in bubblesheets to be uploaded to a course may either be column data (i.e., in a .dat file) or comma separated value data (in a .csv file). Internally in LON-CAPA all bubblesheet data will be stored in .dat format, with start and end column numbers for different pieces of information defined by one of the entries in custom.tab (if in use) or default.tab.

If the checkbox for csv data is checked then a CSV Column Mapping table will be displayed, which will be used to designate the column location in the CSV data (with 1 being the leftmost column) for each of:

Responses to additional question(s) should occur in column(s) immediately to the right of the column for the first question. Besides mapping columns to contents, there are also three Yes/No options:

If the original CSV data includes an initial row with column titles, indicate removal of the first line. If the data in each column, is padded with spaces, indicate removal of leading spaces. Note: this will not remove spaces from data in any columns which are designated to contain question responses.

Note: the expectation is that all bubblesheet data in CSV format used in a domain will have the same arrangement of columns, so that a "CODE" column will be present at the same location in data for both CODEd (i.e., anonymous) exams, and "named" exams, with the only difference being that the tables cells will be empty for that column in the case of bubblesheet data from students in a "named" exam.

If both .dat and .csv formats are specified for the domain, then when either a user assigned a Bubblesheet Scanning Operator role in the domain or a Course Coordinator uploads bubblesheet data to a course, the uploader will specify the data format: Plain Text or CSV. If CSV is chosen, and there is more than one bubblesheet type in the domain's default.tab (or custom.tab), then the uploader will also need to specify the bubblesheet type.