> For the complete documentation index, see [llms.txt](https://docs.getkita.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.getkita.org/set-up-your-lesson/create-a-code-submission.md).

# Create a code submission

An assessed activity turns part of a lesson into something students formally submit. Until a lesson has one, students can write and run code but there is nothing to hand in and nothing to mark.

Creating one sets the due date, the files you expect, and whether tests must run before students can submit. It takes about five minutes.

### Prerequisites

Before you start, make sure:

* You have a course with at least one lesson in it.
* Your class group is enrolled on that course. See Enrol your class and share the group code.
* You know your success criteria or learning objectives for the task.
* If you are scoring the work, your criteria, levels and total mark are decided. See Build a rubric.

### Add the activity to a lesson

{% stepper %}
{% step %}
Open the course you want, then open the lesson the activity belongs to.
{% endstep %}

{% step %}
Click **Edit instructions** to open the lesson editor.
{% endstep %}

{% step %}
Scroll to where the activity should appear and place your cursor there. In a Time2Code lesson the **Evaluate** section works well, just after the expected outputs, because students have already seen what their program should do.
{% endstep %}

{% step %}
Click **+ Add assessment** in the tool palette, then select **Assessed Activity**.
{% endstep %}

{% step %}
Check the title and description. Both are taken from the lesson and often need no change. Add your success criteria or learning objectives here, and use the text editing tools to format them.
{% endstep %}
{% endstepper %}

### Set a due date

{% stepper %}
{% step %}
Turn on **Show Due Date to Students**, then click the date field and choose a date from the calendar.
{% endstep %}

{% step %}
Set the time, and check whether it reads AM or PM before moving on. Students see the due date written out in full — *Friday, 19 June 2026, 2:00 pm* — so a time set to AM instead of PM is visible to the whole class.
{% endstep %}
{% endstepper %}

### Set submission requirements

{% stepper %}
{% step %}
Under **Expected filenames**, enter the files you expect students to submit. `main.py` is typical for Time2Code, and you can list more than one.
{% endstep %}

{% step %}
Set your input/output test requirements: how many tests there are, and whether students must **run** them or **pass** them before they can submit. Requiring tests to run, rather than pass, lets students submit work in progress while still checking it against your expected output.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Filenames are a guide, not a gate.** Work submitted under a different filename is still accepted. If a student submits the wrong file they can submit a replacement themselves, and you can unsubmit to return one to them.
{% endhint %}

### Add a rubric

Rubrics are optional, and can be added later. An activity without one still accepts submissions and takes written feedback.

If you are putting a score on this activity, set it up now:

### Publish and check

{% stepper %}
{% step %}
Select **Publish** to make the activity available to students now, or **Save as draft** to finish it later.
{% endstep %}

{% step %}
Click **Save** to save your changes in the lesson editor. This is separate from publishing the activity — the activity is not live until both are done.
{% endstep %}

{% step %}
Go to the **Evaluate** section of the lesson to see the activity as your students will see it. Click **Edit assessment** at any time to return to the settings.
{% endstep %}
{% endstepper %}

### Check that it worked

Open the lesson and look at the **Instructions** pane, which is where students meet the activity. A published activity shows:

* Its title, marked **Published** with a **Teacher assessed** badge
* Your description and success criteria
* **Activity due date** in full — for example, *Friday, 19 June 2026, 2:00 pm*
* **Maximum points**, if you set a score

If it shows **Draft** instead of **Published**, students cannot see it yet.

Once students submit, their work arrives in **Marking**, already attached to this activity and ready to score.

### Troubleshooting

{% tabs %}
{% tab title="I cannot find + Add assessment" %}
The tool palette only appears in the lesson editor. Open the lesson and click **Edit instructions** first.
{% endtab %}

{% tab title="My students cannot see the activity" %}
Open the lesson and check the badge on the activity. If it reads **Draft** rather than **Published**, students cannot see it.

If it reads **Published** and they still cannot, check that you clicked **Save** in the lesson editor after publishing. Both are needed.
{% endtab %}

{% tab title="The due date is twelve hours out" %}
Check AM against PM on the due time. A date set correctly with the wrong half of the day is the most common cause.
{% endtab %}

{% tab title="A student submitted the wrong file" %}
The submission is still accepted — expected filenames do not block it. Students can submit a replacement themselves, or you can return the work. See Unsubmit a student's work.
{% endtab %}
{% endtabs %}

### Need help?

If the activity is published and saved but still does not appear for students, email <hello@getkita.com> with the course, the lesson, and the class group you expected to see it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.getkita.org/set-up-your-lesson/create-a-code-submission.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
