Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

POAS Assignment development

From MoodleDocs

Moodle 2.0


This is a proposition of Assignment module development from Volgograd State Technical University. I see no reason in keeping it as a separate module thanks to the trouble of backporting any fixes/improvments done in assignment. There is no reason to make it an assignment plugin too, as it will need a separate copy of each of the current plugins (online, offline etc).

Refactoring

Some areas of assignment_base class can be reworked for greater flexibility and reducing code duplication.

New Features

Workgroups

One main assumption in the assignment module is need to be eliminated is "one user=one submission=one grade". The quite common practice is grouped assignments, where students can work in small groups on a task. So we need a workgroup support there. (Well, quite big work as many functions use this assumption).

Workgroup is a group of students whose work will results in one submission. Workgroups features:

  • teacher can define a minimum and maximum number of students in the group
  • self-organisation (with possibility of confirmation by teacher) or forced by teacher groups
  • maximum date of groups membership editing
  • individual grading or per-group grading
  • maybe 'roles' of people in group (either teacher or student defined), that explains who will do what (not obvious in case of variable length groups)

Individual tasks

Individual tasks is another quite common situation in the educational process. The module can handle tasks selection and completion.

Individual tasks features:

  • adding/editing/deleting of tasks by the teacher
  • standart fields: name, description, grade factor (1 by default), min/max workgroup number (if workgroups activated)
  • custom fields, which can be added in any given assignment, of several types: string, text, number, date, menu
  • student's selection (with optional teacher approval), teacher-forced selection or random selection based on a student's selection of subset of tasks fields (number or menu mainly, i.e. some sort of 'complexity' field for example)
  • maximum dates of selection (and approval if necessary)
  • column with task name (link to the task) when grading
  • random filling of some task fields (number or menu mainly) on selection or approval

User interface - tabs

Currently assignment have only two main pages: intro/submit (view.php) and grading (submission.php), so it can go away with the link in upper right corner.

New features will require more pages, so it's better to use tabs for them. Tabs visibility will be based on user's capabilities.


Plugins capabilities enhancement

  • plugins can define their own tabs
    1. tabs can be implemented as classes
    2. tabs can be implemented as functions
  • maybe plugins can add a columns to the grading table

maybe One user can get several tasks

That needs further discussion. It's something not very uncommon in real word teaching, but somewhat difficult to cope with "one course module=one grade" thing.

Implementation

New options

 Dmitry, please fill this and next field with any possible speed --Oleg Sychev 15:17, 1 December 2008 (CST)

DB structure

Tabs

Info/submit

This is an initial tab, that will work basically the same as before.

New abilities:

  • show additional dates (i.e. dates of last approval and so on)
  • student: show individual task (?tasks?) when the individual tasks is selected
  • student: show task status (i.e. selected, approved, submitted, graded (but reopened), closed
  • student: show workgroup members (when workgroups used)
  • teacher: the number of submissions will be shown JFI as there is a tab for grading now (maybe as a link, just as in quiz now - maybe it must be moved to down center area)
  • teacher: the number of submissions will be showed as <actual submissions>/<maximum submission>
  • there will be an additional information - number of submissions that needs grading

Tasks

New tab, accessible when individual task feature activated.

Abilities:

  • teacher: adding, editing, deleting a task (editing and deleting assigned tasks may be prohibited)
  • student: browsing task list, viewing task details
  • student (without workgroups): selecting a task
  • student (in workgroups mode): see current workgroups (at least uncomplete), create workgroup for a task, apply for workgroup membership (approved by teacher and/or workgroup creator), set workgroup in ready for work status


Grading

This is an evolved grading page (submission.php), for teachers use.

New abilities:

  • the table will reflect a status of task (maybe with icons)
  • individual tasks: the table will additionally reflect task name (as a link to popup with it's description) and a grade factor
  • worgroups: the table (and popup for grading too) will have two modes:
    1. groups grades - each string represent a workgroup
    2. individual grades - each string repesent a student, but they are sorted by workgroup and workgroups is spaced somehow
  • make an option for the teachers to make any grade final, forbidding further re-submissions and/or regrading (maybe a person with hign priviledges can still regrade); in workgroups with individual grading mode re-submission will be forbidden only when all workgroup members receive final grade
  • dropdown to choose whom to display in the table (and in the popup): all, with submissions only, needs grading only
 Dmitry, please add a screenshots there as soon as you will have them --Oleg Sychev 15:17, 1 December 2008 (CST)

Capabilities

Assignment base class reworking

Issues

  1. there are number of functions closely related to one user=one assignment=one grade issue
    • submissions
    • update_main_listing
    • display_submission
    • display_submissions
    • process_feedback as it's assume userid in feedback, maybe process_outcomes too
    • get_submission, prepare_new_submission
    • print_user_files - troublesome function, it will still work with call in user_complete, but probably not work with display_submission (this call is quite strange, as it probably must be handled by plugin on the same basis as print_student_answer
    • reset_user_data
    • any grading-related functions
  2. we must use new tabs system instead of submitted_link function
  3. email_teachers function need reworking to get more options available, as there will be more events that need to be emailed to teachers
    • maybe we will need email_students function too?

Solutions