# TLF Assignments for .LRN

This is a dotlrn applet providing functionality for conducting and
evaluating assignments.  It has been used for university classes at WU
Vienna for more than 10 years.  Message keys for this package are
provided in English, German and Italian.


## Dependencies
This package requires dotlrn, xowiki and xowf and depends on ckeditor4
for richtext editing widgets.


## Installation
This application requires hstore for postgresql. Without hstore, the
installation will fail.

The following command shows an example how hstore can be set
up. Alternatively, one can connect to the database in the psql shell
and type the command in the last argument.

```bash
$/usr/bin/psql -U nsadmin -d "oacs-5-10" -tAc "create extension hstore"
```

If you don't have xowiki installed, your instance should now be set up
after a restart.

If you already have xowiki installed, you need to make the following
adjustments to update the relevant views of xowiki with the following
tcl commands after a restart (copying them to the ACS developer
support in ds/shell is encouraged):

```tcl
::xo::db::sql::content_type refresh_view -content_type ::xowiki::PageInstance
::xo::db::sql::content_type refresh_view -content_type ::xowiki::FormPage
::xo::dc dml drop-view "drop view xowiki_form_instance_item_view"
```

After another restart, xowiki will be ready to use hstore.


## First Steps

- Navigate to Admin -> "Manage Applets" of your dotlrn community.
- Search for "Assignments" in the "Applets To Add" list.
- Click "add".

->Your Community Home page shows the assignments portlet with links to
  the application. Note that the portlet will only be visible to
  members of this community.

To create your first assignment:
- Follow the link in the Assignments portlet on your Community Home page.
- In the menu, select New -> Assignment
- Complete the form, click Continue
- Specify assignment recipients. This setting defaults to all
  registered members of the current community. Alternatively,
  recipients can be individually selected members or groups. Groups
  must be defined beforehand in the Group manager (Menu "Group
  manager" -> "Manage groups").  Your assignment is listed on the
  landing page of the assignments application.


## .LRN Portlet

The portlet shows a link to the assignments application and currently
open tasks for admins (teachers) and students.

Students see a list of currently open assignments, admins see
assignments with existing submissions which need to be graded.


## Description of Functionality

With this module, you can
- define different assignment types (textbox-, file- or peer review
  assignments).
- assign homework to single students or
- define groups within the group manager and assign homework to
  groups. Only one group member needs to turn in the homework, then
- provide feedback and grade assignments or return the assignments to
  the students for resubmission.
- grade assignments once they are turned in, even if the submission
  period has not yet expired.
- hand in assignments for students, eg pdf files you receive via email.

### Peer review

'Peer review' assignments are an experimental feature based on the
algorithm developed by *Loll, Frank and Pinkwart, Niels: "CITUC:
Automatisierte Lösungsbewertung im E-Learning durch kollaboratives
Filtern." (2009).*  https://aisel.aisnet.org/wi2009/120/

For a 'Peer review' assignment, the assignment creator must specify 3
or more sample answers and define the quality of the answer on a scale
from 1 to 10.

Students should be able to correctly identify which answers are good
and which answers are bad. From the correctness of these ratings, a
tentative score is calculated.

In the next step, teachers should grade the quality of the written
answer, which contributes the second half of the total points for this
assignment.

If students should also rate the answers of other students, the
package parameter "ot_mode" must be set to 0. By default, it is set to
1 which means that only sample answers are provided for rating.