Vorbereitung: Erhebungsteile / Preparation: Study Parts

Assessments, die mit der IRTlib Software administriert werden, bestehen aus sogenannten Erhebungsteilen. Nach der Konfiguration einer Studie muss zumindest ein Erhebungsteil angelegt werden.

Erhebungsteilverwaltung

Nach dem Erstellen einer Studie erfolgt in der Ansicht Erhebungsteile als nächster Schritt zur Vorbereitung einer Testauslieferung das Hinzufügen eines neuen Erhebungsteils:

Die erstellten Erhebungsteile erscheinen als Karten in der Ansicht Erhebungsteile. Wenn Studien aus mehreren Erhebungsteilen bestehen, kann für lineare Abläufe die Reihenfolge der Erhebungsteile in der Ansicht Erhebungsteile / Übersicht angepasst werden. Sollen Erhebungsteile in Abhängigkeit von Variablen, z.B. übergebene Preload-Variablen oder andere Blockly-Variablen gesteuert werden, kann alternativ ein Routing zwischen Erhebungsteilen konfiguriert werden.

Eine detaillierte Anleitung zur Erstellung von Erhebungsteilen findet sich hier in der eingebetteten Hilfe:

Eingebettete Programmhilfe

Erhebungsteil Anlegen

Mit dem IRTLib Editor werden Konfigurationen für Studien erstellt, welche dann in einem IRTLib Player zur Durchführung computerbasierter Assessments verwendet werden können. Studien bestehen aus einem oder mehreren Erhebungsteilen.

Wie geht’s?

Nachdem eine Studie angelegt ist, kann nun über Plus-Icon unten rechts ein Erhebungsteil hinzugefügt werden:

Danach geben Sie bitte in dem Dialog Neuen Erhebungsteil erstellen eine Bezeichnung und optional eine Beschreibung ein.

Achten Sie darauf, dass für die Bezeichnung wieder nur Buchstaben (Groß- und Kleinschreibung), Ziffer und ein _ erlaubt sind.

Klicken Sie anschließend auf Speichern.

Bei Bedarf können Sie über das folgende Icon einem Erhebungsteil auch ein Bild zuordnen. Dieses Bild wird im IRTLib Editor für diesen Erhebungsteil verwendet:

Erhebungsteil Bearbeiten

Erstellten Erhebungsteile werden in der Erhebungsteilübersicht als Kacheln angezeigt:

Erhebungsteile Sortieren

Wenn in der Konfiguration einer Studie in der Ansicht Info (Abschnitt Übersicht) die Option Routing für Erhebungsteile aktivieren nicht ausgewählt ist, dann werden Erhebungsteile in der Reihenfolge administriert, in welcher sie in der Erhebungsteilverwaltung angezeigt werden.

Danach können die Kacheln in die gewünschte Reihenfolge gebracht werden. Der Modus Reihenfolge Ändern wird beendet, wenn das Disketten-Symbol angeklickt oder die Änderungen verworfen werden:

Die Reihenfolge von Erhebungsteilen kann in der Ansicht Erhebungsteile verändert werden:

Vor dem Hinzufügen bzw. Auswählen von CBA ItemBuilder Projekten, wie im Abschnitt Assessmentinhalte (Items) beschrieben, können in der Ansicht Info ausgewählte Einstellungen konfiguriert werden.

Eine detaillierte Beschreibung findet sich hier in der eingebetteten Hilfe:

Eingebettete Programmhilfe

Grundkonfiguration für Erhebungsteile

Bezeichnung und Beschreibung

Routing innerhalb von Erhebungsteilen

Weitere Einstellungen

Das Hinzufügen und Verwalten von CBA ItemBuilder Projekte innerhalb des IRTlib-Editors erfolgt im Abschnitt Items.

Hinweis zur Zeitbegrenzung

Für die Administration von zeitbegrenzten Erhebungsteilen kann unter Bearbeitungszeit ein Zeitlimit definiert werden. Wenn die Option Bearbeitungszeit begrenzen aktiviert ist, können ein oder mehere Tasks definiert werden, welche bei einem Timeout angezeigt werden. Außerdem können im Abschnitt Vorspann-Items(s) und Nachspann-Item(s) Inhalte definiert werden, welche vor bzw. nach dem zeitbegrenzten Teil administriert werden.

Assessmentinhalte (Items) Einfügen

Die Inhalte, welche in einem Erhebungsteil vom Typ CBA ItemBuilder verwendet werden sollen, werden über den IRTlib Editor in die Konfiguration übernommen, d.h. die mit dem IRTlib Editor erstellte Konfiguration enthält auch die CBA ItemBuilder Project Files. Für das Hinzufügen oder Aktualisierung von CBA ItemBuilder Projekten steht die Ansicht Items zur Verfügung.

Eine detaillierte Beschreibung findet sich hier in der eingebetteten Hilfe:

Eingebettete Programmhilfe

Items Konfigurieren

Grundfunktionen

