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
No edit summary
Line 23: Line 23:


=== High Level Design ===
=== High Level Design ===
==== Populating Data For the Web Service ====
[[File:GetDataForSwap.png]]
==== Flow Diagram once the data is populated ====
[[File:SendDataToWebService.png]]
=== Front End ===
=== Front End ===
1. 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.
1. 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.

Revision as of 00:25, 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 swaping 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

Front End

1. 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.

2. 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:



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