Newer
Older
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
All interactive content in RELATE is part of a *flow*. Relate uses the made-up
word "flow" to denote an interactive experience that can be any of the
following:
* A quiz
* A few pages of introductory text, combined with some videos
* An exam
* A long-form homework assignment
And possibly many more different things. Technically, a flow consists of
multiple webpages, each of which may allow the participant some type of
interaction, such as submitting answers to questions. All interactions of the
participant with a flow constitute a session. A participant may have multiple
sessions per flow, corresponding to, for example, being able to take the same
quiz multiple times.
This chapter describes how flows are defined from the instructor's perspective.
This consists of two main parts. The first part is defining the interactions
themselves, by providing content for the flow pages. The second consists of
describing what participants are allowed to do, and what grades they are to
receive for their interactions. The system allows tremendous latitude in
defining these rules.
Things that can be decided by flow rules include the following:
* Is student allowed only one or multiple sessions?
* Is the student allowed to review past sessions?
* What are the deadlines involved and how much credit is received for completing a flow?
* Is a participant shown the correct answer and/or the correctness of their
answer? When are they shown this information? (Right after they submit their
answer or only after the deadline passes or perhaps right after they have
submitted their work for grading?)
An Example
----------
.. code-block:: yaml
title: "RELATE Test Quiz"
description: |
# RELATE Test Quiz
rules:
# (Things behind '#' hash marks are comments.)
# Allow students to start two attempts at the quiz before the deadline.
# After that, only allow access to previously started quizzes.
Andreas Klöckner
committed
if_before: 2015-03-06 23:59:00
if_has_role: [student, ta, instructor]
if_has_fewer_sessions_than: 2
may_start_new_session: True
may_list_existing_sessions: True
may_start_new_session: False
may_list_existing_sessions: True
# Allow students to submit quiz answers before the deadline.
# After the deadline, the quiz becomes read-only. (The 'modify'
# permission goes away.)
Andreas Klöckner
committed
access:
-
if_before: 2015-03-06 23:59:00
permissions: [view, modify, see_correctness]
permissions: [view, see_correctness, see_answer_after_submission]
# Record grades under the machine-readable name 'test_quiz'.
# If there is more than one grade, use the maximum.
Andreas Klöckner
committed
grade_identifier: test_quiz
grade_aggregation_strategy: max_grade
-
type: Page
id: welcome
content: |
# Welcome to the test quiz for RELATE!
-
type: ChoiceQuestion
id: color
prompt: |
- Blue
- Green
- ~CORRECT~ Yellow
completion_text: |
# See you in class!
Thanks for completing the quiz.
Overall Structure of a Flow
---------------------------
When described in YAML, a flow has the following components:
.. class:: Flow
.. attribute:: title
A plain-text title of the flow
.. attribute:: description
A description in :ref:`markup` shown on the start page of the flow.
.. attribute:: completion_text
(Optional) Some text in :ref:`markup` shown once a student has
completed the flow.
(Optional) A list of email addresses which to notify about a flow submission by
.. attribute:: rules
(Optional) Some rules governing students' use and grading of the flow.
See :ref:`flow-rules`.
.. attribute:: groups
A list of :class:`FlowPageGroup`. Exactly one of
:attr:`groups` or :class:`pages` must be given.
A list of :ref:`pages <flow-page>`. If you specify this, a single
:class:`FlowPageGroup` will be implicitly created. Exactly one of
:attr:`groups` or :class:`pages` must be given.
.. _flow-rules:
Flow rules
----------
Here's a commented example:
.. code-block:: yaml
rules:
# Rules that govern when a new session may be started and whether
# existing sessions may be listed.
Andreas Klöckner
committed
start:
Andreas Klöckner
committed
# Members of the listed roles may start a new session of this
# flow if they have fewer than 2 existing sessions if the current
# time is before the event 'end_week 1'.
Andreas Klöckner
committed
if_before: end_week 1
if_has_role: [student, ta, instructor]
if_has_fewer_sessions_than: 2
may_start_new_session: True
may_list_existing_sessions: True
Andreas Klöckner
committed
# Otherwise, no new sessions will be allowed,
# but existing ones may be listed.
Andreas Klöckner
committed
may_start_new_session: False
may_list_existing_sessions: True
# Rules that govern what a user may do with an existing session.
Andreas Klöckner
committed
access:
-
# Before the event 'end_week 2', a user may view, submit answers
# to the flow, and see the grade they received for their answers.
Andreas Klöckner
committed
if_before: end_week 2
permissions: [view, modify, see_correctness]
Loading
Loading full blame...