CSC/ECE 517 Fall 2017/E17A4 Allow calibration to be part of an assignment: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 171: Line 171:
== Design Plan ==
== Design Plan ==


To implement the feature, the existing code in one place needs to be modified or linked or called to another place, and extra code will be written in JavaScript for making calibration appear in due dates section.
1. MVC
So design patterns will not be required to implement.
 
The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).
 
2. Dry Principle
 
We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.
Example: Currently, calibrated reviews are handled separately and peer reviews are handled separately.
In our enhancement, we need to merge both the reviews. So instead of duplicating the code in calibrated reviews, we will use the same code to handle both the reviews.
 
No other design patterns will be required because we are going to touch methods which are either already existing or create new method when required. But the framework remains the same.


=== Files to be Modified ===
=== Files to be Modified ===

Revision as of 00:06, 17 November 2017

This wiki page describes the changes made according to the specification of E17A4 final project assignment for Fall 2017.


Problem Statement

In order to gain practice, the Student should be able to give calibration reviews before providing peer reviews. Thus, the Instructor should be able to enable calibration for every new and existing assignment. By this way, the student can improve peer reviewing by comparing his/her results with expert reviews for the same assignment.


Limitation

At present, the instructor is able to calibrate the students’ peer review abilities on Expertiza by creating only a separate assignment for this purpose. In this separate assignment that the instructor creates, the student and the instructor will simultaneously do peer review for the project. After submission of the reviews, the student's and instructor's reviews are compared and a calibration report is generated for the student to view and improve their peer reviewing skills.

Unfortunately, for students to practice peer reviewing, a separate assignment has to be created every time. In order to facilitate sufficient practice for peer review, this is not a convenient method.

Proposed System

The objective of this project is to enable calibration to be one part of the normal assignment. The instructor should be able to turn on this feature if necessary and provide the corresponding calibration deadline. The student should be pre-assigned sample assignments. Once the student submits the calibration reviews, the calibration results comparing the student and expert review are provided to the student. This feature should be available for normal assignments.

System Overview

Calibration review is the sample practice peer review used for comparing students' review with expert's review. The calibration results show the results and the experts' reviews, based on which the students can improve their peer reviewing skills.

In the current system has the following actors:

a) Instructors:Users who have administrative privileges to create/edit assignments and impersonate students

b) Students: Users who submit assignments and peer reviews

The current system allows the instructors to create assignments separately for calibration purposes. This is clearly inconvenient and ineffective as the students will not receive enough practice for peer reviewing on their normal assignments beforehand.

Hence, if students were able to compare their reviews with the experts' review for normal assignments before providing actual peer reviews, they will be able to learn and improve their peer reviewing skills from the experts. Therefore, we have to integrate this feature of calibration reviewing in normal assignments as well.


In the current system, the calibration functionality works correctly. In the assignments' edit page, once the instructor enables “Calibration for training?” and saves the assignment, an extra tab "Calibration" appears. After this, the instructor needs to add several sample assignments (right now instructor needs to impersonate several students to submit sample assignments) and do expert review beforehand. This is the existing functionality.

In the proposed system, the flow of the assignment submission done by the student, changes. First is the calibration review of sample assignment, then normal assignment submission followed by rounds of peer reviews. In the proposed system, once the “Calibration for training?” (see the below figure) is enabled, in addition to the “Calibration” tab, a row for calibration deadline entry appears under the “Due dates” tab (see the figure below) before any submissions row. The instructor has to enter the deadline for the calibration review and save the assignment.



Consequently, the student assignments page, the stage of this assignment will be set to “Calibration” during the calibration period. Furthermore, once the student submits one of the calibration reviews in the student_review page, the student can view the calibration results in the “Show calibration results” link. The calibration result shows the comparison of the student’s reviews and the respective instructor reviews. Based on the result, the student will learn to give better peer reviews for the particular assignment.

After completion of the calibration reviews (before the due date), the student should submit the assignment on/before the submission deadline, which is the existing functionality. Since the students have had enough experience during the calibration period on peer reviewing, the next task will be carried over effectively.

Peer reviewing is the concept of review your peer’s work. This concept enables the students to understand the solution to a problem from multiple perspectives. This will also embed new ideas and the skill of constructive criticism in the student. And, hence, the student will provide peer reviews after the submission of their work. These rounds of reviews will be controlled by the instructor. Once all the submissions are made, the assignment’s stage gets assigned the finish status.


System Use Cases

Use Case Diagram :

1. Add/Edit Assignment: Enable Calibration

Use Case Id: 1

Use Case Description: Instructor can select the option - "Calibration for training?"

Actors: Instructor

Pre Conditions: The assignment is present in the assignments list

Post Conditions: Instructor can navigate to the edit assignment page where the enable calibration option is present


2. Edit Assignment: Set Due Dates for Calibration and Peer Reviews

Use Case Id: 2

Use Case Description: Instructor can set due date for calibration under due dates tab

Actors: Instructor

Pre Conditions: Once calibration option is enabled, a separate row for calibration should be created

Post Conditions: The instructor should be able to see the new date set for calibration.

