CSC/ECE 517 Spring 2018- Project E1818: Role-based reviewing: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
==Introduction==
==Introduction==
===Overview:===
===Overview===
The project is a role-based reviewing project. These roles can be better named as duties, corresponding to the duty of a team member in a particular project/assignment. Borrowing from different Agile methodologies like SCRUM, each team member has a particular role. For example, one team member may work mainly on the documentation, another on writing tests and another member may write most of the code. Although there is no clear distinction in the duties as each team member still contributes to other duties, a much more meaningful review can be done if the review questionnaire was role specific rather than being assignment specific. Currently, there is a single teammate review rubric for each assignment. This means that some review rubrics are not applicable for all the projects and also for all team members. For instance, if there is a question which says “What percentage of the code was written by this member?” This may not be applicable for the team member who wrote tests and it is definitely not applicable for the member who wrote the documentation. The project aims at creating different review rubrics for different duties, which an instructor can create for an assignment. Students can select a particular duty they want to perform in that project.
The project is a role-based reviewing project. These roles can be better named as duties, corresponding to the duty of a team member in a particular project/assignment. Borrowing from different Agile methodologies like SCRUM, each team member has a particular role. For example, one team member may work mainly on the documentation, another on writing tests and another member may write most of the code. Although there is no clear distinction in the duties as each team member still contributes to other duties, a much more meaningful review can be done if the review questionnaire was role specific rather than being assignment specific. Currently, there is a single teammate review rubric for each assignment. This means that some review rubrics are not applicable for all the projects and also for all team members. For instance, if there is a question which says “What percentage of the code was written by this member?” This may not be applicable for the team member who wrote tests and it is definitely not applicable for the member who wrote the documentation. The project aims at creating different review rubrics for different duties, which an instructor can create for an assignment. Students can select a particular duty they want to perform in that project.


Line 7: Line 7:
[[File:Uml1.png]]
[[File:Uml1.png]]


==Proposed Implementation:==
==Proposed Implementation==
The project introduces changes from the instructor view and the student view. The steps for implementation are as follow:
The project introduces changes from the instructor view and the student view. The steps for implementation are as follow:
* Create a Duties Table
* Create a Duties Table
Line 24: Line 24:
==Files to be modified:==
==Files to be modified:==


===New files:===
===New files===
* Duties Table
* Duties Table
** Duty ID
** Duty ID
Line 30: Line 30:
** Instructor user id
** Instructor user id


==Files that have to be modified:==
===Files that have to be modified===
* app/views/assignment/edit
* app/views/assignment/edit
* app/views/student_teams/view
* app/views/student_teams/view
Line 37: Line 37:
* app/questionnaire/edit
* app/questionnaire/edit


==Test Plan:==
==Test Plan==


* Instructor tests
* Instructor tests
Line 52: Line 52:
** For the teammate review, students with different roles should have different questions because of the different rubrics.
** For the teammate review, students with different roles should have different questions because of the different rubrics.


==Implementation Doubts:==
==Implementation Doubts==
* Can an instructor add questions for a rubric common to all, along with duty based questions?
* Can an instructor add questions for a rubric common to all, along with duty based questions?
* Is it okay to store the duty ids as CSV values in the questionnaire table to determine what duties apply to a particular assignment or will there be different questionnaires for each duty for a particular assignment?
* Is it okay to store the duty ids as CSV values in the questionnaire table to determine what duties apply to a particular assignment or will there be different questionnaires for each duty for a particular assignment?

Revision as of 00:58, 9 April 2018

Introduction

Overview

The project is a role-based reviewing project. These roles can be better named as duties, corresponding to the duty of a team member in a particular project/assignment. Borrowing from different Agile methodologies like SCRUM, each team member has a particular role. For example, one team member may work mainly on the documentation, another on writing tests and another member may write most of the code. Although there is no clear distinction in the duties as each team member still contributes to other duties, a much more meaningful review can be done if the review questionnaire was role specific rather than being assignment specific. Currently, there is a single teammate review rubric for each assignment. This means that some review rubrics are not applicable for all the projects and also for all team members. For instance, if there is a question which says “What percentage of the code was written by this member?” This may not be applicable for the team member who wrote tests and it is definitely not applicable for the member who wrote the documentation. The project aims at creating different review rubrics for different duties, which an instructor can create for an assignment. Students can select a particular duty they want to perform in that project.

UML Diagram

Proposed Implementation

The project introduces changes from the instructor view and the student view. The steps for implementation are as follow:

  • Create a Duties Table
  • The duty ID will be used by other tables like the question table and hence will be the primary key.
  • An assignment has particular duties. Thus, the assignment number will be the foreign key for the Duties table.
  • The Duties created by one Instructor should be visible and reusable by that instructor only. Thus, the instructor id will also be a foreign key in the Duties table.
  • For a particular assignment, create a check box that allows an instructor to create a role based review or not.
  • If the instructor selects checkbox role-based reviewing, then a button should appear for adding roles called “Add Duties”.
  • For this we will have to add a boolean field that checks whether a particular assignment is using duty based grading.
  • When the “Add Duties” button is clicked, a javascript partial will be rendered where the instructor can select from previously added duties or add a new role.
  • An instructor can decide the number of duties for a particular assignment, the number of team members who can undertake a particular duty and if any of the duties are optional.
  • The instructor can create Team-mate review Questionnaire based on the duty.
  • When a student goes to “Your team”, he should be able to select a duty from a dropdown menu.
  • A student can only select one duty.
  • A team member cannot change their role after the assignment submission deadline.

Files to be modified:

New files

  • Duties Table
    • Duty ID
    • Name of duty
    • Instructor user id

Files that have to be modified

  • app/views/assignment/edit
  • app/views/student_teams/view
  • app/tree_display/views/list
  • app/questionnaire/new
  • app/questionnaire/edit

Test Plan

  • Instructor tests
    • Check the box for role based reviewing. If not, proceed with the default rubric for the assignment.
    • Able to create new roles and select from already existing roles.
    • Should not be able to see roles from other instructors.
    • Select corresponding rubrics for a particular role.
  • Student(team member) tests
    • Before submitting the project, the team members should be able to add a role for themselves from the roles set by the instructor.
    • Multiple students may have the role but 1 student cannot have multiple roles.
  • Reviewer tests
    • For the teammate review, students with different roles should have different questions because of the different rubrics.

Implementation Doubts

  • Can an instructor add questions for a rubric common to all, along with duty based questions?
  • Is it okay to store the duty ids as CSV values in the questionnaire table to determine what duties apply to a particular assignment or will there be different questionnaires for each duty for a particular assignment?
  • Need to figure out more places where code needs to change during implementation.
  • Need to figure out where a student stores his replies to a particular questionnaire so as to add duty id for that student or where to store the role a student selects for a particular assignment so as to be graded just for that role.
  • Can a student team with less students than the number of duties provided, take on multiple roles and be graded for the same?
  • All roles equal in terms of grading and workload?
  • Where to check whether all students in a team have selected their roles and when to notify them to select if they haven’t?