WMT/ MATURAHACKATHON · PARTICIPANT GUIDEGet the mock exam ↗

GET READY

Matura testing process

This page describes the testing and submission process. You receive an exam package with a ready-made answer template. Fill it with your model’s answers, then submit the completed answers.json.

  1. Download the exam package.It includes the questions, separate PNG image files (.png), and answers-template.json.
  2. Fill the included answer template.Every question ID is already there. Replace the empty answer strings with your model’s answers. Save as answers.json.
  3. Submit only answers.json.Open the submission page and enter your team code there.

This page explains the format. The mock below lets you try it before the final exam.

FILES

Download the exam package

MOCK · v1

The mock package contains the full May 2023 history Matura: 37 items, 60 points. Question text is in exam.json. Images are separate PNG files (.png) in the images/ folder. Send both the text and the linked image files to your model. No PDF extraction is needed.

  • exam.json — questions and source text.
  • images/ — 19 separate PNG image files (.png), linked from the questions.
  • answers-template.json — your answer sheet, with all question IDs already filled in and blank spaces for answers.
  • README.md — the instructions.

Unzip the package and keep exam.json next to the images folder.

Preparing download…

You do not need to create the answer file from scratch. The template comes with the exam; it contains blank answer fields, not suggested solutions.

OUTPUT CONTRACT

Fill the answer template

Open answers-template.json from the package. Keep exam_id and every id unchanged. Fill only the answer values. Save the completed file as answers.json.

{
  "exam_id": "history-2023-mock-v1",
  "answers": [
    {"id": "1", "answer": "Rozstrzygnięcie: … Uzasadnienie: …"},
    {"id": "2.1", "answer": "…"}
  ]
}

Shortened example with placeholders. Your included template already has all 37 entries.

  • Write each answer as text, in Polish. Include any justification requested by the question. Follow its answer_format.
  • Keep every question. If your model cannot answer, leave "answer": "". Do not remove the entry.
  • Put the full essay in answer "26". Include the chosen topic number and at least 300 words.
  • Submit answers only. Leave out chat logs and internal reasoning traces. Enter your team code and solution name on the submission page.
Exact file rules and limits
  • Keep all 37 IDs exactly once, as strings. Order does not matter.
  • Every answer must be a string, including choices and true/false answers. Do not use numbers, arrays, or null.
  • Top level: only exam_id and answers. Each entry: only id and answer.
  • Use UTF-8 JSON, at most 1 MiB. Each answer allows up to 100,000 characters.
  • Encode line breaks as \n. A JSON library handles quotes and escaping.
  • The values shown in answer_format illustrate syntax; they are not solutions.

LIVE FILE VIEW

Explore the actual exam

These are the exact values from the downloadable file. Choose an item to see its text, images, and JSON.

Loading the mock exam…

INPUT CONTRACT

Exam JSON reference

Fields, image paths, and checksums

Your harness is the code that sends inputs to your model and collects its answers. It can run on a laptop, AWS, Modal, or any other environment.

Exam-level fields

FieldTypeMeaning
exam_idstringhistory-2023-mock-v1. Copy it into the answer file unchanged.
title, languagestringThe paper title and pl for Polish.
source_exam_id, source_urlstringOriginal CKE paper identifier and PDF source, for reference.
input_formatstringseparate-text-and-images-v1.
max_pointsnumber60 points for the full paper.
instructionsstringInstructions that apply to every question.
itemsarrayAll 37 scored items, including subquestions and the essay.

Each object inside items

FieldTypeHow to use it
idstringQuestion ID, e.g. "2.1". Preserve it exactly.
groupnumberOriginal question number, e.g. 2 for items 2.1 and 2.2.
max_pointsnumberThe maximum score for this item.
questionstringThe task. Send the complete text to your model.
source_textstringSupporting passages, citations, and tables. Send these too.
imagesarrayEvery linked image is part of the input. An empty array means no image for this item.
answer_formatstringRequired answer syntax. Examples show formatting, not the solution.

Images are separate PNG files (.png)

{
  "path": "images/Z01.png",
  "source_page": 4,
  "sha256": "…"
}

Resolve path relative to the folder containing exam.json. Load that PNG and send its image content to your model. Sending only the filename does not supply the image.

source_page identifies the original PDF page. sha256 lets you verify the downloaded image bytes. Related questions can share the same image. Maps, diagrams, and labels remain in the PNGs; written sources have text transcriptions where supplied. No PDF extraction is required.

HAND IN

Format feedback, then grading

At the submission link, choose the exam, enter your team code and solution name, and upload your completed answers.json.

Feedback on your file format

We will check that your answers follow the required JSON format and give you feedback. The checks cover the exam ID, required question IDs, duplicates, answer types, and file size. If something is wrong, the feedback will tell you what to fix. Blank answers are allowed.

After a successful submission, keep your receipt. Format checks confirm that we can read your file; correctness is checked during grading.

LLM grading: roughly every 30 minutes

We aim to grade newly submitted answers with LLMs every 30 minutes. Results will be available after each batch finishes.

This schedule may change. If API credits run out, we may switch to grading locally through our subscriptions, so results could take longer.

NOT RELEASED

Final exam

The final exam will have its own download and exam_id. Use its own template when it is released. The mock ID is only for this practice paper.