Difference between revisions of "Competencies"

Jump to: navigation, search
(Goals)
(curricula concepts overlap with site-wide groups)
Line 20: Line 20:
 
#* Allow "admins" to import competencies from another Moodle instance
 
#* Allow "admins" to import competencies from another Moodle instance
 
#* Allow "admins" to setup a sync of competencies with external systems
 
#* Allow "admins" to setup a sync of competencies with external systems
# Attachable to curricula
 
#* Allow "admins" to define a curriculum and attach it to "students"
 
 
# Assigning evidence
 
# Assigning evidence
 
#* Allow "admins" to assign to a competency:
 
#* Allow "admins" to assign to a competency:
Line 31: Line 29:
 
#** Observation (e.g., a comment / testimony / reference)
 
#** Observation (e.g., a comment / testimony / reference)
 
# Specifying proficiency levels
 
# Specifying proficiency levels
#* Allow "admins" to assign to a curriculum competency:
+
#* Allow "admins" to assign to a competency:
 
#** A proficiency level (i.e., competency scale value)
 
#** A proficiency level (i.e., competency scale value)
 
#** Existing course completion criteria for a course
 
#** Existing course completion criteria for a course
Line 49: Line 47:
  
 
=Definitions=
 
=Definitions=
'''Curriculum''': A field of study, subject of interest, branch of knowledge, specialty, or organisational role that has a unique set of required courses and competencies. Examples:
 
"First year English major"
 
"Accounting"
 
"Junior Accountant"
 
"Grade 1"
 
"Year 1"
 
 
 
'''Scale''': A way to measure a competency. Examples:
 
'''Scale''': A way to measure a competency. Examples:
 
  "Below average, Average, Above average"
 
  "Below average, Average, Above average"
Line 87: Line 78:
 
  "File - College Diploma - 4:00pm May 28, 2009 - Bachelor of Science Computer Science"
 
  "File - College Diploma - 4:00pm May 28, 2009 - Bachelor of Science Computer Science"
  
'''Expected proficiency level''': The required rating (based on a scale) or grade for a curriculum competency. Examples:
+
'''Expected proficiency level''': The required rating (based on a scale) or grade for a competency. Examples:
 
  "Average"
 
  "Average"
 
  "5"
 
  "5"
Line 106: Line 97:
 
=User interface=
 
=User interface=
 
'''Individual learning plan'''
 
'''Individual learning plan'''
# Each user can have a set of either courses to be completed, competencies to be achieved, or a mixture of both for his/her current curriculum. These comprise a user's individual learning plan (IDP).
+
# Each user can have a set of either courses to be completed, competencies to be achieved, or a mixture of both. These comprise a user's individual learning plan (IDP).
 
# Each user's IDP will show:
 
# Each user's IDP will show:
 
## Completed courses
 
## Completed courses
Line 112: Line 103:
 
## Competencies achieved. This will include the competency terms and meta data made visible to the user, as well as the evidence info (type, date, ratings and grades).
 
## Competencies achieved. This will include the competency terms and meta data made visible to the user, as well as the evidence info (type, date, ratings and grades).
 
## Competencies not yet achieved. This will also include the competency terms, meta data made available to the user, as well as the expected proficiency levels for each competency.
 
## Competencies not yet achieved. This will also include the competency terms, meta data made available to the user, as well as the expected proficiency levels for each competency.
# Each user can see a list of his/her previous curricula.
+
# Each user can see a list of all his/her courses and competencies as a "transcript" or "record of learning."
# Each user can see a list of all his/her courses and competencies for all curricula as a "transcript" or "record of learning."
 
 
 
'''Curricula'''
 
# An admin can browse list of curricula.
 
 
 
'''Curriculum courses and competencies'''
 
# Each curriculum can have a set of courses to be completed, competencies to be achieved, or a mixture of both.
 
# A user can be assigned to a curriculum (using an interface similar to assigning a user to a role or group).
 
# A course or group of courses can be selected for a curriculum from a list of all courses (by drilling-down category/sub-category) or from the results of a search (by course name or course description).
 
# A competency or group of competencies can assigned to a curriculum by navigating and/or searching competencies and selecting from the results.
 
  
 
