CSC/ECE 517 Spring 2022 - E2234. Calibration submissions should be copied along with calibration assignments: Difference between revisions
Line 35: | Line 35: | ||
==='''Files Requiring Modification'''=== | ==='''Files Requiring Modification'''=== | ||
* assignment_form.rb | |||
* participant.rb | |||
* team.rb | |||
* assignment_team.rb | |||
== '''Final Implementation''' == | == '''Final Implementation''' == |
Revision as of 00:20, 7 April 2022
Introduction
A “calibration assignment” is an assignment where the students are asked to review work that has also been reviewed by a member of the course staff. If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Here is a further description of calibration assignments. To set up calibration, the instructor (or TA) adds a few extra participants to the assignment. The instructor (or TA) then impersonates the extra participants, and submits work on behalf of each of the extra participants.
Problem Statement
Having the instructor (or TA) impersonate the extra participants, and submit work on behalf of each of the extra participants is obviously extra trouble. It would be nice if an instructor didn’t have to resubmit the same calibration submissions every semester.
Previous Implementation
The previous project did fully implement code that copies over the calibration submissions whenever a calibrated assignment is submitted. It was done by ensuring that when a assignment is copied that 1) the same extra participants as the assignment you are copying are used 2) the URLs and/or files that were submitted to the previous assignment are also copied and 3) the URLs and files are submitted to the assignment as well
The previous implementation needs to be revisited and made more elegant. A description of the needed refactoring and changes is below.
What needs to be done
- Ensure what gets copied (when and how) is done properly
- Reviews done by the creator of the assignment are copied, but only reviews that have been started.
- If an author did any non-calibration reviews in the assignment being copied, those reviews would also be treated as calibration reviews
- Submitted files are copied too, but if the calibration submissions are done as part of the COPYING of the assignment, they will necessarily use directories 0, 1,
- Handling the case of students submitting assignments before calibration assignments are done
- Project assumes that calibrations start at directory 0
- Not the case if any students submit before the calibration submissions are done
- Submitter_count needs to be set to the largest directory number that was used for calibration
- First student to submit will have their submission show up in the same directory with the first calibration submission
- Several class methods in assignment_form.rb should be moved to different classes as instance methods in those classes
- Add better comments
- Break out copy of new assignment name into a new method? Change copy name i.e. “copy2” vs. “copy of copy”
- Clean up participant.rb
- Look for a more elegant way of (self.create_participant) copying/creating of participants → DRY violation
- Clean up team.rb
- Create a copy method in team that copies the field used by all teams
- Rest of the stuff is just used by assignment teams (submitted hyperlinks etc.)
- Create a copy method and override in assignment_team
- Reevaluate instance variables. Are these needed, or could they be local variables instead?
- Look at editing out 9min video due to long waits for responses during copying
Design
Files Requiring Modification
- assignment_form.rb
- participant.rb
- team.rb
- assignment_team.rb
Final Implementation
Test Plan
UI Testing
Automated Testing
Conclusion
Team Information
Mentor: Dr. Ed Gehringer (efg@ncsu.edu)
Nolan Dowdle (njdowdle@ncsu.edu)
Laura Fox (lmcampb5@ncsu.edu)
Soeun Jo (sjo@ncsu.edu)
Harshil Shah (hshah6@ncsu.edu)
Resources
A link to the Expertiza GitHub can be found here
A link to our repository can be found here
Our implementation video can be found here
A link to the previous Wiki can be found here
The previous implementation video can be found here
A link to the previous GitHub Repo can be found here