# Best practice: Structuring your course

A course in Nuvolos is a [space](/features/nuvolos-basic-concepts/organisational-hierarchy.md#spaces) consisting of multiple [instances](/features/nuvolos-basic-concepts/organisational-hierarchy.md#instances). As the [space administrator](/administration/roles.md), you control how many instances exist and which students can access each one. The way you lay out instances determines how material flows between instructors and students, and how much isolation each participant has.

## Suggested layout

The recommended setup for most courses:

* **Master instance** — the single place where all instructors (professors and teaching assistants) develop, edit, and maintain teaching material. When material is ready, instructors [distribute](/features/object-distribution.md) it from here to students. The professor and designated TAs have the [space administrator](/administration/roles.md) role, giving them full control over the space.
* **Distributed instance** — a special read-only instance that accumulates everything that has been distributed. New student instances are spawned from it, so late joiners automatically receive all previously distributed material. See [The Distributed instance](/features/object-distribution/the-distributed-instance.md) for details.
* **One instance per student** — each student works in their own isolated instance. They have the [editor](/administration/roles.md) role there, so they can modify files and run applications without affecting anyone else. Students also automatically receive [viewer](/administration/roles.md) access on the Distributed instance, which lets them pull material into their own instance if needed.
* **Group work** — kept in a [separate space](/user-guides/education-guides/setting-up-group-projects.md) with shared instances, so group and individual material never mix.

This layout keeps material development centralised, gives each student an isolated working environment, and makes the distribution flow straightforward: Master → Distributed instance → student instances.

## Alternate layout

Other layouts are possible. A common variant:

* **Separate instructor instances** — some or all instructors work in their own instances rather than sharing the Master. This is useful when multiple instructors develop material in parallel and want to avoid editing the same files simultaneously. The professor and TAs still have the [space administrator](/administration/roles.md) role but agree to develop material in separate instances and only distribute to the Master (or directly to students) when their work is ready.
* **Student instances** — same as the suggested layout (one instance per student with editor access).

{% hint style="warning" %}
This layout avoids file-editing collisions in the Master instance. However, distributions become more complex: when multiple instructors distribute to the same target, they may overwrite each other's work. Clear agreements about who distributes what and when are essential.
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://docs.nuvolos.com/getting-started/instructors/best-practice-structuring-your-course.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