=Database structures=
 
=Database structures=
Line 567: Line 548:
 
|
 
|
 
|The user who last modified this evidence
 
|The user who last modified this evidence
|}
 
 
 
'''curriculum'''
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|Auto incrementing
 
 
|-
 
|'''shortname'''
 
|int(10)
 
|
 
|The short name for the curriculum
 
 
|-
 
|'''fullname'''
 
|text
 
|
 
|The full name for the curriculum
 
 
|-
 
|'''description'''
 
|text
 
|
 
|A description of the curriculum
 
 
|-
 
|'''timecreated'''
 
|int(10)
 
|
 
|The time when this curriculum was created
 
 
|-
 
|'''timemodified'''
 
|int(10)
 
|
 
|The time when this curriculum was last changed
 
 
|-
 
|'''usermodified'''
 
|int(10)
 
|
 
|The user who last modified this curriculum
 
|}
 
 
 
'''curriculum_info_fields'''
 
 
Curriculum custom fields.
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|Auto incrementing
 
 
|-
 
|'''shortname'''
 
|varchar(255)
 
|
 
|Shortname for the custom curriculum field
 
 
|-
 
|'''fullname'''
 
|text
 
|
 
|Full name for the custom curriculum field
 
 
|-
 
|'''datatype'''
 
|varchar(255)
 
|
 
|The type of custom curriculum field
 
 
|-
 
|'''description'''
 
|text
 
|
 
|Description of custom term field
 
 
|-
 
|'''categoryid'''
 
|int(10)
 
|
 
|The id for the custom curriculum field category
 
 
|-
 
|'''sortorder'''
 
|int(10)
 
|
 
|The sort order for the custom term field within its category
 
 
|-
 
|'''hidden'''
 
|int(1)
 
|
 
|The custom term field should be hidden
 
 
|-
 
|'''required'''
 
|int(1)
 
|
 
|The custom term field required
 
 
|-
 
|'''defaultdata'''
 
|text
 
|
 
|Default text for the selected parameter
 
 
|-
 
|'''param1'''
 
|text
 
|
 
|Parameter text
 
 
|-
 
|'''param2'''
 
|text
 
|
 
|Parameter text
 
 
|-
 
|'''param3'''
 
|text
 
|
 
|Parameter text
 
 
|-
 
|'''param4'''
 
|text
 
|
 
|Parameter text
 
 
|-
 
|'''param5'''
 
|text
 
|
 
|Parameter text
 
|}
 
 
 
'''curriculum_info_category'''
 
 
A curriculum custom fields can be categorised.
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|Auto incrementing
 
 
|-
 
|'''shortname'''
 
|varchar(255)
 
|
 
|Shortname for the custom curriculum info category
 
 
|-
 
|'''fullname'''
 
|text
 
|
 
|Full name for the custom curriculum info category
 
 
|-
 
|'''description'''
 
|text
 
|
 
|Description for the custom curriculum info category
 
 
|-
 
|'''sortorder'''
 
|int(10)
 
|
 
|The order number for this category
 
 
|}
 
 
 
'''curriculum_info_data'''
 
 
Data for a curriculum custom fields.
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|Auto incrementing
 
 
|-
 
|'''curriculumid'''
 
|int(10)
 
|
 
|The id for the term this custom field data applies to
 
 
|-
 
|'''data'''
 
|text
 
|
 
|The data for the term
 
|}
 
 
 
'''curriculum_competencies'''
 
 
Bridge between a curricula and the competencies that are attached to it.
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|auto-incrementing
 
 
|-
 
|'''curriculumid'''
 
|int(10)
 
|
 
|The id of the curriculum
 
 
|-
 
|'''competencyid'''
 
|int(10)
 
|
 
|The id of the competency
 
 
|-
 
|'''required'''
 
|int(1)
 
|
 
|The competency is required for this curriculum
 
 
|-
 
|'''scaleid'''
 
|int(10)
 
|
 
|The id of the scale used for this competency
 
 
|-
 
|'''scalevalueid'''
 
|int(10)
 
|
 
|The id of the scale value expected for this curriculum's competency
 
 
|-
 
