Feature Wiki
Tabs
Booking Tool: Indicating Preference
Page Overview
[Hide]1 Initial Problem
Distributing topics for term papers to a huge crowd fairly is difficult for educators. First-come-first-serve is not fair. There is no option for distribution of term paper topics that take the preference if students into consideration.
Moodle offers the preference-based distribution and it is so important to have this, too, say Unitersity of Tübingen.
2 Conceptual Summary
Users are not to immediately book an object but to merely indicate preference for objects.
- Tutors set up the Booking Tool: Tutor creates a "No Schedule" Booking Tool and limits the number of preferences. Tutor sets an end date until when preferences can be indicated.
- User opens Booking Tool.
- ILIAS presents all Booking objects in a form.
- User indicates preferences for Booking Objects by checking the required number of checkboxes. User saves.
- At the set end date ILIAS automatically allocates all users to a Booking object, taking preferences into consideration.
- All preferences of a user are equal, there is no ranking of preferences.
- As many users as possible should get a Booking Object they indicated preference for.
- If a user is the only person who wants a certain Booking Object, he or she should get ist.
- User that did not state any preference get Booking Objects that nobody else wants.
- Users that cannot get a preferred Booking Object just get an unpreferred one by chance /randomly.
- Tutor can make manual changes to automatic allocation.
3 User Interface Modifications
3.1 List of Affected Views
- Booking Tool > Settings
3.2 User Interface Details
3.2.1 Proposed Interface Changes, 18. Sep 2019
The settings form can be simplified by using only two levels, instead of three (and one radio group instead of two).
We did not specify how the results will be presented to the user (the reservations screen is not sufficient). Proposal ("All Participants" Section will only be presented if "write" permission is given):
3.3 New User Interface Concepts
None.
4 Technical Information
Killing, Alexander [alex], 15 July 2019:
Procedure A
- Calcualte the popularity p(t) of each topic (number of users u that have choosen a topic)
- Choose topic t with lowest p(t); where p(t) > 0 (most unpopular topic)
- Randomly choose user u who has t as preference
- remove user and topic from list, start from the beginning
- Choose random remaining user u
- Calculate number of assignments for each topic a(t)
- Assign t with minimum a(t) to u
- remove user and topic from list, start from the beginning
5 Contact
- Author of the Request: stefan.van-den-kroonenberg@uni-tuebingen.de
- Maintainer: {Please add your name before applying for an initial workshop or a Jour Fixe meeting.}
- Implementation of the feature is done by: {The maintainer must add the name of the implementing developer.}
6 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- Univerität Tübingen
7 Discussion
Killing, Alexander [alex], 10 July 2019: I assume that if "Number of Users" > "Number of Booking Objects" it's ok that some of them are booked multiple times.
JourFixe, ILIAS [jourfixe], 29 JUL 2019 : We highly appreciate this suggestion and schedule the feature for 6.0…
JourFixe, ILIAS [jourfixe], 23 SEP 2019 : We accept the suggested changes from September 18. Feature can be modified accordingly. Instead of using commas we prefer the labels "No schedule with direct booking" and "No schedule using preferences".
8 Implementation
Test Cases
Test cases completed at 2019-10-07 by Tödt, Alexandra [atoedt]
- 31896 : Buchungspool kopieren
- 31899 : Online setzen, Anzahl Präferenzen festlegen und Frist setzen
- 31898 : Teilnehmer aus aktuellem Kurs hinzufügen
- 31897 : Teilnehmer geben korrekte Menge Präferenzen an
- 31902 : Teilnehmer geben zu viele Präferenzen an
- 31903 : Teilnehmer geben zu wenige Präferenzen an
- 31900 : Automatische Verteilung nach Ablauf der Frist
Approval
Approved at 18.10.2019 by van den Kroonenberg
Last edited: 28. Oct 2019, 17:02, Killing, Alexander [alex]