CSC/ECE 517 Fall 2016 E1707: Top trading cycles to exclude previous teammates: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Adding a test case)
Line 71: Line 71:
*app/views/sign_up_sheet/list.html.erb
*app/views/sign_up_sheet/list.html.erb
*app/controllers/lottery_controller.rb
*app/controllers/lottery_controller.rb
== Testing Plan ==
1. "To check if team creation will create teams with students having put up with the teammates previously teamed up with"
:*Manually make change in DB to make 3 students previously team up with 3 other students.
:*Have 6 students bid for a topic.
:*Call the team creation method
:*Check if any student is paired with a student they had already teamed up with. If no, then this test is a success.
:*

Revision as of 15:50, 10 November 2016

Introduction

Expertiza is an open source web platform that enables students and instructors indulge in an enhanced and accelerated peer based learning milieu. It is aided by facilities like submissions of project work and reviews according to instructor approved deadlines, teaming up with other peers for various projects, reviewing other teams' and teammates' work and personalization of a project submission according to the best suited requirements. All these factors make Expertiza a valuable asset for an instructor to guide his students through the course with much more effectual results.

Expertiza source code is built using Ruby on Rails and is available on github with public access enabled repository.

Problem Description

Currently, before the start of an assignment, students can be asked to form teams on their own or teams can be assigned by the instructor. As the main motive is guide students via peer based learning, thus more number of peers the student works with, better learning. So, to enable students find different people for the assignments rather than just team up with same people for every assignment in the current course, students can ask for a team to be randomly allocated by not choosing the team members before hand. After the bidding for the project topics is over, the student is allocated a team. Here, in this case it may be possible that the student is allocated a team member they have previously worked with before. Hence, to enable student circumvent this situation in case he/she prefers different people for the particular, we need to provide an option for the students to choose if they prefer different team members for the assignment before the bidding for the project topics happens.

Project Outline

The main objective is to give students an option to choose whether or not they want to team up with their previous team members for a particular assignment in the current course.

If they choose the option, then when a student is added to the team, a check is performed if he/she has worked with the student before. If such is the case, then the student is swapped with some other student who hasn't worked with the same person before.

Another point to note is that if the student chooses some person to be on the team who he/she has worked with before, choosing this option would still allow the person to remain in the team.

Approach

To implement top trading cycle algorithm, we would be utilizing the web service that is hosted at http://peerlogic.csc.ncsu.edu/intelligent_assignment/swap_team_members. The students, and student history would be provided to the web service and the response from the web service would be utilized to update the teams. The web service is expected to respond back with new team after swapping the team members that have teamed up before. As part of the changes, a new flag would be introduced in the teams model. The teams do not want to be changed (swapped) would have to unset the flag. If the flag is unset, the teams would not be send to the web service for the swap operation. Only the instructor would see the option of utilizing this feature from the view. The feature would not be present for the students. As part of the changes a new method would be added in the lottery controller to implement this functionality. The new method would have the responsibility to utilize the webserver and update the teams according to the web service. A new button would be added in the instructor view for the assignments for invoking this new method. A new checkbox would be added in the students view for selecting/un-selecting the option of swap.

High Level Design

Populating Data For the Web Service


Flow Diagram once the data is populated


Detailed Workflow

• The first step is to include a checkbox to provide student with an option to select if he/she want to be assigned new people who were not previously team up with the student.

• An additional flag has to be introduced in the teams table that represents the value of the checkbox.


The following flow chart diagram describes this scenario at the front end:



• After instructor initiates the team creation process, first check is to know whether the team members have already been chosen by the student. If yes, then the team is created as it is with the chosen members.

• If, the student doesn't have all/some team members already selected, a team is created for the student by calling the create teams method in the top trading cycle service.

• After a team is created, the flag is checked if the student wanted new team members for the assignment who were not team up before.

• Then for each team member selected to be on the team, it is checked if the he/she has been teamed up with before. If no, then we move on to the next member.

• If the team member has been teamed up with before, we call the swap method in the top trading cycle service and pass the student's team history.

• Using that information, he/she is swapped with some other team member who hasn't been on the team.

• This process repeats for each member, until we cover all the team members. At the end, we have our team ready.


The following flow chart diagram describes this scenario at the back end:


Files To Be Modified

  • app/views/assignments/_reserve_topic.html.erb
  • app/controllers/sign_up_sheet_controller.rb
  • app/views/sign_up_sheet/list.html.erb
  • app/controllers/lottery_controller.rb

Testing Plan

1. "To check if team creation will create teams with students having put up with the teammates previously teamed up with"

  • Manually make change in DB to make 3 students previously team up with 3 other students.
  • Have 6 students bid for a topic.
  • Call the team creation method
  • Check if any student is paired with a student they had already teamed up with. If no, then this test is a success.