Hinweis: Es ist bisher nicht möglich, CBA ItemBuilder-Projektdateien aus der Liste bekannter Items wieder zu löschen. Diese Funktionalität ist nicht notwendig, da CBA ItemBuilder-Projektdateien vom IRTlib-Editor nur dann in die Konfiguration einer Studie übernommen werden, wenn Tasks aus einer CBA ItemBuilder-Projektdatei in einem Erhebungsteil verwendet werden.

Sortieren von Items (Linearer Ablauf)

Die Items dann exakt so administriert, wie sie für einen Erhebungsteil in dieser Liste aufgeführt sind.

Hinweis: Änderungen an der Sicht Items müssen über das Disketten-Symbol gespeichert oder mit dem Rückgängig-Symbol verwerfen werden:

Bearbeitungszeit

Wenn die Administration einer linearen Folge von CBA ItemBuilder Tasks mit einer begrenzten Bearbeitungszeit administriert werden sollen, lässt sich dies durch Definieren einer maximalen Bearbeitungszeit (in Sekunden) umsetzen. Soll bspw. ein Testinhalt maximal 28 min. administriert werden, wird als Bearbeitungszeit eine Zeit von 1680 Sekunden definiert. Die Nachricht, welche beim Ablaufen der Bearbeitungszeit angezeigt werden soll, lässt sich als ein (oder mehrere) CBA ItemBuilder Tasks definieren.

Eine detaillierte Beschreibung findet sich hier in der eingebetteten Hilfe:

Eingebettete Programmhilfe

Zeitbegrenzung Definieren

Erhebungsteile ohne Routing können auf einfache Weise einen zeitbegrenzten Abschnitt enthalten. Dafür wird in der Sicht Bearbeitungszeit die Option Bearbeitungszeit begrenzen aktiviert und ein Zeitlimit in Sekunden (>0) eingetragen.

Für eine Zeitbegrenzung werden vier Gruppen von CBA ItemBuilder Tasks unterschieden, die an unterschiedlichen Stellen im IRTlib Editor definiert werden. In der Sicht Items (analog zu nicht zeitbegrenzten Erhebungsteilen) werden die Items, für welche die Zeitbegrenzug gelten soll, definiert:

In der Ansicht Bearbeitungszeit kann zusätzlich definiert werden:

Als einzelne Sichten der Konfiguration von Erhebungsteile können schließlich folgende Tasks definiert werden:

In allen genannten Dialogen stehen die Symbole für folgende Operationen zur Verfügung:

Hinweis: Komplexere Designs mit ggf. mehreren Timern lassen sich mit dem IRTlib Editor umsetzen, wenn die Option Routing aktivieren in der Übersichtsansicht zu einem Erhebungsteil aktiviert ist.

Hinweis: Änderungen an der Sicht Bearbeitungszeit müssen über das Disketten-Symbol gespeichert oder mit dem Rückgängig-Symbol verwerfen werden:

Vorspann-/Nachspann-Items

Ein zentrales Konzept für die Umsetzung von Zeitbegrenzungen in der IRTlib Software ist die Trennung der zeitbegrenzten Items, und zusätzlicher Assessmentinhalte, die vor oder nach dem zeitbegrenzten Teil administriert werden.

Eingebettete Programmhilfe

Items nach einer Zeitbegrenzung

Der Erhebungsteile erlauben die Definition von Items in verschiedenen Abschnitten. Items in diesem Abschnitt Nachspann-Item(s) werden nach den Items angezeigt, welche im Abschnitt Items eines Erhebungsteils definiert sind. Die Trennung in Nachspann-Item(s) und Items ist besonders sinnvoll, wenn unter Bearbeitungszeit eine Zeitbegrenzung aktiviert ist.

Um Items in dem Abschnitt Nachspann-Item(s) zu konfigurieren, stehen die folgenden Optionen zur Verfügung:

Hinweis: Änderungen an der Sicht Nachspann-Item(s) müssen über das Disketten-Symbol gespeichert oder mit dem Rückgängig-Symbol verwerfen werden:

Eingebettete Programmhilfe

Items vor einer Zeitbegrenzung

Der Erhebungsteile erlauben die Definition von Items in verschiedenen Abschnitten. Items in diesem Abschnitt Vorspann-Item(s) werden vor den Items angezeigt, welche im Abschnitt Items eines Erhebungsteils definiert sind. Die Trennung in Vorspann-Item(s) und Items ist besonders sinnvoll, wenn unter Bearbeitungszeit eine Zeitbegrenzung aktiviert ist.

Um Items in dem Abschnitt Vorspann-Item(s) zu konfigurieren, stehen die folgenden Optionen zur Verfügung:

Hinweis: Änderungen an der Sicht Vorspann-Item(s) müssen über das Disketten-Symbol gespeichert oder mit dem Rückgängig-Symbol verwerfen werden:

Variablen

Under Development

Diese Funktion ist gerade in Entwicklung.

Eingebettete Programmhilfe

