![]() |
![]() |
![]() |
liboscats Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
struct OscatsTest; struct OscatsTestClass; void oscats_test_administer (OscatsTest *test
,OscatsExaminee *e
); void oscats_test_set_hint (OscatsTest *test
,GBitArray *hint
);
"id" gchar* : Read / Write / Construct Only "itembank" OscatsItemBank* : Read / Write / Construct Only "itermax-items" guint : Read / Write / Construct Only "itermax-select" guint : Read / Write / Construct Only "length-hint" guint : Read / Write
"administer" :Action
"administered" :Action
"approve" :Action
"filter" :Action
"finalize" :Action
"initialize" :Action
"select" :Action
"stopcrit" :Action
struct OscatsTestClass { GObjectClass parent_class; // Signals guint initialize; guint filter; guint select; guint approve; guint administer; guint administered; guint stopcrit; guint finalize; };
void oscats_test_administer (OscatsTest *test
,OscatsExaminee *e
);
Core CAT administration loop. The particular algorithms used to
select and administer items as well as update ability/classification
estimates and tabulate statistics are specified by means of signals
connected to test
.
The test proceeds in the following order:
The examinee's item/response vectors are reset.
The "initialize" signal is emitted.
The item eligibility vector is initialized with the current hinted value (default: all items).
If the approval handler returns TRUE
, goto 3 (not more than "itermax_select" times).
The "administer" signal is emitted (which should add the item/response pair to e
as necessary).
The "administered" and "stopcrit" signals are emitted.
If the stopping criterion has not been met, goto 3 (not more than "itermax_items" times).
The "finalize" signal is emitted.
Algorithms must be connected to at minimum "select", "administer", and "stopcrit". An initial guess for the examinee's latent IRT ability or classification must be supplied.
|
the OscatsTest to administer |
|
the OscatsExaminee taking the test |
void oscats_test_set_hint (OscatsTest *test
,GBitArray *hint
);
Sets the item eligibility hint. The length of hint
must be the same as
the number of items in "itembank". This is generally called in
handlers connected to "initialize" or
"administered".
|
an OscatsTest |
|
the initially eligible items |
"id"
property"id" gchar* : Read / Write / Construct Only
A string identifier for the test.
Default value: NULL
"itembank"
property"itembank" OscatsItemBank* : Read / Write / Construct Only
The item bank used for the test.
"itermax-items"
property"itermax-items" guint : Read / Write / Construct Only
The maximum number of items. If this value is reached (or the item bank is exhausted) before the stoping criterion is triggered, a warning is logged, the "finalize" signal is emitted, and the test is concluded.
Allowed values: >= 1
Default value: 200
"itermax-select"
property"itermax-select" guint : Read / Write / Construct Only
The maximum number of iterations in the item-selection loop. If this value is reached without selecting an item, a warning is logged, the "finalize" signal is emitted, and the test is aborted.
Allowed values: >= 1
Default value: 50
"length-hint"
property"length-hint" guint : Read / Write
Guess for how long the test will be.
Default value: 0
"administer"
signalguchar user_function (OscatsTest *test,
OscatsExaminee *e,
OscatsItem *item,
gpointer user_data) : Action
Item administration. Only one administrator should connect to the
"administer" signal. If multiple algorithms attach to
"administer", only the response returned from the last
administrator will be reported to algorithms connected to
"administered". Note: An algorithm connected to this signal
should call oscats_examinee_add_item()
, as appropriate, to record the
response for the examinee so that it can be used in subsequent
ability/classification estimation. Whether or not the response is
recorded (tests with online calibration, for example, may not record
every response), items are still not administered more than once.
|
an OscatsTest |
|
an OscatsExaminee |
|
the proposed OscatsItem |
|
user data set when the signal handler was connected. |
Returns : |
the guint response of examinee e to item
|
"administered"
signalvoid user_function (OscatsTest *test,
OscatsExaminee *e,
OscatsItem *item,
guchar resp,
gpointer user_data) : Action
The "administered" signal allows algorithms to record statistics concerning items administered and the examinee's responses. In particular, an algorithm to update the examinee's estimated ability/class should be connected to "administered".
|
an OscatsTest |
|
an OscatsExaminee |
|
the proposed OscatsItem |
|
the guint response |
|
user data set when the signal handler was connected. |
"approve"
signalgboolean user_function (OscatsTest *test,
OscatsExaminee *e,
OscatsItem *item,
gpointer user_data) : Action
Item approval. Algorithms (e.g. Sympson-Hetter) connecting to
"approve" should indicate whether the proposed item
is
acceptable. If multiple algorithms attach to "approve", each
one must approve an item before it will be administered to examinee e
.
The item
may be NULL
, in which case handlers must silently return
TRUE
.
|
an OscatsTest |
|
an OscatsExaminee |
|
the proposed OscatsItem |
|
user data set when the signal handler was connected. |
Returns : |
FALSE to accept the proposed item, TRUE to reject |
"filter"
signalvoid user_function (OscatsTest *test,
OscatsExaminee *e,
GBitArray *eligible,
gpointer user_data) : Action
Item filtration. The list of eligible
items is initialized to the
test's eligibility hint (default: all items), minus items examinee e
has
already been administered. Algorithms connecting to "filter"
should clear bits in eligible
for undesired items. If an algorithm sets
bits in eligible
, it is the algorithm's responsibility to ensure that
examinee e
has not already seen the given item.
|
an OscatsTest |
|
an OscatsExaminee |
|
a GBitArray indicating eligible items in the itembank |
|
user data set when the signal handler was connected. |
"finalize"
signalvoid user_function (OscatsTest *test,
OscatsExaminee *e,
gpointer user_data) : Action
Test finalization. Algorithms may compute final statistics and clean up internal data structures by connecting to "finalize". It is guaranteed that the test will emit "finalize", even if the test is aborted.
|
an OscatsTest |
|
an OscatsExaminee |
|
user data set when the signal handler was connected. |
"initialize"
signalvoid user_function (OscatsTest *test,
OscatsExaminee *e,
gpointer user_data) : Action
Test initializiation. All algorithms that need to initialize their
internal data structures should connect to the "initialize"
signal. If the examinee's initial ability/class estimate is not set
before oscats_test_administer()
is called, it should be set by a handler
attached to "initialize".
|
an OscatsTest |
|
an OscatsExaminee |
|
user data set when the signal handler was connected. |
"select"
signalgint user_function (OscatsTest *test,
OscatsExaminee *e,
GBitArray *eligible,
gpointer user_data) : Action
Item selection. The algorithm connecting to "select" must
select a single item from those in the item bank that are eligible
, or
return -1 on failure. Only one algorithm should connect to
"select". If multiple algorithms connect, only the results
from the last connected algorithm will be used.
|
an OscatsTest |
|
an OscatsExaminee |
|
a GBitArray indicating eligible items in the itembank |
|
user data set when the signal handler was connected. |
Returns : |
the index of the selected OscatsItem, or -1 on failure |
"stopcrit"
signalgboolean user_function (OscatsTest *test,
OscatsExaminee *e,
gpointer user_data) : Action
Stoping criterion. If multiple algorithms attach to "stopcrit", only one is required to end the test. Note, the test will never have more than "itermax_items" items.
|
an OscatsTest |
|
an OscatsExaminee |
|
user data set when the signal handler was connected. |
Returns : |
TRUE to end the test, FALSE to continue with another item |