|'''weightmin'''
 
|int(4)
 
|
 
|The minimum weight for this competency
 
 
|-
 
|'''weightmax'''
 
|int(4)
 
|
 
|The maximum weight for this competency
 
 
|-
 
|'''weightincrement'''
 
|int(4)
 
|
 
|The weight increment for this competency
 
 
|-
 
|'''weight'''
 
|int(4)
 
|
 
|The weight for this curriculum's competency
 
|}
 
 
 
'''curriculum_courses'''
 
 
Bridge between a curriculum and the courses that are attached to it.
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|auto-incrementing
 
 
|-
 
|'''curriculumid'''
 
|int(10)
 
|
 
|The id of the curriculum
 
 
|-
 
|'''courseid'''
 
|int(10)
 
|
 
|The id of the course
 
 
|-
 
|'''required'''
 
|int(1)
 
|
 
|The course is required for this curriculum
 
 
|}
 
 
 
'''user_curricula'''
 
 
Intersection between a user and his/her curricula. Also contains historical curriculum data for users.
 
 
{| border="1" cellpadding="2" cellspacing="0"
 
|'''Field'''
 
|'''Type'''
 
|'''Default'''
 
|'''Info'''
 
 
|-
 
|'''id'''
 
|int(10)
 
|
 
|auto-incrementing
 
 
|-
 
|'''userid'''
 
|int(10)
 
|
 
|The id of the user
 
 
|-
 
|'''curriculumid'''
 
|int(10)
 
|
 
|The id of the user's curriculum
 
 
|-
 
|'''primary'''
 
|int(1)
 
|
 
|The curriculum is a primary for the user
 
 
|-
 
|'''deleted'''
 
|int(1)
 
|
 
|The user has been 'deleted'
 
 
|-
 
|'''timestart'''
 
|int(10)
 
|
 
|The day/time the user started in this curriculum
 
 
|-
 
|'''timefinish'''
 
|int(10)
 
|
 
|The day/time the user finished this curriculum
 
 
|}
 
|}
  
Line 987: Line 578:
 
|
 
|
 
|The id of the competency
 
|The id of the competency
 
|-
 
|'''curriculumid'''
 
|int(10)
 
|
 
|The id of the curriculum that the competency applied to
 
  
 
|-
 
|-
Line 998: Line 583:
 
|int(10)
 
|int(10)
 
|
 
|
|The day/time the user started in this curriculum
+
|The day/time the user started against the competency
  
 
|-
 
|-
Line 1,004: Line 589:
 
|int(10)
 
|int(10)
 
|
 
|
|The day/time the user finished this curriculum
+
|The day/time the user finished against the competency
 
|}
 
|}
 +
  
 
=Plugin architecture=
 
=Plugin architecture=
Line 1,025: Line 611:
 
'''Import/Export plugins'''
 
'''Import/Export plugins'''
  
We need to be able to import and export data related to competencies and curricula.
+
We need to be able to import and export data related to competencies.
  
 
'''Competency framework import/export'''
 
'''Competency framework import/export'''
Line 1,031: Line 617:
 
* IEEE P1484.20.1 Standard on Reusable Competency Definitions and the IEEE Draft Standard on Simple Reusable Competency Map
 
* IEEE P1484.20.1 Standard on Reusable Competency Definitions and the IEEE Draft Standard on Simple Reusable Competency Map
 
* ISO/IEC PDTR 24763 Conceptual Reference Model for Competencies and Related Objects
 
* ISO/IEC PDTR 24763 Conceptual Reference Model for Competencies and Related Objects
 
'''Curriculum and curriculum assignment import/export'''
 
 
Users can be assigned to a curriculum via csv import or via an authentication plugin. Methods will need to be added to the auth API to allow curriculum assignments.
 
 
Users assignments to curricula can be exported to csv or xml.
 
  
 
'''Competency evidence import/export'''
 
'''Competency evidence import/export'''

Revision as of 08:26, 5 June 2009

Moodle 2.0

Note: This page outlines ideas for the Progress tracking feature planned for Moodle 2.0. It's a specification under construction! If you have any comments or suggestions, please add them to the page comments.

Introduction