(Diese Funktionalität ist gerade noch in Entwicklung.)

Codebook

Under Development

Diese Funktion ist gerade in Entwicklung.

Eingebettete Programmhilfe

(Diese Funktionalität ist gerade noch in Entwicklung.)

ItemPool

Under Development

Diese Funktion ist gerade in Entwicklung.

Eingebettete Programmhilfe

(Diese Funktionalität ist gerade noch in Entwicklung.)

Routing innerhalb von Erhebungsteilen

Wenn CBA ItemBuilder-Tasks nicht in einer linearen Abfolge administriert werden sollen, die im Vorhinein feststeht und für alle Testpersonen identisch ist, dann kann die Funktion Routing der IRTlib Software verwendet werden.

Eine detaillierte Beschreibung zum Routing innerhalb von Erhebungsteilen findet sich hier in der eingebetteten Hilfe:

Eingebettete Programmhilfe

Zusammenfassung zu Routing innerhalb von Erhebungsteilen

Die Reihenfolge von CBA ItemBuilder-Aufgaben kann hier mit Hilfe von Blockly (also einer Form des visuellen Programmierens) definiert werden. Blockly-basierte Ablaufsteuerung ist verfügbar, wenn bei einem Erhebungsteil die Option Routing aktivieren ausgewählt ist. Die Option ist im Abschnitt Info eines Erhebungsteils zu finden. Ist sie aktiviert, enthält der Erhebungsteil den Eintrag Routing.


Übersicht:


Beispiele

Die Grundidee zur Verwendung von Blockly für die Defnition von Abläufen in computerbasierten Assessments soll zunächst mit einigen Beispielen illsturiert werden.

Basierend auf den einem Erhebungsteil hinzugefügten CBA ItemBuilder Tasks in der Ansicht Items entspricht eine lineare Folge der Tasks der folgenden Blockly-Definition:

Dem Blockly-Element Show Items wird eine Liste der CBA ItemBuilder Tasks übergeben, die mit dem Operator erzeuge Liste mit erstellt wird. Die Liste wird in der dargestellten Reihenfolge abgearbeitet, wobei jeder CBA ItemBuilder Tasks solange dargestellt wird, bis das NEXT_TASK- Command ausgeführt wird.

Eine äquivalente Formulierung einer linearen Sequenz kann auch mit mehreren Show Items-Blöcken erfolgen, wenn keine Zurücknavigation notwendig ist:

Mit Hilfe einer Variable (hier: Booklet) und einer einfachen falls/mache-Bedingung lässt sich daraus nun ein Ablauf definieren, welcher je nach Wert der Variable unterschiedliche Items administriert:

Die Items für Start und Ende werden immer administriert, die Tasks 1-3 nur, wenn die Variable Booklet den Wert 0 hat, die Tasks 4 und 5, wenn die Variable Booklet einen von 0 verschiedenen Wert hat.

Der identische Ablauf lässt sich alternativ auch unter Verwendung des Blockly-Operators für das Anzeigen von Itemlisten erstellen:

Beide Varianten sind bzgl. der Funktionalität völlig äquivalent, die zweite Vorgehensweise mit Listen erlaubt aber die Verwendung der Option Zurücknavigation innerhalb der booklet-spezifischen Tasks.

Um mit Hilfe der Blockly-Configuration zeitbegrenzte Abschnitte innerhalb eines Erhebungsteils umzusetzen, kann die folgende Blockly-Komponente verwendet werden:

Jeder Ablauf beginnt mit einem nicht zeitbgrenzten Start-Tasks und endet mit einem ebenfalls nicht zeitbegrenzten End-Tasks. Dazwischen läuft eine Zeitbegrenzung für einen Abschnitt mit der Bezeichnung MyFirstTimer, der eine Zeitbegrenzung für 60 Sekunden hat.

Die Tasks 1, 2 und 3 werden in dem Abschnitt Runtime code mit einer Zeitbegrenzung angezeigt. Tritt ein Timeout auf, d.h. werden die drei Tasks nicht innerhalb der 60 Sekunden bearbeitet, wird (ebenfalls ohne Zeitbegrenzung) der Task 4 angezeigt.

Bei vielen Items kann die Definition von Booklet Designs, d.h. Taskreihenfolgen mit balancierten Positionen, durch Funktionen bzw. Listen vereinfacht werden.

Wenn keine Zurücknavigation notwendig ist, können Funktionen für die Definition von Clustern verendet werden:

Mit Zurücknavigation können die Funktionen Listen von Tasks zurückgeben:

Weitere Informationen siehe hier.


(nach oben)

Hinweise zur Verwendung des Blockly-Editors

Die Defintion von Abläufen erfolgt in dem visuellen Blockly-Editor. Die Ausführung beginnt mit dem Element, welches am weitesten oben ausgerichtet ist. Wenn nötig, kann der Arbeitsbereich mit der Funktion Aufräumen automatisch ausgerichtet werden. Zum Hinzufügen von Blockly-Operatoren können diese per Drag-and-Drop aus der Palette gezogen werden.

