This file hosts the methods required to build a review table. It has methods for linking an assignment to a questionnaire, adding reviews and score with color coding, displaying team members, etc. It also contains more computational based functions that calculate the number of comments greater than 20 words, for example. This file made sense to add a method that loops through each question and calculates the average score given/received for that specific question. It returns an array containing the average review score and the maximum possible score which is further discussed in the below section.
This file hosts the methods required to build a review table. It has methods for linking an assignment to a questionnaire, adding reviews and score with color coding, displaying team members, etc. It also contains more computational based functions that calculate the number of comments greater than 20 words, for example. This file made sense to add a <code>composite_score</code> method that loops through each question and calculates the average score given/received for that specific question. It returns an array containing the average review score and the maximum possible score which is further discussed in the below section. The method is smart in the sense that it can filter out questions that do not have a numeric response.
===== _view_heatgrid.html.erb =====
===== _view_heatgrid.html.erb =====
This file will call the _view_compompsite_score.html.erb partial view which calls the composite_score method to populate a string tag that displays the average score for all reviews out of the maximum possible score. The maximum possible score value sets a reference for how well the student performed. This was a requirement for showing a composite score with meaning because not all questions have the same maximum score.
This file will call the <code>_view_compompsite_score.html.erb</code> partial view which calls the <code>composite_score method<code> to populate a string tag that displays the average score for all reviews out of the maximum possible score. The maximum possible score value sets a reference for how well the student performed. This was a requirement for showing a composite score with a reference point because not all questions are required to have the same maximum score. For example, take a review table with two questions with maximum scores of 1 and 5. If the student received a 1 / 1 and 5 / 5, the composite score would show 3 as calculated by the scores received divided by the number of questions. This would be confusing so a reference point must be added. This is done by summing the maximum scores possible 1 and 5 and again dividing by the number of questions. The view will now show 3 / 3 which are perfect marks!
In Expertiza, both students and instructors are able to view a student's teammate reviews. On the reviews page, only a single heatmap is shown which does not provide a full representation of the student's performance. In addition, it is unclear if the heatmap is displaying information about the reviews the student has written or received. The heatmaps on the instructor and student views are not labeled and do not provide clarity on the information they are displaying.
Proposed Changes
Calculate Composite Review Score
Problem
It would be useful for the instructor to see a composite score derived from 1) all of the reviews a team has received and 2) all of the reviews a student has received from teammates and 3) all of the reviews a student has given to teammates. This would be calculated in a similar fashion to the average peer review score shown at the top of a student's review page. Currently, all review tables only display the average score for each row as shown on the figure below. As each row hosts a unique question, the average row score is the average score given/received for each question. The image below shows where we would like to display the composite score.
Instructor view of a student's reviews does not show a composite score
Solution
The previous semester's team calculated the composite value within the HTML view page which does not follow the design principles of this course. We plan to move this mathematical operation to the appropriate model where it where will be accessible to any view that requires a composite score for its heatmap.
The problem will have to be solved through changes in the two files listed below:
vm_question_response.rb
This file hosts the methods required to build a review table. It has methods for linking an assignment to a questionnaire, adding reviews and score with color coding, displaying team members, etc. It also contains more computational based functions that calculate the number of comments greater than 20 words, for example. This file made sense to add a composite_score method that loops through each question and calculates the average score given/received for that specific question. It returns an array containing the average review score and the maximum possible score which is further discussed in the below section. The method is smart in the sense that it can filter out questions that do not have a numeric response.
_view_heatgrid.html.erb
This file will call the _view_compompsite_score.html.erb partial view which calls the composite_score method to populate a string tag that displays the average score for all reviews out of the maximum possible score. The maximum possible score value sets a reference for how well the student performed. This was a requirement for showing a composite score with a reference point because not all questions are required to have the same maximum score. For example, take a review table with two questions with maximum scores of 1 and 5. If the student received a 1 / 1 and 5 / 5, the composite score would show 3 as calculated by the scores received divided by the number of questions. This would be confusing so a reference point must be added. This is done by summing the maximum scores possible 1 and 5 and again dividing by the number of questions. The view will now show 3 / 3 which are perfect marks!
Improved Handling of Relevant Reviews
Problem
The heatmap displayed on the Student view does not give the full representation of the group performance. The view should show both the reviews received from a students teammates as well as external reviews. The image below shows that the students can not see their teammates reviews even when the instructor checkbox for viewing teammate reviews is selected.
The "Your Scores" page for students does not show teammate reviews
Solution
We will need to improve how the review table(s) intended for display are generated.
The problem will have to be solved through changes in file listed below:
grades_controller.rb
This file contains the logic for orchestrating the build of the heatmap tables. The logic is this controller will need to be updated to populate the table array with reviews from each team participant.
view_team.html.erb
This file controls what tables are displayed when an instructor views a team. This view will needed to be updated to include the display the missing tables.
Improved Display of Review Heatmap
Problem
This problem contains many parts. Firstly, the student scores view does not even show a heatmap of reviews at all as seen below.
The my scores view page for the student doesn't show any teammate review heatmaps
This will have to be included with the condition that the instructor has selected that the student can view the reviews in the assignment options. Additionally, in the display of the heatmap itself there is no indication if the reviews displayed are reviews about the student signed in or made by the student signed in as seen below.
The heatmap printout doesn't specify if showing reviews by or for a certain student
A more descriptive label will have to be added to show this. Lastly, a composite score will have to be displayed under each heatmap to average the scores that the student received.
Solution
The problem will have to be solved through changes in two erb files listed below:
_view_heatgrid.html.erb
This file contains the logic to display the actual heatgrid to the user. It will have to be modified in two ways. Firstly, we will have to add a conditional header that will either display that the heatgrid shows reviews for the student or by the student depending on the type of questionnaire that it is displaying. Secondly, we will have to add a place under the heatgrid to display the composite score of that heatgrid. In the previous attempt at this project, the group added the calculation logic for the composite score to this file which is incorrect because it is an erb file. Instead, this file will contain a call to a funtion in the model that will calculate the value and return it for display.
view_team.html.erb
This file contains the logic to display the page where the student views the questionnaires. We will have to add logic to display the reviews of that student if the assignment is set to have show teammate reviews be true.
Preservation of Anonymized View Naming Convention
Problem
Student names are visible in the teammate reviews tab, even when the user is in the anonymized view. So the display when in an anonymized view, where no names are to be shown, but only “Student nnn”,“Instructor mmm”, etc. (Anonymized view is intended to be used in demos, so we can use live data to demo the system without showing anyone’s name.)
Solution
We plan to remove the team member name from being displayed when using anonymized view by adding some changes to the following files.
user.rb
In user file the anonymized user function is defined and when called it checks and returns True if a particular user is in anonymized view or else returns False. We will be improving the conditional logic to display the user name only when not present in anonymized view.
_view_heatgrid.html.erb
The file contains the logic to display the heatgrid to the user. When we make the changes to user file we will need to make some changes in this file to not display the user name in anonymized view.
Use Case Flow diagram for Anonymized View
UML for Anonymized
Bugs
In addition to our required changes, we plan to explore the following bugs that we have found on the reviews page for the instructor:
Up until student 9020 all scores and averages are correct. It is theorized that the average score for student 9020 is being pulled from student 8977's scores on table 1. Student 9020 is showing review scores of student 9022 so the cells have become shifted by 1. The student 9020 review has essentially disappeared from the view. The average of each row is being populated in student 9042 due to this shift.
The top image shows the student 9022 review which you can see is populated in student 9020 column from the bottom image.
Student 9022 reviewInstructors reviews page should bugs on the table
Testing
Flow to access affected views
_view_heatgrid.html.erb
This file can be accessed through the GUI differently when logged in as an instructor or a student. When logged in as a student:
Click "Assignments" at the top of the screen
Click desired assignment to view reviews from
Click on "Your scores" button
Scroll down past assignment score heatgrid
You will see the reviews that others have made about you if the instructor has enabled that setting on this assignment
If you are logged in as an instructor:
Click "Manage..." then "Assignments" at the top of the screen
Click on the "view scores" button on the desired assignment
Click the plus next to the team that you are interested in
Click on the "Teammate Reviews" tab at the top of the panel
Select the student that you wish to see the reviews about
The relevant heatgrid will display with a descriptive title
Test Login Credentials
Instructor
username: instructor6
password: password
Student
username: student7185
password: password
Added Unit Tests
view_team_spec.rb
This test file was at first failing even without making any changes so first we fixed the failing test by filling in some incomplete factory creations in the set up of the test. Then, a negative check was added to make sure the teammate review scores are not displayed to the student while the assignment has show teammate reviews set to false. We had to do a negative case instead of positive because it was overly complicated to create a teammate review submission and a vm with that teammate review for the html file to register that there was a review to display. The added negative check looks like the code segment below:
expect(page).to_not have_text 'Teammate Review'
Added System Tests
RSpec tests will be added as a component of the first code submission.
Added System Tests
The following tests were conducted as follows:
- Sign in as test student7185 above
- Navigate to assignments
- Click on the Final Project assignment
- Click on "Your scores" button
1) View student reviews received from teammates and given to teammates from a student view
---Code still being developed---
2) View teammate reviews as a student when enabled
The teammate reviews will be shown at the bottom of the screen because it has been enabled by the instructor:
Student view shows teammate reviews of student if allowed
3) View composite score of reviews from a student view
---Code still being developed---
The following tests were conducted as follows:
- Sign in as instructor above
- Click Manage -> Assignments
- Click on the View Scores of Final Project assignment
- Click into any team
1) View student reviews received from teammates and given to teammates from an instructor view
---Code still being developed---
2) View composite score of reviews from an instructor view
---Code still being developed---
3) Show descriptive name for heatmaps from an instructor view
The displayed heatgrid has a new, descriptive title describing exactly what reviews are being displayed:
Teammate Review Heatmap has descriptive title
Manual Testing for Anonymized User View:
The following tests were conducted as follows:
- Sign in as test student7185 above
- Navigate to assignments
- Click on the Final Project assignment
- Click on "Your scores" button
1) View your teammates names in the Team members section of review scores
In Normal user view the Users name or ID is displayed.
Anonymized View
2) Switch to Anonymized View and view your teammates names in the Team members section of review scores
In Anonymized view the Users name or ID is not displayed.