To model the range of different types of competency frameworks used by organisations, competencies in Moodle 2.0 needs to go further than the 1.9 outcomes architecture allows.

Goals

  1. Measured amount of abstraction
    • Allow "admins" to specify the type of hierarchy (hierarchy, tags, or hybrid)
    • Allow "admins" to define terms to describe the structure
    • Allow "admins" to specify parent-child and relations between terms
    • Allow "admins" to create as many levels as necessary
    • Allow "admins" to name/describe a level with custom fields to meta data for nodes at the level
  2. Easy navigation
    • Allow "admins" to view the competency structure and terms
    • Allow "admins" to easily add new competency terms and meta-data
  3. Visibility within courses
    • Allow "course creators" to add competencies to a course (much the same way outcomes can be added to a course in 1.9)
  4. Portability
    • Allow "admins" to export competency terms and structure in some easily understood format
    • Allow "admins" to import competencies from another Moodle instance
    • Allow "admins" to setup a sync of competencies with external systems
  5. Assigning evidence
    • Allow "admins" to assign to a competency:
      • One or more course outcomes from one or more courses
      • One or more course completions (e.g., when completing course A, course B, and course C)
      • One or more activity completions (e.g., when completing activity x in course A and activity y in course B, and activity z in course C)
      • An aggregate result threshold for a question category (i.e., an evaluation or assessment using mod/quiz, mod/scorm, etc)
      • Electronic evidence (e.g., a file containing a diploma, certificate, report)
      • Observation (e.g., a comment / testimony / reference)
  6. Specifying proficiency levels
    • Allow "admins" to assign to a competency:
      • A proficiency level (i.e., competency scale value)
      • Existing course completion criteria for a course
      • Existing activity completion criteria for an activity
      • Alternative course completion criteria
      • Alternative activity completion criteria
      • Aggregate result threshold for a question category
  7. Specifying weights
    • Allow "admins" to assign to a weights to each competency evidence or competency term
  8. Scalability
  9. Extensibility

Requirements

  1. We'll need to access and use the existing site-wide Outcomes Outcomes tables
  2. We'll need to use the tables that indicate completion status for courses (these are not yet in place) Course Completion
  3. We need to get aggregate information about the course outcomes and aggregate grades for each user from the gradebook API

Definitions

Scale: A way to measure a competency. Examples:

"Below average, Average, Above average"
"Not competent, Competent"

Competency term: A competency category or tag used for organising one or more competencies in a hierarchy or taxonomy. Examples:

top-level term: "Competency Area" (e.g., "Reading Comprehension")
   -> child term: "Competency" ("Responding to Text")
                -> child term: "Sub-competency" ("Initial Understanding of Literary Text")
                             -> child term: "Descriptor" ("Demonstrate initial understanding of elements of literary texts (including text read aloud, reading independently")

Competency: A measurable knowledge, skill, ability, attitude or other learning-related characteristic which a student may have. A competency may be associated with one or more competency terms. Examples that could be attached to the example "Descriptor" term above:

"Identifying characters in a story"
"Retelling the beginning, middle, and end of a story"
"Responding to simple questions about a book's content"

Competency evidence type: A form of evidence that can be accepted as evidence that a competency has been achieved. Examples:

Observation
Quiz grade
Course completion
Activity completion
Certificate
Evaluation results
File (diploma)

Competency evidence: A competency can be measured by one or more competency evidence types. Evidence can be stated to include the evidence type, evidence date, and measured value. Examples:

"Observation - Teacher - Above average - 4:00pm May 28, 2009"
"Observation - Spanish Language Proficiency Interview - 4:00pm May 28, 2009 - Rating 4 out of 5"
"Quiz - 4:00pm May 28, 2009 - Grade 90% out of 100%"
"Certificate - Public Speaking Institute - 4:00pm May 28, 2009 - Passed.
"File - College Diploma - 4:00pm May 28, 2009 - Bachelor of Science Computer Science"

Expected proficiency level: The required rating (based on a scale) or grade for a competency. Examples:

"Average"
"5"
"50%"
"Passed"

Measured proficiency level: A user's observed, scored, reported proficiency level for a competency.