Sollen die Änderung (insgesamt) verworfen werden, kann unten rechts das Verwerfen-Symbol verwendet werden.

Einige Blockly-Elemente stellen im Kontextmenü auch einen Eintrag Hilfe zur Vefügung, welcher auf allgemein zugängliche Blockly-Dokumente (https://github.com/google/blockly/wiki/) verweist.


(nach oben)

Verwendung von Blockly zur Ablaufsteuerung

Die Grundfunktionen für die Nutzung der Blockly-Umgebung zur Steuerung von Assessments finden sich im Abschnitt Session.

Einzelne Items anzeigen

Auf CBA ItemBuilder-Tasks, die in der Ansicht Items für einen Erhebungsteil importiert wurden, kann in der Ablaufsteuerung, wie in den Beispielen oben gezeigt, mit Hilfe des folgende Blockly-Elements für Tasks zugegriffen werden:

Das Element, welches im Abschnitt Session der Palette des Blockly-Editors zu finden ist, kann durch die Auswahlliste konfiguriert werden. Jedes Blockly-Element für Tasks kann auf genau einen konkreten Task verweisen, d.h. in der Regel besteht eine Ablaufdefinition aus mehrerer solcher Elemente.

Blockly-Elemente für Tasks können nicht direkt in den Ablauf eingefügt werden, sondern werden zusammen mit einem Show Item-Element verwendet:

Das Beispiel für einfache Testhefte illustriert, dass Abläufe in der Blockly-Definition häufig durch eine Abfolge von mehreren Show Item-Operatoren definiert werden. Show Item-Operatoren können dabei in Bedingungen und Schleifen, sowohl innerhalb des Hauptablaufs als auch innerhalb von Funktionen eingefügt werden.

Verwendung von Geltungsbereichen (Scopes)

Mit Hilfe der Blocky-basierten Ablaufsteuerung ist es auch möglich, CBA ItemBuilder-Tasks mehrfach innerhalb eines Ablaufs zu administrieren:

Dabei wird beim erneuten Aufruf eines Items der Zustand aus dem letzten Besuch wiederhergestellt, d.h. die Bearbeitung wird fortgesetzt. Sollen Items mehrfach neu, d.h. unbearbeitet vorgelegt werden, kann das automatische wiederherstellen nicht gewünscht sein. Dafür kann optional die Checkbox für die Angabe eines Scopes (Geltungsbereich) aktiviert werden:

Wird nichts weiter angegeben, wird das Item im “Default”-Scope administriert. Alternativ kann ein Text definiert werde, wie in folgendem Beispiel zu sehen:

Beim ersten Besuch wird der Task in dem Scope “Visit1” dargestellt. Danach folgt eine neue, unabhängige Darstellung des Tasks in einem anderen Scope (“Visit2”). Im dritten Aufruf wird der Task wieder mit den Daten dargestellt, die beim ersten Besuch bereits gesammelt wurden (d.h. der Scope “Visit1” wird erneut verwendet).

Anzeigen mehrerer Items (Itemlisten)

Wie im Beispiel für linearen Ablauf zu sehen, können lineare Tests auch über Listen von Tasks dargestellt werden.

Listen können mit dem Blockly-Operator Show Items verwendet werden:

Die Administration einer Itemliste wird dadurch abgebrochen, und die Abarbeitung des Blockly-Ablaufs nach dem Show Items-Block fortgesetzt.

Anzeige von Items mit Speicherung der Ergebnisse

Die Operatoren Show Item (für einzelne Items) und Show Items (für Itemlisten) sind auch als Operatoren für Wertzuweisungen verfügbar:

Mit deren Hilfe lassen sich Ergebnisse der Itembearbeitung zu Variablen (String oder Array) zuweisen, und dann für die Ablaufsteuerung auswerten.

Definition von Zeitbegrenzungen

Wie im Beispiel Ablauf mit Zeitbegrenzung bereits illustriert, kann mit dem Blockly-Block Start time with name die Zeitbegrenzte Administration von Items umgesetzt werden.

Das Blockly-Element Start timer with name erlaubt die Definition von Zeitbegrenzungen. Jede Zeitbegrenzung kann einen eigenen Namen haben. Zusätzlich muss die Zeit in Sekunden angegeben werden. Darüber kann definiert werden, welche Art von Zeit verwendet werden soll:

Schließlich können zwei Stellen mit weiteren Blockly-Operatoren (wie bspw. ein oder mehrere Show Item-Blöcke zum Anzeigen einzelner Items oder ein oder mehrere Show Items-Blöcke zum Anzeigen von Listen) gefüllt werden:

Blockly-Operatoren für das Testleitermenü

In der Studiendefinition können Funktionen des Testleitermenüs für eine oder mehrere Rollen angelegt werden. Rollen stellen unterschiedliche Funktionen zusammen, die mit Hilfe des vom Testleiter einzugebenden Passworts unterschieden werden können.

Anpassen von Standardfunktionen: Folgende Standardfunktionen können für eine Studie im Abschnitt Info / Testleitermenü definiert werden:

Während der Bearbeitung eines Erhebungsteils kann in der Ablaufsteuerung mit Hilfe des folgenden Blockly-Operators das Testleitermenü kontextspezifisch angepasst werden:

Das Testleitermenüs kann für jede der Standardfunktionen (im Bereich Funktion) für eine Rolle (im Bereich Gruppe) sowohl die Beschriftung der Schaltfläche (im Bereich Label) geändert werden:

Der Aufruf dieses Blockly-Operators im Testablauf definiert das Verhalten des Testleitermenüs im weiteren Testablauf. Im Unterschied zu Entfernen bleiben deaktivierte Funktionen im Testleitermenü sichtbar, können aber (bis sie wieder aktiviert werden) nicht ausgeführt werden.

Verwenden von Blockly-Funktionen im Testleitermenü: Der Blockly-Operator für das Bearbeiten des Testleitermenüs enthält im Abschnitt Funktion auch die Option zum Ausführen von Blockly-Code (ExecuteBockly):

Wenn ExecuteBlockly ausgewählt ist, kann in dem Blockly-Element Testleitermenü bearbeiten eine innerhalb des Blockly-Editors definierte Funktion ausgewählt werden. Die in dieser Funktion definierten Blockly-Operatoren werden dann ausgeführt, wenn ein Testleiter die entsprechende Schaltfläche zur Laufzeit im Testleitermenü auswählt.


(nach oben)

Fortgeschrittene Blockly-Verwendung

Ablaufsteuerung mit Bedingungen

Der Abschnitt Logic enthält den Blockly-Operator falls/mache, welcher zur Umsetzung von Bedingungen im Ablauf verwendet werden kann. Bedingungen sind logische Ausdrücke, bspw. die Prüfung ob eine Preload-Variable einen bestimmten Wert hat:

Nur wenn die Bedingung (falls) erfüllt ist, werden die Blocky-Operatoren ausgeführt, welche innerhalb des Bedingungsblocks definiert sind (d.h. neben mache). In dem Beispiel wird geprüft, ob eine boolsche Variable den Wert wahr hat.

Die Bedingung wird dabei als separater Block definiert, die mit dem Blockly-Operator falls/mache verbunden ist. Hier die beiden Komponenten separat:

Verwendung logischer Ausdrücke

Logische Ausdtrücke in Bedingungen basieren entweder auf Wertevergleichen oder Rückgaben von Funktionen. Wertevergleiche können mit folgendem Blockly-Element realisiert werden:

Die beiden Slots können mit Werten gefüllt werden. Für boolsche Werte (wahr/falsch) steht ein entsprechendes Blockly-Element im Abschnitt Logic bereit:

Bedingungen sind auch mit Variablen von anderem Datentyp möglich:

Für numerische Werte gibt es ein entsprechendes Blockly-Element im Abschnitt Math, welcher Operatoren für Zahlen und einfache mathematische Operationen enthält:

Mit dessen Hilfe und einer numerischen Variable lässt sich folgende Bedingung formulieren:

Aus technischen Gründen kann es auch notwendig sein zu prüfen, ob eine Variable noch gar keinen Wert hat. Das kann durch Verwendung der Blockly-Komponente null umgesetzt werden:

Kombination von logischen Ausdrücken: Einzelne Bedingungen oder logische Ausdrücke können mit folgendem Blockly-Element aus dem Abschnitt Logik verbunden werden:

Dabei steht eine und sowie eine oder-Verknüpfung der Aussagen zur Auswahl. Die und-Verknüpfung ist wahr, wenn beide Ausdrücke wahr sind, die oder-Verknüpfung ist wahr, wenn mindestens einer von beiden Ausdrücken (oder beide Ausdrücke) wahr sind.

Mehrere logische Ausdrücke können in einander geschachtelt werden:

Hinweis: Für eine übersichtlichere Darstellung ist bei der äußeren und-Verknüpfung die externe Darstellung gewählt.

Mehrere Bedingungen (sonst falls / sonst): Durch Klick auf das kleine Zahnrad-Symbol eines Bedingungsblocks (falls/mache) kann dieser konfiguriert werden:

Durch das Hinzufügen eines Abschnitts sonst falls können kann eine weitere Bedingung hinzugefügt werden. Die in einem sonst falls Abschnitt definierte Bedingung wird geprüft, wenn die vorherigen Bedingungen (falls) nicht erfüllt sind. Ist eine Bedingung erfüllt, werden die definierten Blockly-Operatoren ausgeführt.

Durch das Hinzufügen eines Abschnitts sonst können Blöcke hinzugefügt werden, welche dann ausgeführt werden, wenn keine der Bedingungen erfüllt ist.

Prüfe-Operator: Für Wertzuweisungen in Abhängigkeit von einer Bedingung stellt der Blockly-Editor eine speziellen Operator prüfe-falls wahr-falls falsch zur Verfügung:

Der Operator kombiniert eine Wertzuweisung mit einem logische Ausdruck:

In diesem Beispiel wird der String-Variablen MyStringVariable der Wert Yes zugewiesen, falls die boolsche Variable MyBooleanVariable den Wert wahr hat. Wenn MyBooleanVariable den Wert falsch hat, wird MyStringVariable der Wert No zugewiesen.

Negation: Um einen logischen Ausdruck umzukehren (Negation) steht folgender Blockly-Operator zur Verfügung:


(nach oben)

Ablaufsteuerung mit Schleifen

Die mehrfache Ausführung von Blockly-Operatoren (und der damit darstellbaren Aktionen) ist mit Schleifen möglich. Der Abschnitt Loops der Palette enthält die dafür notwendigen Blockly-Elemente.

Wiederhole n-mal: Der folgende Blockly-Operator kann verwendet werden, um die Ausführung von Blöcke n-mal zu wiederholen:

Wiederhole solange: Schleifen können auch solange wiederholt werden bis eine Bedingung zutrifft (oder solange eine Bedingung zutrift):

Beispiel:

Zähle von/bis: Schleife mit Hilfsvariablen:

Für jeden Wert aus Liste: Schleife über alle Werte einer Liste:

Schleifen vorzeitig abbrechen: Folgendes Blockly-Element kann genutzt werden, um eine Schleife (vorzeitig) abzubrechen oder um vorzeitig mit dem nächsten Schleifendurchlauf zu beginnen:

Operatoren für Zahlen und einfache mathematische Funktionen

Der Abschnitt Math der Palette enthält Blockly-Elemente zur Verwendung von Zahlen und einfachen mathematischen Funktionen.

Ausdrücke

Basale Funktionen

Schachtelung ist möglich, z.B.:

Eingebaute Funktionen

Hinweis: - erlaubt das Negieren numerischer Werte, wie in folgendem Beispiel zu sehen ist:

In dem Beispiel zu sehen ist der Tooltip für die in Blockly verfügbare Hilfe und ein Beispiel, wo die Zahl 5 mit dem --Operator in die Zahl -5 umgewandelt wird. Die äußere Bedingung (Negieren von 5 ergibt -5) ist also wahr.

Erzeugung von Zufallszahlen: Für die Erstellung von Zufallszahlen stehen zwei Blocky-Elemente zur Verfügung:

Numerische Funktionen für Listen: Vordefinierte Funktionen für Listen umfassen:

Hinweise:


(nach oben)

Operatoren für Text und einfache String-Operationen

Der Abschnitt Text der Palette enthält Blockly-Elemente zur Verwendung Zeichenketten.

Ausdrücke: Zum Erstellen von Text steht folgender Operator zur Verfügung:

Verketten: Verschiedene Operatoren können verwendet werden, um Text zusammenzufügen und zu Variablen zuzuweisen:

Textlänge: Die Länge einer Zeichenkette kann mit folgendem Blockly-Operator ermittelt werden:

Prüfung auf leeren String: Leere String-Variablen können daran erkannt werden, dass die Anzahl der Zeichen 0 ist.

Alternativ kann dafür auch der folgende Blockly-Operator verwendet werden:

Position in String finden: Ein Operator, der im Text (der per Variable oder als Ausdruck übergeben wird) das erste oder letzte Auftreten eines Begriffs sucht, kann wie folgt verwendet werden:

Zurückgegben wird dabei die Position des Begriffs innerhalb der Zeichenkette (d.h. im Text).

Teilzeichenketten bilden: Der folgende Operator nimmt aus der übergebenen Zeichenkette im Text die ersten Buchstaben. Die Anzahl der Buchstaben wird dabei ebenfalls übergeben.

Buchstabenfunktion Parameter N Bedeutung
nimm Ja Es werden die ersten N Buchstaben zurückgeliefert
nimm von hinten Ja Es werden die letzten N Buchstaben zurückgeliefert
nimm ersten Nein Es wird der erste Buchstabe zurückgeliefert (entspricht nimm mit N=1)
nimm letzten Nein Es wird der letzte Buchstabe zurückgeliefert (entspricht nimm von hinten mit N=1)
nimm zufälligen Nein Es wird ein zufälliger Buchstabe zurückgeliefert

Buchstaben aus einer Zeichenkette kann man auch mit folgendem Operator entnehmen, und bspw. einer Variablen zuweisen:

Texte Verändern: Vorhandene Texte (entweder als Ausdrücke oder aus Variablen vom Datentyp String) können durch die Anwendung von Operatoren verändert werden.

Die Option Substantive konvertiert die übergebene Zeichenfolge in eine Folge von Worten mit großem Anfangsbuchstaben (außer Zeichenketten, die vollständig in Großbuchstaben geschrieben sind).


(nach oben)

Operatoren für Zeiten und einfache Zeit-Operationen

Der Abschnitt Date & Time der Palette enthält Blockly-Elemente zur Verwendung von Zeiten innerhalb von Ablaufdefinitionen.

Festhalten von Zeitpunkten: Variablen vom Datentyp DateTime können Zeitstempel zugewiesen werden.

Ermitteln von Zeitdifferenzen: Vollständiges Beispiel: Folgender Blockly-Code misst die Zeit für die Bearbeitung von Task 1 bis 4. Dafür wird zunächst der Startzeitpunkt fegesthalten, und nach der Bearbeitung der Aufgaben wird die Zeitdifferenz ermittelt und in Sekunden umgewandelt:

Umrechnen von Zeitmaßen


(nach oben)

Operatoren für Listen

Der Abschnitt Lists der Palette enthält Blockly-Elemente zur Erstellung und Verwendung von Listen.

Liste erstellen: Es stehen verschiedene Optionen zur Verfügung, wie Listen erstellt werden können.

Die Anzahl der Elemente des Operators erzeuge Liste mit kann per Drag-and-Drop konfiguriert werden, nachdem das Zahnrad-Symbol angeklickt wurde:

Bei der Erstellung von Listen ist darauf zu achten, dass der Blockly-Editor keine Prüfung der Datentype vornimmt. Listen mit Werten unterschiedlicher Datentypen können (fälschlicher Weise) erstellt werden, führen aber zu keinem funktionierenden Testablauf.

Verbinden von Listen: Bestehende Listen können zusammengeführt werden mit folgendem Operator:

Teillisten: Aus Listen kann mit folgendem Operator eine Teilliste ausgewählt werden:

Weitere Optionen des Operators für bis: bis von hinten und bis letztes.

Eigenschaften von Listen: Folgende Operatoren stehen zur Verfügung um Eigenschaften einer Liste abzufragen:

Suchen und Ersetzen: Folgende Operatoren stehen zum Suchen und Ersetzen von Elementen in Listen zur Verfügung:

Weitere Optionen des Operators für das: von hinten das / Erste / Letzte und Zufällig.

Weitere Optionen des Operators für das: von hinten das / Erste / Letzte und Zufällig.

Umwandlung von Listen und Text: Liste und Text können über Trennzeichen umgewandelt werden.

Listen Sortieren: Elemente in Listen können auch sortiert werden.


(nach oben)

Blockly-Variablen

Der Abschnitt Variables der Palette enthält Blockly-Elemente zur Erstellung und Verwendung von Variablen.

Variable Erstellen: Um eine Blockly-Variable zu erstellen enthält die Palette die Typisierte Variable Erstellen:

Einfache Datentypen und Wertzuweisungen: Folgende basale Datentypen werden unterstützt:

Für Zeiten werden folgende Datentypen bereitgestellt:

Datentypen für mehrere Werte: Neben den basalen Datentypen werden auch Datentypen für mehrere Werte unterstützt:

Variablenwerte Verwenden: Für die Verwendung von Variablenwerten, können Blockly-Elemente mit Eingängen folgende Komponenten aufnehmen:


(nach oben)

Blockly-Funktionen

Der Abschnitt Functions der Palette enthält Blockly-Elemente zur Verwendung von Funktionen innerhalb von Ablaufdefinitionen. Funktionen kombinieren Blocky-Code, so dass dieser nur einmal definiert aber mehrfach verwendet werden kann.

Definieren von Funktionen: Es können zwei verschiede Formen von Funktionen definiert werden.

Funktionen ohne Rückgabewert können, damit sie augerufen werden, im Ablauf einfach mit vorherigen und nachfolgenden Blockly-Elementen verbunden werden (d.h. sie haben eine Verbindung nach oben und unten):

Funktionen mit Rückgabewert können in einem Zuweisungs-Block aufgerufen werden (d.h. sie haben eine Verbindung nach links):

Zu welchem Typ eine Zuweisung sinnvoll ist, hängt von dem Typ des Rückgabewerts ab.

Definieren von Rückgabewerten von Funktionen: Funktionen werden durch spezielle Blockly-Elemente definiert, die an einer beliebigen Stelle im Code-Editor eingefügt werden können.

Ergänzend stehen die folgenden zwei Blockly-Elemente zur Verfügung, die nur innerhalb einer Funktionsdefintion (mit Rückgabewert) verwendet werden können:

Beispiel:

Rückgabewerte sind typisiert. Die Ablaufsteuerung unterstützt auch Funktionen, die …

Definieren von Aufrufparametern von Funktionen: Funktionen können auch Parameter verwenden, die beim Aufruf der Funktion zu übergeben sind (Aufrufparameter). Die Defintion von Aufrufparametern ist nach einem Klick auf das kleine Zahnrad-Symbol eines Funktions-Blocks möglich:

Passend zur Definition der Parameter, erfolgt dann der Aufruf der Funktion durch Übergabe:

Beispiel:


(nach oben)

Nutzung von Itemergebnissen in der Ablaufsteuerung

(Dokumentation folgt)


(nach oben)

Blockly-Operatoren zum Kodieren fehlender Werte

(Dokumentation folgt)


(nach oben)

Blockly-Operatoren zum schreiben von Daten

(Dokumentation folgt)

Log-Daten: Folgender Operator kann genutzt werden, um Informationen direkt in die Log-Daten zu speichern:

Ergebnis-Daten: (Dokumentation folgt)

Monitoring-Daten: (Dokumentation folgt)


(nach oben)

Kommentieren von Blockly-Code

Der IRTLib Editor unterstützt zwei verschiedene Optionen zur Kommentierung von Blockly-Code.

Kommentare als Blockly-Elemente

Kommentare, die im Ablauf dauerhaft sichtbar sein sollen, können über die Plaette im Abschnitt Development hinzugefügt werden:

Diese Kommentare können wie Blocky-Operatoren verschoben werden und zeigen einzeiligen Kommentartext.

Ausführliche Kommentare an Blockly-Elementen

Für ausführlichere Kommentare kann über das Kontextmenü jeder Block mit einem Kommentar hinzugefügt (und wenn vorhanden gelöscht) werden:

Diese Kommentare können mehrere Zeilen umfassen und werden dargestellt, wenn auf das kleine ?-Icon eines Blocks geklickt wurde.


(nach oben)

Darstellung von Blockly-Code

Entfalten / Zusammenfalten

Große und komplexe Abläufe können im Blockly-Editor unter Umständen unübersichtlich werden. Um für eine Betrachtung nicht benötigte Blockly-Elemente auszublenden, ohne die Funktion der Ablaufdefinition zu verändern, können Blöcke zusammengefaltet werden:

Das wird in folgendem Beispiel illustriert:

Das zusammenfalten / entfalten von Blockly-Elementen ändert nichts an der Funktion einer Ablaufdefinition und dient nur der übersichtlicheren Anordnung von komplexen Ablaufdefinitionen.

Deaktivieren / Aktivieren

Hinweis: Diese Funktion ist gerade noch in Entwicklung.

Der Blockly-Editor bietet die Option, Blockly-Elemente, statt sie zu löschen, nur zu deaktivieren. Deaktivierte Blockly-Elemente bleiben in der Ablaufdefinition enthalten, werden aber nicht ausgeführt.

In folgendem Beispiel ist der Block zum Anzeigen des Tasks 3 deaktiviert, d.h. es werden nur Task 1, 2 und 4 angezeigt:

Aktivieren bzw. Deaktivieren von Blockly-Elementen erfolgt über das Kontextmenü:

Internal / External: Einige Blockly-Elemente mit Eingängen (d.h. Stellen, an denen man weitere Blöcke verbinden kann) erlauben zwischen zwei Darstellungsformen zu wechseln.

Beide Darstellungsformen sind bzgl. der Funktionalität äquivalent.

Aufräumen: Im Kontextmenü des Blockly-Editors, welches durch Klick in einen leeren Bereich geöffnet werden kann, ist die Funktion Bausteine aufräumen enthalten:

Durch Aufruf von Bausteine aufäumen werden alle Blockly-Elemente im Blockly-Editor vertikal untereinander ausgerichtet.


(nach oben)

Routing zwischen Erhebungsteilen

Wenn mehrere Erhebungsteile für eine Studie definiert sind, kann die Abfolge von Erhebungsteilen definiert werden, in welcher Befragte oder Testpersonen die Inhalte der Erhebungsteile präsentiert bekommen.

Neben einfachen linearen Abläufen können Abläufe von mehreren Erhebungsteilen auch mit einem Blockly-basierten Routing konfiguriert werden.

Eine detaillierte Beschreibung zum Routing zwischen Erhebungsteilen findet sich hier in der eingebetteten Hilfe:

Eingebettete Programmhilfe

Zusammenfassung zu Routing zwischen Erhebungsteilen

Die Reihenfolge von Erhebungsteilen kann mit Hilfe von Blockly definiert werden (analog zur Definition der Reihenfolge von Items innerhalb von Erhebungsteilen). Diese Option ist verfügbar, wenn in der Grundkonfiguration zu einer Studie (in der Ansicht Übersicht) die Option Routing für Erhebungsteile aktivieren gewählt ist.

Für die allgemeinen Grundlagen zur Verwendung von Blockly im IRTlib Editor siehe die Hilfe zum Routing innerhalb von Erhebungsteilen.

Funktionen, die nur im Routing zwischen Erhebungsteilen zur Verfügung stehen, sind:

Dieser Blockly-Operator ersetzt Show Item innerhalb von Erhebungsteilen.

Dieser Blockly-Operator hat den Wert wahr, wenn vor der Anzahl der maximalen Versuche (hier: unendlich, d.h. unbegrenzt oft) gültige Login-Informationen angegeben wurden.

Hinweis: Änderungen an der Sicht Routing zwischen Erhebungsteilen müssen über das Disketten-Symbol gespeichert oder mit dem Rückgängig-Symbol verworfen werden: