Viva

Lab 02 Monday brief 01

Open student defense

Assessment dossier / Maximum between 3 Numbers

Record 026

A final grade is an answer. Viva asks for the reasoning.

91 perfect
programs broke.

Across 3 exercises and 626 submissions that received full marks, GPT-5.6 proposed inputs the tests never tried, Viva reran each program against the instructor reference, and 91 disagreed. Every one replayed.

See the evidence
01What the original grade could not seeExecutable evidence only

The evidence trail

The test suite passed.
The program still failed.

Viva only opens a defense after the submitted program and the instructor's reference disagree on one re-runnable input.

Instructor test ledgerresult
01ex01_01 2 3 3Pass
02ex01_16 2 1 6Pass
03ex01_2-1 3 1 3Pass
04Viva probe5 5 3 expected 5Diverges

One finding, all the way through

Not a prediction.
A replay.

The question comes after the run, not before it. That keeps the conversation about a precise piece of student reasoning.

01 / run

Student program

35 5 3
02 / compare

Reference program

55 5 3
03 / ask

Oral defense

?Explain the branch
02Monday morning, already mappedOne lesson, one gap
Class signal

Where full marks
hid a gap.

The misconceptions that survived the test suite, ranked by how many full-mark students they caught. The next lesson has somewhere exact to begin.

01

equal values / ties

83 / 626
02

sign handling

9 / 626
03

zero boundary

7 / 626
20 minute reteach
  1. Ask for the maximum of 5, 5, 3. Then replay an anonymized submission that produced 3.

  2. Trace both strict comparisons together. Name the final else branch and why it runs.

  3. Repair with a running maximum. Test all three tie positions before rerunning the original suite.

Built from the observed failure, not a generic concept tag.

Anonymized evidence / line 11

The question is not
“did you cheat?”

Viva records one bounded fact, then gives the student room to explain it. The artifact is not the verdict. Understanding is.

ex01-stu_002.cverified run
07if (a > b && a > c)
08 printf("%d\n", a);
09else if (b > a && b > c)
10 printf("%d\n", b);
11elsebranch reached on tie
12 printf("%d\n", c);