"Above average"
"8"
"80%"
"Passed"

Competency weighting: Child competencies can be assigned weights which can be aggregated. Examples:

"Communication"
    -> child "Written Communication - weight: 60/100"
    -> child "Oral Communication - weight: 40/100"

User interface

Individual learning plan

  1. Each user can have a set of either courses to be completed, competencies to be achieved, or a mixture of both. These comprise a user's individual learning plan (IDP).
  2. Each user's IDP will show:
    1. Completed courses
    2. Progress toward courses which are not yet complete. This would be similar to view of the course progress completion report for the user across the incomplete courses.
    3. Competencies achieved. This will include the competency terms and meta data made visible to the user, as well as the evidence info (type, date, ratings and grades).
    4. Competencies not yet achieved. This will also include the competency terms, meta data made available to the user, as well as the expected proficiency levels for each competency.
  3. Each user can see a list of all his/her courses and competencies as a "transcript" or "record of learning."

Database structures

competency_term

A competency framework can have its own set of terms.

Field Type Default Info
id int(10) Auto incrementing
shortname varchar(100) The shortname for the competency term
fullname varchar(255) The full name for the competency term
description text The description of the competency term
idnumber int(10) The id, code number or local identifier for the competency term used for reporting
timecreated int(10) The time when the competency term was created
timemodified int(10) The time when the competency term was modified
usermodified int(10) The userid of the person who last modified the competency term


competency_term_hierarchy

For tracking hierarchies of competency terms.

Field Type Default Info
id int(10) Auto incrementing
termid int(10) The id of the child term
parentid int(10) The id of the parent term
sortorder int(10) The order number of this competency term (useful for ordering competencies for viewing/navigation/reporting)
depth int(10) The depth of the competency term (beginning at 1)
path varchar(255) The path to the competency term


competency_term_relations

For tracking relations between competency terms.

Field Type Default Info
id int(10) Auto incrementing
termid1 int(10) The id of a term
termid2 int(10) The id of a term related to term1


competency_depth_info_field

Data for a competency depth level custom field.

Field Type Default Info
id int(10) Auto incrementing
shortname varchar(255) Shortname for the custom term field
fullname text Full name for the custom term field
datatype varchar(255) The type of custom term field data
description text Description of custom term field
categoryid int(10) The id for the custom term field category
sortorder int(10) The sort order for the custom term field within its category
hidden int(1) The custom term field should be hidden
required int(1) The custom term field required
defaultdata text Default text for the selected parameter
param1 text Parameter text
param2 text Parameter text
param3 text Parameter text
param4 text Parameter text
param5 text Parameter text


competency_depth_info_category

A competency's depth level can have categories for its custom fields.

Field Type Default Info
id int(10) Auto incrementing
name varchar(255) Shortname for the depth level category
sortorder int(10) The order number for this category


competency_depth_info_data

Data for a depth level custom field.

Field Type Default Info
id int(10) Auto incrementing
fieldid int(10) The id for the field
termid int(10) The id for the term
data text The actual data for the term and field


competency

A competency (or "learning outcome", "descriptor" etc) which can will have evidence attached to it.

Field Type Default Info
id int(10) Auto incrementing
title varchar(255) The title of the competency
description text The description of the competency
idnumber int(10) The id, code number or local identifier for the competency used for reporting
termid int(10) The id of the competency term this competency is attached to.
timecreated int(10) The time when the competency was created
timemodified int(10) The time when the competency was modified
usermodified int(10) The userid of the person who last modified the competency


competency_evidence_items

A competency can be achieved by one or more forms of evidence.

Field Type Default Info
id int(10) Auto incrementing
competencyid int(10) The id for the competency that this evidence describes
itemtype varchar(30) The type of evidence 'observation', 'course/outcome', 'mod/outcome', 'course/completion', 'mod/completion', 'course/grade', 'mod/grade', 'question/category', 'file'
itemmodule varchar(30) The type of evidence 'observation', 'quiz', 'scorm', 'question'
iteminstance int(10) The id for the evidence instance (ie, grade_outcome id, course id, course_modules id, grade_item id, quiz_question_instance id, files id)
required int(1) The evidence is required
certification int(1) The evidence is for certification
expirationdays int(10) The evidence expires after this number of days
timecreated int(10) The time when this competency evidence was allowed
timemodified int(10) The time when this competency evidence was last changed
usermodified int(10) The user who last modified this evidence


