CSC/ECE 517 Spring 2016/Badging System

From Expertiza_Wiki
Revision as of 21:33, 11 April 2016 by Magoff2 (talk | contribs)
Jump to navigation Jump to search

Introduction

Background

Much like physical badges in the army and youth scout troops, digital badges are an assessment and credentialing mechanism that is housed and managed online. Badges are designed to make visible and validate learning in both formal and informal settings, and hold the potential to help transform where and how learning is valued. In other words, badges may be used in order to set goals and motivations for students and reward and may help to improve their academic scores. Badges can also be considered as a way to reward student’s success. Moreover, badges can be used by teachers for alternative assessment techniques.

Purpose

One request for the Expertiza system is to add a badging system as a way to measure student performance. Expertiza will take advantage of the motivations created from badges by awarding students with new badges based off providing a variety of factors within the Expertiza system. Some of these badges include: achieving a top percentage of scores in an assignment, achieving a high peer review score, performing well overall in a course and other manual accomplishments deemed necessary by the teaching staff for a course. Instead of implementing the whole badging system, we will call an existing online badging web service, Credly, and integrate it with Expertiza.

Requirements

System Requirements

The system requirements focuses on adding a 'badging' functionality in Expertiza. This feature allows instructors to assign badges to students based on their performance and accomplishments. Badges are of types - course-level and assignment-level. Badges can be pre-selected while creating an assignment and automatically triggered when student finished the assignment or assignment is closed. Badges can also be awarded manually by instructor to an individual or a team. A leaderboard gives an account of standing of students in terms of badges earned. In order to implement a badging system, a third party badge manager will be utilized called Credly. Credly provides a way for users to accumulate and display badges they earn in a centralized way. By utilizing Credly, the development of the actual badges and badge management can be abstracted away from the project.

The testing of these requirements will use Rspec testing framework for all non-user interface related modifications. All user-interface modifications resulting from the user requirements will be tested manually.

Use Case

The following simple illustration shows the use cases of the system.

Tasks To Do

  • Create db table to store the participants with badges.
  • Write code for calling the service and calculating/identifying badges based on the scores of students on all assignments.
  • Add badge specification to course details and assignment details page for the instructor to specify the badges.
  • Create views for both students and instructors. Students should be able to view their badges from different courses and instructors should be able to see the badges awarded/earned for their class.
  • Display a subset of the badge holders on the leaderboard page. Also, student can view badges of other students in the course.
  • Criteria to be followed for awarding badges:
  1. Top scores for an assignment. (configured at assignment page)
  2. All scores more than a threshold for an assignment. (configured at assignment page)
  3. Mean score of selected assignments being greater than threshold. (configured at course page)
  4. Top mean score of selected assignments. (configured at course page)
  5. Discretionary merit badges for projects that exceed expectations.

Files Identified

Associated files goes here.

Deciding External Web Service

Factors Open Badges Credly Bestr
Native User Management No Yes. No need to store all records locally. No
Extensive API Support Yes. But many still in beta phase. Yes. (Primary reason for choosing Credly) No
Interactive Badge Builder SDK Yes. But still in beta phase. Yes Yes. But gives few options for cusromization.
Existing Integration with other systems Few Many No
Monetary Costs Free Free tier as well as paid plans. Paid.

From the above rubrics, we decided to use Credly as our web service for badging system.

Design

The Expertiza badging system will largely be driven by academic achievement from students. By using student’s scores as a way to provide badges it will be easy to automate the badge reward system upon closing an assignment. For instance, an instructor may decide to reward badges to the top 3 scores on an assignment so once the assignment closes those students will automatically be given those badges.

In order to use badges for an assignment, an instructor must turn on badging for their assignment upon creating or editing an assignment. When turning on the badging system the instructor may specify how many badges will be distributed, or choose to distribute them based off of a scoring threshold that students must achieve.

Following the completion of an assignment an instructor may view the awarded badges on the assignment page. A student will be able to view their earned badges on their homepage categorized by course and assignment.

In order to implement a badging system, a third party badge manager will be utilized called Credly. Credly provides a way for users to accumulate and display badges they earn in a centralized way. By utilizing Credly, the development of the actual badges and badge management can be abstracted away from the project.

The layout of each page will match with the currently existing design standards in Expertiza we will continue to use the header and will use headings and links much like other pages. Figure 1 below shows what the leaderboard may look like from a student perspective. Each course the student has participated in will be displayed on the page and by clicking the “Show Badges” the page will generate a list of each of the participants sorted by the number of badges they have earned. In order to display the badges the application will make a call to Credly to query about student badges.

Figure 1: Student Leaderboard

The next figures are all from the perspective of an inspector or admin. In Figure 3 below an instructor may view the badges earned for a given assignment or course in which they own. They will get to his page by clicking a badges button from either the assignments or courses page. The title of the page will be the name of either the course of assignment. Like the previous figure, by clicking show badges the list of course participants will appear sorted by the number of badges they have earned. Another link, “Award Badges” will be used to manually grant a badge. When an instructor or admin clicks on the link, they will be directed to the credly page in order to grant the badge to the student.

Figure 2: Instructor assignment / course badge view

In order to use badges for an assignment, an instructor must first enable them for the assignment. The badges will be enabled by default. The figure below shows some of the settings associated with the badges system. Instructors may choose to automatically grant badges to students based off of their performance on the assignment. When editing or creating a new assignment they may come to the new badges tab and configure how they want the badges granted. Instructors may choose to grant some number of badges to the top scores of the group defined by the number the input, or they may decide to grant badges to anyone who may achieve a score past the provided scoring threshold.

Figure 3: Assignment Badge Settings

Like assignments, courses also need to have some settings to configure badges. In Figure 4, instructors may automatically grant badges for students based on mean scores of multiple assignments throughout the course. First the instructor must check all of the assignments they would like to include in the mean then they must select a scoring strategy. Like the previous figure, they may choose between granting a badge to the top number of participants based on instructor input, or they may set a threshold on a mean score and any student who has achieved a score past the mean will be granted a badge.

Figure 4: Edit Course

Database Design

The following tables will be created to implement a solution for this project.

1. badges table - which stores badge_id and their descriptions.

Column Type Comment
badge_id int Primary key. Auto-generated
name string Description of the badge

2. badge_users table - which stores details about what badges are assignment to a user and related details.

Column Type Comment
badge_user_id int Primary key. Auto-generated
badge_id int Referenced from badges table
user_id int Referenced from users table
course_id int Referenced from courses table
assignment_id int Referenced from assignments table
is_course_badge boolean Whether badge is a course-badge or individual-badge

3. badge_groups - which stores information about which badges should be assigned depending on the threshold score.

Column Type Comment
badge_group_id int Primary key. Auto-generated
strategy string Describes the strategy of awarding
threshold int Score required to award the badge

4. assignment_groups - which stores details about the team badges.

Column Type Comment
assignment_group_id int Primary key. Auto-generated
badge_group_id int Referenced from badge_groups table
assignment_id int Referenced from assignments table

Design Pattern

  1. MVC – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively).
  2. DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.

Object Oriented Design

As with most Ruby on Rails applications, this solution uses the Model-View-Controller design pattern. The following diagram shows a workflow of the planned design along with the attributes and operations that are relevant to the implementation of this solution.

Mockups

Mockup goes here