Skip to content

assessmentsession (assessment units)

Phil edited this page Nov 17, 2025 · 4 revisions

Assessment Sessions (Assessment Units)

Last Updated: 2025-01-12 | For: Teachers & Content Creators | Level: Advanced


πŸ“– What is an Assessment Session?

An assessment session is a unit with a fixed, predetermined sequence of questions. Unlike learning sessions (which adapt to the student), assessment sessions present questions in a controlled order, making them ideal for:

πŸ’‘ Important: Assessment sessions use trial types (d, t, s, m, n, i, f) to control how each question is presented. See the Trial Types Reference for complete details on each type.

  • Pre-tests and post-tests
  • Standardized quizzes and exams
  • Factorial experiment designs
  • Surveys and questionnaires
  • Research studies requiring consistent ordering

🎯 When to Use Assessment Sessions

βœ… Use assessment sessions for:

  • Tests and quizzes with specific question order
  • Pre/post assessments
  • Controlled experiments
  • Standardized evaluations
  • Surveys

❌ Don't use assessment sessions for:

  • Adaptive practice (use learning sessions instead)
  • Long-term spaced repetition
  • Personalized learning paths

πŸ“‹ Assessment Session Configuration

An Assessment Session portion of a TDF is a uniquely tailored set of unit "rules" that defines the schedule creation process. Assessment, factorial designs, and survey unit creation is done with the "assessmentsession" field which is the alternative to the "learningsession" field.

The following required fields are specified for assessmentsession:

  • conditiontemplatesbygroup This is where the sequence is setup. It has several necessary components to lay out a schedule. this layout is rather trivial for simple randomized or unrandomized blocks of items, but becomes more complex as spacing and repetition of items are interleaved together. The system this allows randomized assignment of items to complex fixed schedules that may also include further sequence randomization.
    • groupnames letters to indicate the names of conditions of practice applying to sequences of item or cluster practices. Contains single-character group names for each set of templates A to K (e.g. A, B, C, … K).
    • clustersrepeated this is how many time each cluster is repeated, it is the template length for each of the groupnames. Contained integers determine the number of times a cluster will repeat in a template. ex. 1 3 3 Clusters will be displayed once in group A, repeated three times in both groups B and C
    • templatesrepeated this is how many templates there are for each groupname. Contained integers determine the number of times a template will repeat. ex. 2 2 2 *Previously Groups A, B, and C will all be presented twice.
    • group this is a list for each group of a,b,c,d (4 csv values) for each trial within each repetition of each groupname. The first value, a, is the stimulus item within the cluster (0 indexed) with r indicating a random index (see randomchoices below). The second value, b, is the dispay mode, e.g. f is standard text responses, b is a button trial. The third value, c, is the type a test without feedback (t), test with feedback (d), or feedback only (s). The 4th value is the 0 index location of this trial within the "template" for example 2,f,d,0 2,f,d,18 2,f,d,36 indicates 3 fill-in trials for the 3rd stimulus in the cluster with the second trial 18 trials after the first and the third 18 trials after the second. This would require 3 positions in the initialpositions list, X_1 X_2 X_3

Once the base units of the schedule are laid out as above, the subsequent components interleave these patterns and allow various types of additional randomization. Keep in mind (and it can be important in multiunit designs) the setspec has shuffles and swapclusters tags which do randomization that applies the same to all units, while these tags below only randomize within the the unit. Thus they (e.g. assignrandomclusters) will not produce the same assignments across units. In some complex cases this is needed.

  • initialpositions a list of the positions of the stimuli repetitions for the groups. The key information here is the start location of each of the template repetitions. the template itself allow inference of the other positions, but the software requires them (it also serves as a logic checksum for the schedule). It is best to inspect examples to see how this works. In the example below, there are 3 groups, with 39 items per group, but since each is only given once, it appears only once in this list that places the 117 repetitions for the items assigned to each group. Group A (39 entries) is completed first, then group B, then group C.
  • randomizegroups not used in recent memory (could be removed) Boolean value that determines randomization within a group name. ex. true *Previously
  • clusterlist this is a consecutive list of x-y pairs indicating the sequential chunks of clusters, e.g. 0-6 12-17 would indicate the first 7 items, followed by items 13 to item 18. The example 12-17 0-6 is invalid, since it is inconsequential. ex. 0-7 If there are 10 clusters, only 0-7 will be used
  • permutefinalresult is the last step in creating the sequence (which is saved to the unitstate ? for that tdf for that user) each of these regions o the schedule is randomly ordered individually, then the regions (chunks) are pasted back in the same order. ex. 0-10 or 0-3 4-7 8-10 Both of the above are acceptable forms, the latter being the format for partitioned permutations.
  • assignrandomclusters this causes the assessment session, as a first step in making the schedule, to rerandomize the clusters (typically they are first randomized globally in the setspec which makes them random during the initial unit). To do random assignment for subsequent units this is needed because often subsequent units need to be randomized relative to initial units. for example in a pretest,learning, posttest design, you might need 3 randomization of the order Boolean value that determines if clusters are to be randomly assigned to groups. ex. false
  • randomchoices is the number of choice if the stimuli is selected randomly

Example of assessment session unit:

{{
				"unitname": "Posttest",
				"unitinstructions": "<p>Thank you for continuing with the experiment. You have now reached the posttest.<br><br> In the posttest, you will be presented with the 117 Chinese character components. Some of these you may not have seen in session 1 since not all items are introduced for all participants. Your task is to type the corresponding English meaning for each component. The timing and feedback will follow the same format as Part 1.</p>",
				"deliveryparams": {
					"drill": "10000",
					"purestudy": "16000",
					"skipstudy": "false",
					"reviewstudy": "6000",
					"correctprompt": "1000",
					"fontsize": "3",
					"correctscore": "1",
					"incorrectscore": "0"
				},
				"assessmentsession": {
					"conditiontemplatesbygroup": {
						"groupnames": "A B C",
						"clustersrepeated": "1 1 1",
						"templatesrepeated": "39 39 39",
						"group": [
						"0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0","0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0","0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0 0,f,d,0"
						]
						},
					"initialpositions": "A_1 A_2 A_3 A_4 A_5 A_6 A_7 A_8 A_9 A_10 A_11 A_12 A_13 A_14 A_15 A_16 A_17 A_18 A_19 A_20 A_21 A_22 A_23 A_24 A_25 A_26 A_27 A_28 A_29 A_30 A_31 A_32 A_33 A_34 A_35 A_36 A_37 A_38 A_39 B_1 B_2 B_3 B_4 B_5 B_6 B_7 B_8 B_9 B_10 B_11 B_12 B_13 B_14 B_15 B_16 B_17 B_18 B_19 B_20 B_21 B_22 B_23 B_24 B_25 B_26 B_27 B_28 B_29 B_30 B_31 B_32 B_33 B_34 B_35 B_36 B_37 B_38 B_39 C_1 C_2 C_3 C_4 C_5 C_6 C_7 C_8 C_9 C_10 C_11 C_12 C_13 C_14 C_15 C_16 C_17 C_18 C_19 C_20 C_21 C_22 C_23 C_24 C_25 C_26 C_27 C_28 C_29 C_30 C_31 C_32 C_33 C_34 C_35 C_36 C_37 C_38 C_39",
					"randomizegroups": "false",
					"clusterlist": "0-116",
					"permutefinalresult": "0-116",
					"assignrandomclusters": "false"
				}
			}}

πŸ“š See Also


Questions? Check the FAQ or report issues on GitHub.

Clone this wiki locally