CSC/ECE 517 Fall 2016 E1678: Review configuration options

From Expertiza_Wiki
Revision as of 01:14, 3 December 2016 by Vramakr2 (talk | contribs) (→‎Design)
Jump to navigation Jump to search

Introduction

Expertiza is an online system that is used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations. The project is funded by the National Software Foundation (NSF), 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. Expertiza is an open-source project with the source code available as a public repository on GitHub. It is developed using Ruby on Rails and is increasingly becoming robust thanks to the innumerable bugs being fixed by the community. The project has a micro-blog on SourceForge where the developer community report bugs and document updates.

Task Description

Requirement 1

Problem

Expertiza has two kinds of review strategies, as specified in the Review Strategy tab of assignment creation:

Auto-selected
Reviews are not preassigned, but when a student comes to do a review, (s)he can select from the reviews that are available at that point.
Instructor-selected

Instructor decides in advance who reviews whom.Until now, when the strategy is auto-selected, there has been no maximum on the number of reviews a student could select. So students can review as many topics as they want.

Requirement

Set a maximum on the number of reviews a student can choose with auto-selected reviewing. Implement a maximum, and allow the instructor to set that maximum via a checkbox asking whether there is a maximum, and if the box is checked, a textbox to specify what the maximum number should be.If there is a maximum, and a reviewer has already selected the maximum number of reviews, the button that allows selecting an additional review should be disabled.

Design

This requirement needs changes to the instructor view and student’s review page. These are small changes to the existing code. So we didn’t find any design pattern which can be used as part of requirement.

Instructor view changes
While creating the assignment, instructor should be able to specify maximum on the number of reviews done by each student. Assignment related configurations are handled by edit method in the assignment_controller. This method gathers all the information and calls edit view to display results. We added checkbox for this selection under Review Strategy tab of instructor view. If the instructor selects this checkbox, he’ll be prompted to enter the value for the maximum reviews allowed for each student. This threshold value is stored in num_reviews column of Assignment table. All these codes are part of assignments/edit/review_strategy file since it displays all the elements in Review strategy tab. Controller stores these values in assignments database. There are no changes to assignments controller. Instructor view looks as shown below.
Requirement 1 - Instructor View Changes
Student Topic Review page changes
Students review topics page is displayed by list method of Student_review_controller. We added a check in the controller to see if the chosen number of topics exceeds the value set by the instructor. Topic selection will be disabled in views/student_review/_set_dynamic_review.html.erb file if the selected number of topics exceeds configured maximum value as shown below.
Requirement 1 - Student View Changes

Requirement 2

Problem

Current behaviour of expertiza doesn’t allow the students to drop the reviews. If the student selects some topic and want to drop for some reason, he/she need to contact instructor to drop that review.

Requirement

Allow students to drop reviews. When a student has selected a review, there should be a button allowing the student to drop the review. But student should only be able drop a review if the review has not already been submitted.

Design

Student Topic Review page changes
Students review topics page is displayed by list method of Student_review_controller. List.html.erb file calls /views/student_review/_responses.html.erb partial to display already selected topics. Add a delete symbol to the review topics if the assignment stage is not “finished” and review is “not submitted”.
Requirement 2 - Allow students to drop reviews
Requirement 2 - Allow students to drop reviews only if Review has not been submitted.
Student_review_controller changes
Add destroy method to student_review controller. This method should track down the corresponding response map for the topic that needs to be dropped and then delete it.

Requirement 3

Problem

While creating the assignments instructor can allow students to see their teammate score by selecting Show teammate reviews? checkbox. But this option shows both the scores and teammate reviews on the grades/view_my_score page.

Requirement

Instructor should get finer level control to specify these options like show only teammate reviews and not scores, show only teammate scores but not reviews, Don’t show anything

Design

There is already existing code to display and hide the teammate reviews. This requirement doesn’t need any design patterns since we need to modify small portion of the existing code.

Instructor view changes
General tab of assignment creation has "show teammate reviews ?" option. We replaced this option with two options. "show teammate scores ?" , "show teammate reviews?". "Show teammate reviews ?" checkbox value is stored in show_teammate_reviews column in the Assignments table. We added one more boolean column show_teammate_score to hold the selection value of "show teammate scores ?" option. This is how instructor view will change after implementation.
Requirement 3 - Instructor View Changes
Changes to students view score page
Code to display teammate reviews and scores is present in the /views/grades/view_my_scores file. We added a code to selectively display scores and reviews based on the boolean variables ( show_teammate_reviews, show_teammate_score) present in the Assignments database table. If the instructor only selects show teammate scores? student will be able to see aggregate teammate score as shown below.
Requirement 3 - Show aggregate teammate scores

Students will be able to see only reviews if the instructor selects show teammate reviews ? during assignment creation.

Requirement 3 -Show only teammate reviews

Students will be able to see both the score and teammate reviews if the instructors checks both boxes from assignment configuration page.

Requirement 4

Problem

There is no option that lets reviewers see others’ reviews of the same work after they submit their review of that work.

Requirement

Implement an option that lets reviewers see others’ reviews of the same work, after they submit their review of that work. This could help reviewers learn from other reviewers of the same work.

Design

This option should be specified in a reasonable way on the Create Assignment page. So we didn’t find any design pattern which can be used as part of requirement 4.

Instructor view changes
While creating the assignment, instructor should be able to specify if students should be allowed to see reviews done by other students for the same work. Assignment related configurations are handled by edit method in the assignment_controllers. This method gathers all the information and calls edit view to display results.We are planning to add checkbox show_other_reviews for this selection under General tab of instructor view. If the instructor selects this checkbox, this feature will be active for the assignment. The checkbox will be added in the "assignments/edit/_general" file since It displays all the elements in General tab. show_other_reviews will be a hidden form field that stores the value of this checkbox that is finally persisted in assignments database.
Changes to student_response controller and views
The View link displays the submitted/in progress reviews of the student and is handled by the list action of the StudentReviewController (student_review_controller.rb) and the associated list view is "/views/student_review/list.html.erb" file. We plan to add another link View Other Reviews to the partial _reponses view. This link would be visible only if the show_other_reviews option has been enabled by the instructor. This link would be next to each of the Review Topics submitted by the student for the current round of that assignment. Clicking this link would be handled by an action other_reviews of the reponse_controller(response_controller.rb). After fetching some necessary query parameters the action method would filter responses submitted by other students for that topic and round, exclude the response of the logged in student and set some instance variables. These instance variables would be displayed in the new view other_reviews in (views/response/other_reviews.erb).
Requirement 4 - Instructor View Changes

Requirement 5

Problem

The existing implementation of expertiza doesn’t provide a student the option to not see review scores or the text feedback. Sometimes a student might just want to see the scores and not the reviews and other times might want to see the reviews and not the scores. The ability to turn off either one is not provided by expertiza.

Requirement

When a student signs in there should be an option that allows the students to change the review score settings. The students will be provided with options of choosing either viewing only the review score or viewing only the text feedback or viewing both.

Design

Student View Scores page changes
Student review scores is displayed in the View Score page and the /views/grades/view_my_score.html.erb file handles this operation. In this view we plan to provide a dropdown list in which the student can select if he/she wants to view scores only, view feedback only or both. The default setting will be to view both.
Grades Controller changes
The view_my_score method in the grades controller performs the task of retrieving the scores and feedback from the database and also does various additional functions like calculating average, etc. In this method, based on the option chosen by the student either only scores or text feedback or both will be retreived. If the student does not explicitly specify any option then both the scores and feedback will be fetched.