Special cases: Calibration deadline should come before the submission deadline.


3. View the current stage in assignments as "Calibration" during the calibration period

Use Case Id: 3

Use Case Description: In assignments home page, the assignment should now be in the calibration period.

Actors: Student

4. View the pre-assigned sample assignments

Use Case Id: 4

Use Case Description: Student should be able to see the list of assignments in others' work tab for reviewing

Actors: Student

Pre Conditions: Sample assignments are provided by the instructor for the student to review


5. Submit 'n' pre-assigned Calibration Reviews

Use Case Id: 5

Use Case Description: Student can now review those assignments and submit them

Actors: Student

Pre Conditions: Sample assignments are provided by the instructor for the student to review

Post Conditions: Student can now see and edit the newly submitted review and also see the instructor's review for the assignment


6. View the 'Calibration Result' after submitting

Use Case Id: 6

Use Case Description: Student can see the comparison between student's and instructor's reviews for the pre-assignment

Actors: Student

Pre Conditions: Student had already submitted a calibration review

Post Conditions: Student can now view the comparison results

7. Submit the assignment before the due date

Use Case Id: 7

Use Case Description: Student should submit the assignment before the submission deadline

Actors: Student

Pre Conditions: An assignment exists and the calibration review is submitted

Post Conditions: Student can successfully submit the assignment before the deadline


8. Request for a Peer Review

Use Case Id: 8

Use Case Description: After the student submits the assignment, the student can request to do peer review of other student's submission

Actors: Student

Pre Conditions: peer review period has started and other students' submissions are available for reviewing

Post Conditions: Student should be assigned with a project for reviewing.


9. Submit the Peer Review and request for next one after minimum number of peer reviews are completed

Use Case Id: 9

Use Case Description: After the student requests for a peer review, he can review the assignment and submit it, After minimum number of reviews are commpleted, he/she can request for more assignments to be reviewed

Actors: Student

Pre Conditions: Student received an assignment for peer reviewing

Post Conditions: View and edit options are available for the submitted review until the peer review period deadline

All the actions performed by the student can be done by the instructor by impersonating a student

Design Plan

1. MVC

The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).

2. Dry Principle

We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one. Example: Currently, calibrated reviews are handled separately and peer reviews are handled separately. In our enhancement, we need to merge both the reviews. So instead of duplicating the code in calibrated reviews, we will use the same code to handle both the reviews.

No other design patterns will be required because we are going to touch methods which are either already existing or create new method when required. But the framework remains the same.

Files to be Modified

For implementing the functionality to allow calibration to be part of an assignment, there will be changes made to the view code and the models to include calibration into a normal assignment. The following files are required to implement this feature.

  1. DeadlineType model (Needs to support deadline type for Calibration)
  2. Assignments model (Calibration needs to be integrated into normal Assignment)
  3. _responses.html.erb (The user will be able begin calibration, view calibration results)
  4. StudentTask model (Have attribute current stage which should have the value ‘Calibration’).
  5. student_task/list.html.erb view (The current stage should be able to display ‘Calibration’ when the assignment is in calibration period).
  6. DueDate model (needs to store the calibration due dates for the assignments).
  7. caliberation_spec.rb (feature tests to verify our implementation)
  8. submitted_content/_self_review.html.erb

Test Plan

In GUI

To test this feature in GUI, perform the following steps:

1. Login as instructor in Expertiza

2. Go to Assignments and choose an assignment for which calibration is to be included

3. Click edit assignment and in the general tab, select the option - Calibration for training? and click save

4. Once that option is enabled, a new tab opens in the name "Calibration"

5. Now impersonate as a student, and submit a sample assignment

6. Now, under Due dates tab, a new row would have been created for calibration before the submission due date

7. Enter the Due Date for the calibration review and save the assignment

8. Go to the calibration tab and submit one expert review for the sample assignment

9. Login as student and under assignments home page, the assignment for which calibration was enabled will now have the status as "calibration"

10. Now go that assignment and go to other's work and submit the calibration review

11. Now in other's work page, you will see a new link: "Show calibration results" for the respective calibration review

Once the calibration period is over and submission period starts, the students can now submit the actual assignment. Post submission due date, the peer review period will start.

12. Now go others' work page. Here you will see the completed calibration reviews and the new assignments for which peer review is to be done. Here, the peer review count should exclude the calibration review count.

Automated test

Automated tests will be written in calibration_spec.rb file under specs/features folder.

The RSpec tests will cover the following scenarios:

1. If calibration is enabled, check if a new row is created in the deadlines table with the name as deadline type as Calibration.

2. Set the current date to be after the submission period and check if both calibration reviews and peer reviews are present in the reviews list

3. Check if the calibration result is rendered after a calibration review is submitted

Team Contact

MEMBERS
Harika Malapaka: hsmalapa@ncsu.edu
Vidhyalakshimi Sreenivasan: vsreeni@ncsu.edu
Valli Annamalai: vannama@ncsu.edu
Arjun Sharma: asharm33@ncsu.edu
MENTOR
Zhewei Hu: zhu6@ncsu.edu