CSC/ECE 517 Spring 2016 E1625 Show confidence ratings for grade based on reputations of reviewers: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(35 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Show confidence ratings for grade, based on reputations of reviewers'''
This page documents the project to implement confidence ratings for a student peer review grade based on the reputations of the reviewers
 
__TOC__
'''Introduction to Expertiza'''
===Introduction to Expertiza===


[http://expertiza.ncsu.edu/ Expertiza] is a  web application developed using the [http://rubyonrails.org/ Ruby on Rails] framework as a combined effort of students and faculty. The main advantage of using Expertiza, in an educational environment, is for the instructor to introduce peer reviewing among the students. The instructors can create and customize assignments, create a list of topics the students can sign up for, have students work on teams and then review each other's assignments at the end. Expertiza supports submission of almost any document type, including the URLs and wiki pages.
[http://expertiza.ncsu.edu/ Expertiza] is a  web application developed using the [http://rubyonrails.org/ Ruby on Rails] framework as a combined effort of students and faculty. The main advantage of using Expertiza, in an educational environment, is for the instructor to introduce peer reviewing among the students. The instructors can create and customize assignments, create a list of topics the students can sign up for, have students work on teams and then review each other's assignments at the end. Expertiza supports submission of almost any document type, including the URLs and wiki pages.


Expertiza is supported by National Science Foundation under Grant No. 0536558. Additional funding from the [http://www.ncsu.edu/ NCSU] [http://litre.ncsu.edu/ Learning in a Technology-Rich Environment] (LITRE) program, the NCSU [http://ofd.ncsu.edu/teaching-learning/ Faculty Center for Teaching and Learning], the NCSU [http://stem.ncsu.edu/ STEM] Initiative, and the Center for Advanced Computing and Communication
Expertiza is supported by National Science Foundation under Grant No. 0536558. Additional funding from the [http://www.ncsu.edu/ NCSU] [http://litre.ncsu.edu/ Learning in a Technology-Rich Environment] (LITRE) program, the NCSU [http://ofd.ncsu.edu/teaching-learning/ Faculty Center for Teaching and Learning], the NCSU [http://stem.ncsu.edu/ STEM] Initiative, and the Center for Advanced Computing and Communication.
 
'''Motivation'''


Students select from a list of tasks to be performed, then they prepare their work and submit it to a peer-review system. The work is then reviewed by other students, who offer comments/feedback to help the submitters improve their work.
===The E1625 Project===
====Motivation====
Confidence ratings are meant to provide objective value to student assigned peer review scores. Students select from a list of tasks to be performed and then prepare their work and submit it to a peer-review system. The work is then reviewed by other students who offer comments/graded feedback to help the submitters improve their work.


During the peer review period it is important to determine which reviews are more accurate and show higher quality. Reputation is one way to achieve this goal; it is a quantization measurement to judge which peer reviewers are more reliable.
During the peer review period it is important to determine which reviews are more accurate and show higher quality. Reputation is one way to achieve this goal; it is a quantization measurement to judge which peer reviewers are more reliable.
Line 15: Line 15:
Peer reviewers can use expertiza to score an author. If Expertiza shows a confidence ratings for grades based upon the reviewers reputation then authors can more easily determine the legitimacy of the peer assigned score. In addition, the teaching staff can examine the quality of each peer review based on reputation values and, potentially, crowd-source a significant portion of the grading function.
Peer reviewers can use expertiza to score an author. If Expertiza shows a confidence ratings for grades based upon the reviewers reputation then authors can more easily determine the legitimacy of the peer assigned score. In addition, the teaching staff can examine the quality of each peer review based on reputation values and, potentially, crowd-source a significant portion of the grading function.


'''Description of confidence rating and our system'''
 
 
====Description of confidence rating and our system====
 
 
[[File:Diagram_E1625.png]]


[https://docs.google.com/viewer?url=https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FYang_Song36%2Fpublication%2F289528736_Pluggable_Reputation_Systems_for_Peer_Review_a_Web-Service_Approach%2Flinks%2F568ec8d008ae78cc05160aed.pdf%3FinViewer%3D0%26pdfJsDownload%3D0%26origin%3Dpublication_detail Hamer’s and Lauw’s algorithm]
[https://docs.google.com/viewer?url=https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FYang_Song36%2Fpublication%2F289528736_Pluggable_Reputation_Systems_for_Peer_Review_a_Web-Service_Approach%2Flinks%2F568ec8d008ae78cc05160aed.pdf%3FinViewer%3D0%26pdfJsDownload%3D0%26origin%3Dpublication_detail Hamer’s and Lauw’s algorithm]
Line 24: Line 29:


As the [https://docs.google.com/viewer?url=https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FYang_Song36%2Fpublication%2F289528736_Pluggable_Reputation_Systems_for_Peer_Review_a_Web-Service_Approach%2Flinks%2F568ec8d008ae78cc05160aed.pdf%3FinViewer%3D0%26pdfJsDownload%3D0%26origin%3Dpublication_detail paper] on reputation system by observes, “the Hamer-peer algorithm has the lowest maximum absolute bias and the Lauw-peer algorithm has the lowest overall bias.This indicates, from the instructor’s perspective, if there are further assignments of this kind, expert grading may not be necessary.”
As the [https://docs.google.com/viewer?url=https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FYang_Song36%2Fpublication%2F289528736_Pluggable_Reputation_Systems_for_Peer_Review_a_Web-Service_Approach%2Flinks%2F568ec8d008ae78cc05160aed.pdf%3FinViewer%3D0%26pdfJsDownload%3D0%26origin%3Dpublication_detail paper] on reputation system by observes, “the Hamer-peer algorithm has the lowest maximum absolute bias and the Lauw-peer algorithm has the lowest overall bias.This indicates, from the instructor’s perspective, if there are further assignments of this kind, expert grading may not be necessary.”
:;Reputation range of Hamer’s algorithm is :
:<span style="background-color: red;">red</span>                   value < 0.5
:<span style="background-color: yellow">yellow</span>              value is >= 0.5 and <= 1
:<span style="background-color: orange">orange</span>             value is > 1 and <= 1.5
:<span style="background-color: HoneyDew">light green</span>       value is > 1.5 and <= 2
:<span style="background-color: Chartreuse">green</span>               value is > 2


The main difference between the Hamer-peer and the Lauw-peer algorithm is that the Lauw-peer algorithm keeps track of the reviewer's leniency (“bias”), which can be either positive or negative. A positive leniency indicates the reviewer tends to give higher scores than average. Additionally the range for Hamer’s algorithm is (0,∞) while for Lauw’s algorithm it is [0,1].  
<br>
The main difference between the Hamer-peer and the Lauw-peer algorithm is that the Lauw-peer algorithm keeps track of the reviewer's leniency (“bias”), which can be either positive or negative. A positive leniency indicates the reviewer tends to give higher scores than average.  This project determines reputation by subtracting the absolute value of the leniency from 1. Additionally, the range for Hamer’s algorithm is (0,∞) while for Lauw’s algorithm it is [0,1].  
:;Reputation range of Lauw’s algorithm is
:<span style="background-color: red">red</span>                   value is < 0.2
:<span style="background-color: yellow">yellow</span>              value is >= 0.2 and <= 0.4
:<span style="background-color: orange">orange</span>             value is > 0.4 and <= 0.6
:<span style="background-color: HoneyDew">light green</span>       value is > 0.6 and <= 0.8
:<span style="background-color: Chartreuse">green</span>               value is > 0.8


'''Section: Design Pattern - Model-view-controller(MVC)'''
The instructor can choose to show results from Hamer’s algorithm or Lauw’s algorithm. The default algorithm should be Lauw’s algorithm.
A Sample of the webpage displaying reputations with Lauw's algorithm is given below.


In an MVC pattern, a software application is divided into three major components : Model, View and Controller. This allows separation of internal representations of informations from the information that needs to be presented to the user.
[[File:sample.png]]
 
====Design Pattern - Model-view-controller(MVC)====
 
In an [https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller MVC pattern] , a software application is divided into three major components : Model, View and Controller. This allows separation of internal representations of information from the information that needs to be presented to the user.


Model - Maintains the data, logic and the relationships between objects and the database. It also handles validations, associations and transactions.
Model - Maintains the data, logic and the relationships between objects and the database. It also handles validations, associations and transactions.
Line 35: Line 58:
View -  Displays data received from the controller in the User Interface.  
View -  Displays data received from the controller in the User Interface.  


Controller - Accepts input from client and converts it into actionable items for the model or the view. Its responsibilities include querying models and organizing data into a structure that is displayed by the view  
Controller - Accepts input from client and converts it into actionable items for the model or the view. Its responsibilities include querying models and organizing data into a structure that is displayed by the view


'''Section: Documentation'''
====Documentation====


All the documentation for the Expertiza system can be found in the following links: [https://github.com/expertiza/expertiza Expertiza on Github] ,   [http://wikis.lib.ncsu.edu/index.php/Expertiza Wiki documentation for Expertiza]
All the documentation for the Expertiza system can be found in the following links: [https://github.com/expertiza/expertiza Expertiza on Github] ,   [http://wikis.lib.ncsu.edu/index.php/Expertiza Wiki documentation for Expertiza]


'''Section: Classes Involved'''
===Implementation===


'''Section: Files Involved'''
====Files Involved====


'''Models:'''
====Models====


participant  
participant  


'''Views:'''
====Views====


grades/view.html.erb
grades/view.html.erb
Line 55: Line 78:
grades/view_my_scores.html.erb
grades/view_my_scores.html.erb


'''Controllers:'''
grades/_review_table.html.erb
 
assignment_form.rb, edit/_general.html.erb
 
====Controllers====


Reputation_web_service_controller.rb
Reputation_web_service_controller.rb


'''Standards:'''
====RSpec Files====


All our code follows the [https://docs.google.com/document/d/1qQD7fcypFk77nq7Jx7ZNyCNpLyt1oXKaq5G-W7zkV3k/edit global rules] on Ruby style.
reputation_web_service_controller_spec.rb


'''Section: Tasks Performed:'''
assignment_creation_spec.rb


●    Write a migration to add reputation field in participant table. (The default value of this field is 1, set any nil to 1)
grades_spec.rb


●    Change the send_post_request method in [https://github.com/expertiza/expertiza/blob/master/app/controllers/reputation_web_service_controller.rb reputation_web_service_controller] to obtain initial reputation values from DB instead of hard-coded.
====Standards====


●    Write a new method in [https://github.com/expertiza/expertiza/blob/master/app/controllers/reputation_web_service_controller.rb reputation_web_service_controller] to extract reputation values from JSON response and insert into DB.
All our code follows the [https://docs.google.com/document/d/1qQD7fcypFk77nq7Jx7ZNyCNpLyt1oXKaq5G-W7zkV3k/edit global rules] on Ruby style.


●    On view_my_score (student-end) and view_scores (instructor-end) pages: use different font color on students’ names to distinguish different level of reputation values
====Tasks Performed====


○    Reputation range of Hamer’s algorithm is :
#Write a migration to add reputation field in participant table. (The default value of this field is 1, set any nil to 1)
#Change the send_post_request method in [https://github.com/expertiza/expertiza/blob/master/app/controllers/reputation_web_service_controller.rb reputation_web_service_controller] to obtain initial reputation values from DB instead of hard-coded.
#Write a new method in [https://github.com/expertiza/expertiza/blob/master/app/controllers/reputation_web_service_controller.rb reputation_web_service_controller] to extract reputation values from JSON response and insert into DB.
#On view_my_score (student-end) and view_scores (instructor-end) pages: use different font color on students’ names to distinguish different level of reputation values


red                   value < 0.5
===Testing===


<span style="color:yellow">yellow</span>              value is > 0.5 to 1
We will be using the existing test suite used by gem to test any new code modification. We will be writing new test cases for any new public method exposed by existing classes.Our priority is to add functional tests associated with reputation for instructor, assignment and student controller. For example, One test workflow would be


orange             value is > 1 to 1.5
Testcase 1


light green       value is > 1.5 to 2
1) Instructor selects type of reputation algorithm


green               value is > 2
2) Chooses the assignment and the round for which the reputation needs to calculated


○    Reputation range of Lauw’s algorithm is
3) Receives the json response


red                   value is < 0.2
4) Check if the response is in the right format and the that the reputation for each student is stored in the database.


yellow              value is < 0.2 to 0.4


orange             value is > 0.4 to 0.6


light green       value is > 0.6 to 0.8
Testcase 2


green               value is > 0.8.
1) Student logs in to Expertiza.


●    Instructor can choose to show results from Hamer’s algorithm or Lauw’s algorithm. The default algorithm should be Lauw’s algorithm.
2) Selects a particular assignment.


'''Section: Testing'''
3) Clicks on 'View My Scores'.


We will be using the existing test suite used by gem to test any new code modification. We will be writing new test cases for any new public method exposed by existing classes.
4) Student should be able to see his/her reputation value along with the scores.


'''Section: References'''
===References===


'''1.    [https://github.com/expertiza/expertiza Expertiza on GitHub (Original version)]'''
'''1.    [https://github.com/expertiza/expertiza Expertiza on GitHub (Original version)]'''


'''2.    [http://expertiza.ncsu.edu/ Expertiza]'''
'''2.    [http://expertiza.ncsu.edu/ Expertiza]'''
'''Previous Design documents''' http://wiki.expertiza.ncsu.edu/index.php/CSC/ECE_517_Spring_2015

Latest revision as of 02:35, 26 April 2016

This page documents the project to implement confidence ratings for a student peer review grade based on the reputations of the reviewers

Introduction to Expertiza

Expertiza is a  web application developed using the Ruby on Rails framework as a combined effort of students and faculty. The main advantage of using Expertiza, in an educational environment, is for the instructor to introduce peer reviewing among the students. The instructors can create and customize assignments, create a list of topics the students can sign up for, have students work on teams and then review each other's assignments at the end. Expertiza supports submission of almost any document type, including the URLs and wiki pages.

Expertiza is supported by National Science Foundation under Grant No. 0536558. Additional funding from the NCSU Learning in a Technology-Rich Environment (LITRE) program, the NCSU Faculty Center for Teaching and Learning, the NCSU STEM Initiative, and the Center for Advanced Computing and Communication.

The E1625 Project

Motivation

Confidence ratings are meant to provide objective value to student assigned peer review scores. Students select from a list of tasks to be performed and then prepare their work and submit it to a peer-review system. The work is then reviewed by other students who offer comments/graded feedback to help the submitters improve their work.

During the peer review period it is important to determine which reviews are more accurate and show higher quality. Reputation is one way to achieve this goal; it is a quantization measurement to judge which peer reviewers are more reliable.

Peer reviewers can use expertiza to score an author. If Expertiza shows a confidence ratings for grades based upon the reviewers reputation then authors can more easily determine the legitimacy of the peer assigned score. In addition, the teaching staff can examine the quality of each peer review based on reputation values and, potentially, crowd-source a significant portion of the grading function.


Description of confidence rating and our system

Hamer’s and Lauw’s algorithm

There are two algorithms intended for use in calculation of the reputation values for participants.

There is a web-service (the link accessible only to the instructors) available which serves a JSON response containing the reputation value based on the seed provided in the form of the last known reputation value which we store in the participants table. An instructor can specify which algorithm to use for a particular assignment to calculate the confidence rating.

As the paper on reputation system by observes, “the Hamer-peer algorithm has the lowest maximum absolute bias and the Lauw-peer algorithm has the lowest overall bias.This indicates, from the instructor’s perspective, if there are further assignments of this kind, expert grading may not be necessary.”

Reputation range of Hamer’s algorithm is
red                   value < 0.5
yellow              value is >= 0.5 and <= 1
orange             value is > 1 and <= 1.5
light green       value is > 1.5 and <= 2
green               value is > 2


The main difference between the Hamer-peer and the Lauw-peer algorithm is that the Lauw-peer algorithm keeps track of the reviewer's leniency (“bias”), which can be either positive or negative. A positive leniency indicates the reviewer tends to give higher scores than average. This project determines reputation by subtracting the absolute value of the leniency from 1. Additionally, the range for Hamer’s algorithm is (0,∞) while for Lauw’s algorithm it is [0,1].

Reputation range of Lauw’s algorithm is
red                   value is < 0.2
yellow              value is >= 0.2 and <= 0.4
orange             value is > 0.4 and <= 0.6
light green       value is > 0.6 and <= 0.8
green               value is > 0.8

The instructor can choose to show results from Hamer’s algorithm or Lauw’s algorithm. The default algorithm should be Lauw’s algorithm. A Sample of the webpage displaying reputations with Lauw's algorithm is given below.

Design Pattern - Model-view-controller(MVC)

In an MVC pattern , a software application is divided into three major components : Model, View and Controller. This allows separation of internal representations of information from the information that needs to be presented to the user.

Model - Maintains the data, logic and the relationships between objects and the database. It also handles validations, associations and transactions.

View -  Displays data received from the controller in the User Interface.

Controller - Accepts input from client and converts it into actionable items for the model or the view. Its responsibilities include querying models and organizing data into a structure that is displayed by the view

Documentation

All the documentation for the Expertiza system can be found in the following links: Expertiza on Github ,   Wiki documentation for Expertiza

Implementation

Files Involved

Models

participant

Views

grades/view.html.erb

grades/view_my_scores.html.erb

grades/_review_table.html.erb

assignment_form.rb, edit/_general.html.erb

Controllers

Reputation_web_service_controller.rb

RSpec Files

reputation_web_service_controller_spec.rb

assignment_creation_spec.rb

grades_spec.rb

Standards

All our code follows the global rules on Ruby style.

Tasks Performed

  1. Write a migration to add reputation field in participant table. (The default value of this field is 1, set any nil to 1)
  2. Change the send_post_request method in reputation_web_service_controller to obtain initial reputation values from DB instead of hard-coded.
  3. Write a new method in reputation_web_service_controller to extract reputation values from JSON response and insert into DB.
  4. On view_my_score (student-end) and view_scores (instructor-end) pages: use different font color on students’ names to distinguish different level of reputation values

Testing

We will be using the existing test suite used by gem to test any new code modification. We will be writing new test cases for any new public method exposed by existing classes.Our priority is to add functional tests associated with reputation for instructor, assignment and student controller. For example, One test workflow would be

Testcase 1

1) Instructor selects type of reputation algorithm

2) Chooses the assignment and the round for which the reputation needs to calculated

3) Receives the json response

4) Check if the response is in the right format and the that the reputation for each student is stored in the database.


Testcase 2

1) Student logs in to Expertiza.

2) Selects a particular assignment.

3) Clicks on 'View My Scores'.

4) Student should be able to see his/her reputation value along with the scores.

References

1.    Expertiza on GitHub (Original version)

2.    Expertiza