CSC/ECE 517 Fall 2021 - E2155. Calibration submissions should be copied along with calibration assignments

From Expertiza_Wiki
Jump to navigation Jump to search

Project Overview

Background

To improve the experience of peer-reviewing in Expertiza and determine the competent reviewers amongst all the reviewers, creating a new form of review for assignments was considered. As a result, "calibration assignments" were introduced to the Expertiza system. The calibration assignments were to be assigned before peer review occurred so that students would know if they reviewed the same way that the instructor had reviewed the assignment. Calibration assignments show whether or not the student had given the same or similar score as the instructor for rubric items.

To set up a calibration assignment that both the instructor and the course students can review, the instructor needs to create a new assignment, add the extra participant manually, impersonate the participant, and finally, submit the review, which is not a great experience. What's more is that currently, if an instructor wishes to do this every semester or every year with the same course to copy over the calibration assignments, they have to repeat this process yet again.

Objectives

Expertiza can fix the problem of repeatedly setting up the calibration assignments by automatically copying the previous calibration assignments with all attached reviews.

Previous Implementation

In the previous implementation, the implementors designed the calibration review as part of the assignment and students were able to participate in calibration review training before reviewing other students' work.

The instructor can enable the calibration review in two ways:

1. Check "Calibration for training?" in the general tab of an assignment then copy the participants from the course.

2. Copy existing assignment and its participants with calibration review enabled.

Detailed System Overview can be found at the following:
CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment

However, their implementation introduced several assumptions about the system that we will address to allow merging into production.

Issues with the Previous work

  1. The project assumes that calibration submissions starts at directory 0, which is only correct if the users who submit the calibration submissions are the first to be added as participants to the assignment.
    1. Suggested Fix: set submitter_count to the largest directory number that Expertiza used for calibration.
      1. Allows us to keep track of the most recent calibration submission.
      2. Gives us something we can reference during copying to get the correct directory.
  2. The due date of calibration review are missing.
  3. The copied assignments do not have participants copied.

Design

  1. TODO: add UML diagram, preliminary class design

Implementation

Files we originally planned to modify

  1. app/controllers/student_review_controller.rb
    The mappings of reviews or calibration reviews should be redesigned.
  2. views/student_review/list.html.erb
    The view of the list should be modified so that the calibration review can be displayed correctly.
  3. views/assignments/edit/_due_dates.html.erb
  4. app/models/deadline_right.rb
  5. app/controllers/assignments_controller.rb
    The assignments_controller might need a fix so that the assignments with calibration review can be deleted properly.
  6. app/views/student_review/_responses.html.erb


Files we modified

  1. app/models/assignment_form.rb
    1. Removed vary_by_topic_desired from the update function.
    2. Removed topic references from update_assignment_questionnaires.
    3. Updated Questionnaire to AssignmentQuestionnaire.
    4. Added self.copy_calibration function.
    5. Updated the copy counter.
  2. app/models/assignment_team.rb
    1. Removed code for E1973.
    2. Updated review response map return.
    3. Created directory_path function.
  3. app/models/deadline_right.rb
    1. Added calibration to the model.
  4. app/models/participant.rb
    1. Added self.createparticipant function.
  5. app/models/review_response_map.rb
    1. Removed E1973 code.
    2. Removed topic from questionnaire function.
    3. Shortened self.import function.
    4. Added self.newreviewresp function.
  6. app/models/submission_record.rb
    1. Added self.copycalibratedsubmissions function.
  7. app/models/team.rb
    1. Added self.createnewteam function.
  8. app/views/assignments/edit/_due_dates.html.erb
    1. Added checkmark for calibration.
  9. spec/features/assignment_creation_general_tab_spec.rb
    1. See tests section.
  10. spec/models/assignment_form_spec.rb
    1. See tests section.
  11. db/migrate/20211129124620_add_calibration_to_deadline_type.rb
    1. We added a new migration for AddCalibrationToDeadlineType.
  12. Screenshots:

Testing Plan

  1. Unit test files added:
    1. spec/models/assignment_form_spec.rb
      1. Added tests for function 'copy'. Test to make sure that the assignment id is updated on copy and no longer references the original assignment. We also make sure that the name of the new file is correct.
    2. spec/features/assignment_creation_general_tab_spec.rb
      1. Added unit test to make sure that the calibration shows in the due dates tab.

Testing scenarios:

  1. The instructor copies the existing assignment
    The copied assignment stored in the correct directory
    Expect the number of calibration submitters of the copied assignment=the number of participants of the original assignment
  2. The instructor enables the calibration review of an assignment
    The calibration tab appears next to the due dates tab
  3. The student attempts his/her calibration review
    The student submits the calibration review
    The webpage shows what the student has submitted as well as a long that says "Show Calibration Results".


Errors Found

We found, and fixed, a bug in app/controllers/response_controller.rb where the code was using get_reviewer instead of reviewer. We needed to fix this bug in order for our code to work.

Future Improvements

We believe that submitter_count can be removed from the database since it is never used in the project and in order to update the student directory number we do set_student_directory_num on any of team object within an assignment.

Links

Github repository

Demonstration

Team

  1. John Marsden (ProfDoof)
  2. Lee Shyu (ls-hyu)
  3. Angela Ho (angelaho0504)
  4. Kasimir Schulz (Kasimir123)