competency_evidence

Track historical and current competency information for each user.

Field Type Default Info
id int(10) auto-incrementing
userid int(10) The id of the user
competencyid int(10) The id of the competency
timestart int(10) The day/time the user started against the competency
timefinish int(10) The day/time the user finished against the competency


Plugin architecture

Competency evidence type plugins

Each type of evidence will need its own methods for interacting with the competency architecture and will need to interact via a base competency evidence API. Below are the item types.

  • Observation
  • Course completion
  • Course grade
  • Activity completion
  • Activity module grade
  • File

Report plugins

Similar to the gradebook, we need to allow development of report plugins for competencies.

Import/Export plugins

We need to be able to import and export data related to competencies.

Competency framework import/export A competency framework should be able to be exported using an appropriate format in either xml and csv file format. There are some standards on exchanging competencies including:

  • IEEE P1484.20.1 Standard on Reusable Competency Definitions and the IEEE Draft Standard on Simple Reusable Competency Map
  • ISO/IEC PDTR 24763 Conceptual Reference Model for Competencies and Related Objects

Competency evidence import/export

There are a variety of standards for exchanging competencies evidence including:

  • IMS Reusable Definition of Competency or Educational Objectives Spec (RDCEO)
  • IMS Learner Information Package Spec (LIP)
  • HR-XML Competencies (Measurable Characteristics) Recommendation, 2007 April 15

IMS RDCEO and LIP recommend formats as shown in the examples below (more IMS RDCEO here and IMS LIP home). Special thanks to Sarveswaran Kengatharaiyer (GSOC 2008 student for the Moodle Progress Tracker project) who developed these examples.

rdceo.identifier = rdceo434323
rdceo.title = Identify verbs in simple sentences
rdceo.description = “Identify verbs in simple sentences”
rdceo.definition.statement.
   statementid = 123
   statementname = Always
   statementtext = Scale
   statementtoken = scl55435
rdceo.definition.statement.
   statementid = 124
   statementname = Never
   statementtext = Scale
   statementtoken = scl55436
rdceo.definition.statement.
   statementid = 125
   statementname = Sometimes
   statementtext = Scale
   statementtoken = scl55437

lip.contenttype.referencial.sourceid.id = jenney_profile
lip.identification.cotenttype.referential.indexid = id123
lip.identification.name.partname.typename=Jenny 
lip.competency
   cotenttype.referential.indexid = j123
   exrefrecord = rdceo434323
   description = Always

HR-XML recommends a format like shown below in an example which uses recursive competencies (more here).

<Competency name="Communication Skills">
      <Competency name="Written Communication Skills">
            <CompetencyEvidence name="WRITTENTEST1-A" dateOfIncident="1995-01-01" lastUsed="2000-01-01">
                   <NumericValue minValue="3" maxValue="5" description="SEP-equivalent Skill-Level Range">5</NumericValue>
            </CompetencyEvidence>
            <CompetencyWeight>
                   <NumericValue minValue="0" maxValue="100">35</NumericValue>
            </CompetencyWeight>
      </Competency>
      <Competency name="Oral Communication Skills">
            <CompetencyEvidence name="ManagerObservation" dateOfIncident="1996-01-01" lastUsed="2000-01-01">
                   <NumericValue minValue="1" maxValue="5" description="Company XYZ Skill Range">5</NumericValue>
            </CompetencyEvidence>
            <CompetencyWeight>
                   <NumericValue minValue="0" maxValue="100">65</NumericValue>
            </CompetencyWeight>
      </Competency>
</Competency>

Upgrade from 1.9

The outcomes and scales architecture introduced in Moodle 1.9 provide a basic foundation for competency management. One or more scales can be defined on a site-level, and custom scales can be defined at the course level. Outcomes can be defined at a site-level as standard outcomes, and standard outcomes can be added into courses. Custom outcomes can also be created within courses. Each outcome is linked to an activity via the settings page or via the controls for an existing outcome on the grader report page.


