National Cheng Kung UniversityLAiMM Laboratory

W17 / 2026-12-28 / 40 MIN / ENGLISH

Package evidence and defend its scope

Classroom formative practice. This does not add a weekly graded assignment. The exercise time is included in class practice, not added after the three-hour meeting.

Before you start

  1. Use a CPU runtime. Save a personal copy or open the downloaded notebook in Jupyter.
  2. Run the included complete walkthrough first. Read its setup, definitions, and checkpoints.
  3. Predict before running each exercise cell; then change only the requested factor.
  4. Keep your actual outputs, configuration, explanation, and limitation. Free tools are sufficient.

TASK 1 / PREDICT - RUN - EXPLAIN

Preserve bytes and interpretation

Hash the saved bytes of a tiny array, restore it, and keep a schema. Explain why a hash alone is not enough to interpret an artifact.

  1. Write your prediction in the notebook response field before running.
  2. Run the starter cell below after the worked walkthrough.
  3. Make the requested controlled change and record the configuration.
  4. Explain the mechanism using the actual output, not an invented result.
import io
buffer_ex=io.BytesIO(); np.save(buffer_ex,np.array([1.,2.,3.]))
payload_ex=buffer_ex.getvalue(); restored_ex=np.load(io.BytesIO(payload_ex))
observations['task1']={'sha256':hashlib.sha256(payload_ex).hexdigest(),'restored_values':restored_ex.tolist(),'schema':{'quantity':'synthetic reading','unit':'synthetic units','shape':[3]}}
print(observations['task1'])

Self-check: The restored values are [1,2,3]. Interpretation requires quantities, units, shape, and a declared source in addition to byte identity.

TASK 2 / PREDICT - RUN - EXPLAIN

Distinguish sample and population claims

Generate a finite sample from a zero-mean process. Change the seed and explain why the observed sample mean need not be exactly zero.

  1. Write your prediction in the notebook response field before running.
  2. Run the starter cell below after the worked walkthrough.
  3. Make the requested controlled change and record the configuration.
  4. Explain the mechanism using the actual output, not an invented result.
sample_ex=np.random.default_rng(2026).normal(size=100)
observations['task2']={'seed':2026,'sample_size':len(sample_ex),'observed_mean':float(sample_ex.mean()),'population_expectation':0.}
print(observations['task2'])

Self-check: Report the observed sample mean. Do not replace an observed result with the population expectation.

TASK 3 / PREDICT - RUN - EXPLAIN

Run a peer explain-back

Give a partner your data/configuration record and ask them what is missing. Write one falsifiable claim and one limitation in the response cell.

  1. Write your prediction in the notebook response field before running.
  2. Run the starter cell below after the worked walkthrough.
  3. Make the requested controlled change and record the configuration.
  4. Explain the mechanism using the actual output, not an invented result.
observations['task3']={'peer_questions':['What exactly is the claim?','Which artifact supports it?','What result would contradict it?','Which AI assistance was used and checked?']}
print(observations['task3'])

Self-check: Use your project artifacts rather than treating this toy record as proof that the final project is reproducible.

Completion checklist

The notebook marks incomplete response records as drafts. Completing the fields is not proof that an explanation is correct.

The guided walkthroughs were previously executed. The new exercise extension cells have not yet been execution-tested for this revision. Agent exercises are deterministic simulations; no paid model or consequential external action is used.