4.2. Participants and Samples
Participants were first-year students in a CS course at a Central European university covering introductory programming (C), algorithmic thinking, and basic problem solving. Attendance at the course was open to students on several first-year programs. The study population is the computer-science cohort, so the analysis includes only students enrolled in an informatics-bearing program (informatics, informatics teacher training, mathematics–informatics, and engineering informatics); students enrolled in the mathematics program, who sat the same quiz, fall outside the population and are excluded.
Section 4.8 states this and the remaining inclusion criteria, with the resulting counts.
The primary cohort is from the 2023–2024 academic year. Two additional independent cohorts from 2024 to 2025 (fall) and from 2025 to 2026 (spring) supply replication data for Assessment 1 only.
Three analytic samples are distinguished. The Assessment 1 sample comprises students with valid, normalized self-estimates and actual quiz scores; this is the basis for every Assessment 1 statistic reported below. The Assessment 2 sample comprises students with valid self-estimates and actual scores on both exam components; this is the basis for every Assessment 2 statistic. The linked subsample comprises 94 students present in both assessments ( of A1, of A2) and is the only sample used for paired within-subject analyses. The replication cohorts ( for 2024–2025; for 2025–2026) are independent samples with no possible linkage to the primary cohort and are reported separately. Throughout the manuscript, every reported figure makes the underlying sample explicit, so that statistics for A1, for A2, and for the 94-student linked subsample are never combined.
4.3. Measures
The Assessment 1 self-estimate was elicited by a single Hungarian-language item at the end of the quiz asking the student to record, on a 0–100% scale, the percentage they believed they had solved correctly. Two further items recorded years of prior programming study and a 0–100% self-rated programming ability. Because raw responses were a mix of percentages, proportions (0–1), Hungarian 1–10 grades, and free-text entries, the analysis uses the normalized dataset prepared from the raw file by the rule stated in
Section 4.8: proportions are scaled to percentages, unparseable entries are excluded, and the result is a 0–100 score per student. Actual Assessment 1 performance is the quiz percentage score (0–100).
For Assessment 2, students recorded two postdictive estimates on 0–100% scales, one for the written component and one for the laboratory component, after completing each component but before grades were returned. Actual Assessment 2 performance was recorded as raw points on different maxima (30 for the written component, 10 for the laboratory component). For bias analyses, actual scores were rescaled to 0–100 by dividing by the maximum and multiplying by 100. Rank-order analyses (Spearman ) are scale-invariant and are reported on raw scores.
The dimensions used in the analyses reported below are therefore self-estimate (0–100%), actual score (0–100%), signed error (estimate − actual), absolute error, performance tertile (lower/middle/upper, defined within sample by actual score), and a participant indicator for the within-subject linkage. No information that could identify a student appears in the analytic files; identifiers are de-identified internal codes generated for course administration and were used here only to align records across the two assessments. Pseudonymization was a standard part of the assessment process: no student names were ever provided to the analysts. Because the design aligns each student’s records across the two assessments by internal identifier, re-linkage within the dataset is possible by construction, so the records are pseudonymized rather than anonymized.
4.5. Mid-Course Exam: Structure, Grading, and Information Available to the Students
The mid-course exam was the same for every participant and its structure was published in advance in the course syllabus. Both components draw on a single, common pool of programming theorems and algorithmic patterns (
Fekete et al., 2020;
Fóthi, 2012;
Szlávi & Zsakó, 2016) that had been worked through in class.
The written component was a theory-oriented paper with a maximum of 30 points; a score (≥15 points) was required to pass. The course grade contribution of the written component is points divided by 3, mapping the raw 0–30 scale onto the 0–10 scale used for the laboratory component. The items tested definitions, hand-tracing of given algorithms, short calculations whose answer depends on tracing an algorithm step by step, and pseudocode-style writing of taught algorithmic patterns on elementary input data. No automatic feedback of any kind was provided during or immediately after the written component.
The
laboratory component was a practical programming paper with a maximum of 10 raw points, of which one point was awarded by default to every participant who attended the laboratory session. The 0–1 segment of the laboratory scale is therefore administrative and not a substantive low-performance band (see
Section 5.5). Submissions were marked by an automated judge of the DOMjudge family (
Eldering et al., 2022): the system compiled and ran each submission against a hidden battery of test cases prepared in advance, awarded full credit for a test that produced the expected output, partial credit for tests that succeeded but failed others, and no credit for tests on which the submission did not produce the expected output. Critically, the automated judge does
not evaluate style, efficiency, or whether the algorithm chosen matches the one prescribed for the task; it only checks observable input–output behavior. The score returned by the judge at the moment of submission was therefore the principal in-task cue available to the student when the laboratory postdiction was recorded. The final laboratory grade was set only after a subsequent manual review by the instructor, in which points could be deducted for poor efficiency, weak style, or, for items that explicitly prescribed a specific algorithm or method, for using a different approach. Alternative correct solutions are otherwise accepted. The full rubric, including the criteria used in the manual review, was published in the course syllabus and was therefore common knowledge to every participant before they sat the exam. This combination of (i) an immediate but rubric-incomplete automated signal during the exam, (ii) a delayed manual adjustment against a publicly known rubric, and (iii) a one-point floor on the laboratory scale is what motivates the floor-aware re-banding analysis reported in
Section 5.5 and is referenced throughout the results and discussion as “the laboratory cue structure”.
4.8. Data Analysis
Analyses were conducted in Python 3.13.3 using pandas 2.2.3, numpy 2.2.6 and scipy 1.16.3; the comparison of dependent correlations was additionally cross-checked in R 4.6.1 with the
cocor package, version 1.1-4 (
Diedenhofen & Musch, 2015).
The item asked students what percentage of the quiz they believed they had solved correctly, and offered a worked example in both of the notations in use locally: a percentage, or the equivalent mark on the 1–10 grading scale (85% being 8.5 on that scale). Students used both formats. Responses were normalized to a 0–100 scale by the following rule: where a response stated a range, its midpoint was taken; where a percentage sign was present, the value was treated as already a percentage; otherwise a bare value of 1 or less was treated as a proportion and multiplied by 100, and a bare value of 10 or less as a 1–10 grade and multiplied by 10; a value falling outside 0–100 after this step, and a response containing no numeral, were treated as missing. Applied to the raw export, the rule reproduces the independently hand-normalized value for every response that carries a value.
Three criteria were applied in order. First, the student had to be enrolled in an informatics-bearing program, as set out in
Section 4.2. Second, the response had to yield a self-estimate on the 0–100 scale under the rule above and to carry a recorded quiz score. Third, where a student sat the quiz more than once, the record with the higher quiz score among those meeting the second criterion was retained, so that each student contributes one observation. The raw Assessment 1 export contains 119 responses from 112 students, 7 of whom submitted twice. Six responses were excluded by the first criterion (five students enrolled in the mathematics program and one with no program recorded), seven by the second (three of these also recorded a zero quiz score), and five by the third. The analysis therefore uses 101 responses from 101 students. The same three criteria were applied to the replication cohorts.
Missing data were handled by complete-case analysis; no imputation was performed, and a blank self-estimate was treated as missing rather than as a score of zero.
For each student and each judgment, calibration was characterized by the signed error (estimate − actual, with positive values indicating overestimation), the absolute error, and the rank-order association between estimate and actual score using Pearson r and Spearman . The proportion of overestimators, exact matches, and underestimators, together with the root mean squared error (RMSE), provided complementary summaries. Assessment 2 actual scores were rescaled to 0–100 against the confirmed maxima of 30 (written) and 10 (laboratory), and replication-cohort scores against the 23 scored quiz items; both are direct arithmetic transformations rather than modeling choices.
For the within-subject comparison in the 94-student linked subsample, paired
t-tests and Wilcoxon signed-rank tests (
Wilcoxon, 1945) compared signed and absolute errors between A1 and each A2 component, with Cohen’s
(the mean difference divided by the standard deviation of the differences) as the standardized effect size. Both tests are reported throughout because the normality assumption holds for one contrast and is mildly violated for the other: Shapiro–Wilk gives
,
for the A1 − A2 written difference and
,
for A1 − A2 laboratory. The two procedures agree on every contrast reported.
The laboratory and written correlations are computed on four distinct variables measured on the same students, so they are dependent and non-overlapping, and Fisher’s
z for independent samples does not apply. The analytic procedures for this design (
Dunn & Clark, 1969;
Pearson & Filon, 1898;
Raghunathan et al., 1996) assume multivariate normality, which these variables do not satisfy: all four depart from normality (Shapiro–Wilk
p between
and
) and the laboratory score is a 0–10 integer scale taking eleven distinct values. The comparison therefore uses a nonparametric bootstrap over students (50,000 resamples) (
Efron & Tibshirani, 1993), reporting the percentile confidence interval for the difference between correlations and a two-sided bootstrap
p-value; a permutation test exchanging the two component pairs within student is reported as a check, and the analytic values are given alongside. Bootstrap and jackknife standard errors agree with each other and exceed the normal-theory value, which is why the resampling result is the one reported.
RQ1–RQ4 constitute the confirmatory family and are reported without adjustment; every analysis from the symmetric-tertile split onward, including the floor-aware banding, its sensitivity contrasts and the continuous alternative, is exploratory and is reported as such, without adjustment and without confirmatory claims. Fifteen inferential tests are reported in total. A Holm–Bonferroni adjustment within the confirmatory family leaves every confirmatory conclusion unchanged, the largest confirmatory p value being .
For the tertile analyses reported in
Section 5.4, students were split into lower, middle, and upper thirds of actual performance within each assessment, and mean signed and absolute error were compared across tertiles. To avoid placing weight on arbitrary cut points (
Gignac & Zajenkowski, 2020), the Spearman correlation between actual performance and signed error is reported alongside the tertile summary, so that the continuous pattern can be inspected directly. The floor-aware banding of the laboratory postdiction reported in
Section 5.5 groups students by raw laboratory score into an administrative floor band (0–1 points), a low band (2–3), and a high band (7–10). The floor band is set aside because one laboratory point was awarded to every student who attended, so that segment of the scale cannot index low-performance metacognition. The cut points were chosen after the laboratory distribution had been inspected; the analysis is therefore exploratory throughout, and its sensitivity to the choice of cut points is reported alongside a continuous alternative.
Sensitivity checks included exclusion of extreme outliers (signed errors exceeding SD) and a descriptive comparison of linked and unlinked students. Because participation in each assessment depended on attendance, students simply did or did not attend the quiz and the exam; the linked/unlinked split reflects routine attendance variation rather than systematic selection, and is reported as context rather than as a bias correction.