grade_outcomes - site-wide outcomes

Site wide outcomes will need to be imported into the competency_terms table.

From Table From Field From Value To Table To Field To Value
grade_outcomes id null competency_terms id null
grade_outcomes courseid null competency_terms courseid null
grade_outcomes shortname not null competency_terms shortname not null
grade_outcomes fullname not null competency_terms fullname not null
grade_outcomes scaleid not null competency_terms scaleid not null
grade_outcomes description null or not null competency_terms description null or not null
grade_outcomes timecreated not null competency_terms timecreated not null
grade_outcomes timemodified not null competency_terms timemodified not null
grade_outcomes usermodified not null competency_terms usermodified not null


grade_outcomes - custom course outcomes

Custom course outcomes will also need to be imported into the competency_terms table.

From Table From Field From Value To Table To Field To Value
grade_outcomes id null competency_terms id null
grade_outcomes courseid not null (e.g., 2, 3) competency_terms courseid null
grade_outcomes shortname not null competency_terms shortname not null
grade_outcomes fullname not null competency_terms fullname not null
grade_outcomes scaleid not null competency_terms scaleid not null
grade_outcomes description null or not null competency_terms scaleid null or not null
grade_outcomes timecreated not null competency_terms timecreated not null
grade_outcomes timemodified not null competency_terms timemodified not null
grade_outcomes usermodified not null competency_terms usermodified not null


grade_outcomes_courses

Grade outcomes in a course become an evidence item (itemtype='course') for a competency and get moved to the competency_evidence_items table.

From Table From Field From Value To Table To Field To Value
grade_outcomes_courses id not null competency_evidence_items id? not crucial not null
grade_outcomes_courses courseid not null competency_evidence_items instanceid not null
grade_outcomes_courses outcomeid not null competency_evidence_items competencyid not null


grade_items - course outcomes

Course outcomes need to be entered as a competency evidence items (type="course") for a competency and get moved to the competency_evidence_items table.

From Table From Field From Value To Table To Field To Value
grade_items id not null competency_evidence_items id? not crucial not null
grade_items itemname not null competency_evidence_items name not null
grade_items itemtype course competency_evidence_items itemtype course
grade_items itemmodule null competency_evidence_items itemmodule null
grade_items iteminstance not null (1,2) competency_evidence_items iteminstance not null (1,2)


grade_items - activity outcomes

Grade outcomes in a course become a course 'type' allowed evidence for a competency and get moved to the competency_evidence_allowed table. We also need to use the value "course" for the evidence 'type' field.

From Table From Field From Value To Table To Field To Value
grade_items id not null competency_evidence id? not crucial not null


grade_grades

In 1.9, course outcomes appear in the grade_items when they are linked to an activity. Only activity outcomes appear as graded in grade_grades. The activity outcomes need to appear as an entries in competency_evidence_items table and the grade in the competency_items table.

From Table From Field From Value To Table To Field To Value
grade_grades id not null competency_items id not null
grade_grades itemid not null competency_items itemid not null
grade_grades userid not null competency_items userid not null
grade_outcomes scaleid not null competency_items scaleid not null
grade_grades finalgrade not null competency_items scalevalueid not null


We also need to add an entry for the user in the competency_evidence table.

From Table From Field From Value To Table To Field To Value
grade_grades id not null competency_evidence id not null
grade_grades itemid not null competency_evidence itemid not null
grade_grades userid not null competency_evidence userid not null
grade_outcomes scaleid not null competency_evidence scaleid not null
grade_grades finalgrade not null competency_evidence scalevalueid not null

Logging

All competency related changes should be logged in history tables.

Role capabilities and permissions

Description Capability
View competency competencies moodle/competency:viewcompetencies
View hidden competencies moodle/competency:viewhiddencompetencies
Manage competencies moodle/competency:managecompetencies

Ideas for the future

  1. Due dates for course completions and outcome completions can be assigned in an individual user's learning plan.
  2. A comment can be added to a user's learning plan item when a course or outcome is manually added or removed from it.
  3. Allowing competencies to be attached to an individual user (either by user profile field or by drag and drop).