Materials are added by importing a materials repository on GitHub into Exercode.
main).Material Repositories screen in Exercode using the GitHub App.Material Repositories.Add from my GitHub.Material Repositories screen in Exercode, where the added repository will be displayed.The repositories displayed are those that the GitHub App can read, on which you have write permission (Write or higher) on GitHub, and that contain course.yaml (or course.yml). If you add course.yaml later, or add or change the repositories the GitHub App can read later, press Sync with my GitHub to reflect the changes.
If the GitHub App is already installed on the organization hosting the materials repository, you do not need to reinstall it. Pressing Sync with my GitHub adds, as your materials repositories, those repositories on which you have write permission (Write or higher) on GitHub and that have not yet been added to Exercode. Materials repositories already added by someone else will not appear on your Material Repositories screen even after syncing. If that repository is registered with an organization, the organization administrators of that organization can handle it.
If a person who is not an owner of the organization requests installation of the GitHub App, returning to Exercode will show that it is awaiting approval. After the owner approves it on GitHub, press Sync with my GitHub.
Press Register with organization on the materials repository card, then select the organization to register with.
Register with organization only if you are the organization administrator of the target organization and you were the first person to add the materials repository to Exercode. Even a member of the materials repository cannot register a materials repository added by someone else. A materials repository first added by an instructor who is not an organization administrator cannot be registered with an organization.For details, see Sync and Import Materials Repositories.
main).Examples:
java-basic-schoola-2026python-intro-collegeb-2026AI Chat and Hints are enabled by default. You can change them with the following parameters in the materials repository's course.yaml (whole course) or in the leading parameters of each material (per material). If both are set, the material setting takes priority.
| Parameter | Description |
|---|---|
isMaterialChatDisabled | Set to true to disable AI Chat for students |
isDebugHintDisabled | Set to true to disable the "error location" hint |
isFixHintDisabled | Set to true to disable "additional hints" |
isDiffHintDisabled | Set to true to hide "explanation of the corrected code" in additional hints |
debugHintWaitingSeconds | Seconds after opening a problem before the "error location" hint becomes available (default 180) |
fixHintWaitingSeconds | Seconds after opening a problem before "additional hints" become available (default 300) |
For examination-mode materials (isExamination), students cannot use AI Chat on the material screen and problem screen regardless of the submission period, and the content cannot be referenced from AI Chat on other screens. The material name and the reason it cannot be referenced can be checked. Anyone with instructor permission for the course can use AI Chat even on restricted materials (Asking Questions with AI Chat). Hints are not displayed during the examination period. For how to write the parameters, see the sample materials repository description. That same description lists other settings, such as showing the model answer after the deadline (isModelAnswerShownAfterDeadline), code readability review and leaderboard (isVotable; results are finalized at the material's soft deadline, or the hard deadline if there is none, and it is disabled for materials without a deadline or that hide grading results), hiding grading results (isProblemGradingResultHidden), and prohibiting copy and paste (isCopyAndPasteDisabled).
If you place a PDF file with the same name as a Markdown material file in the lecture folder (e.g., 01_slides.md and 01_slides.pdf), the PDF is displayed above the body on the material screen and can also be downloaded. The material name and settings are written in the leading parameters of the Markdown material file. In mock examination mode, the PDF is displayed on the problem list and on each problem's screen.
AI Chat does not read PDFs; it references the body of the Markdown material file. If you want content, such as slide scripts, to be given only to AI Chat, write it after the <!-- chat --> line in the body so it is not displayed on the student's material screen.
---
name: Lecture 1 Slides
---
<!-- chat -->
(Slide script)
A PDF without a Markdown material file of the same name is not imported. If you delete a PDF and import again, the PDF is also removed from the material screen.
The course ID (folder name), lecture ID (folder name), material ID (file name), and problem ID are the keys that link materials to data in Exercode. If you change these IDs and import, the items with the old IDs are deleted, and the items with the new IDs are treated as newly added.
For this reason, do not change IDs after operation has started (after students have begun submitting). If your purpose is only to change the order, use the following methods without changing IDs.
lectures array in course.yaml (no folder rename needed).10_ and 20_ from the start, you can insert new materials in between without renaming existing files.In the confirmation dialog before importing, in addition to the items to be deleted, the number of submission records to be deleted is always displayed. Courses whose validity period has ended are neither updated nor deleted, and their names are shown in the confirmation dialog (Course Validity Period).
If the deletion of submission records is unintended, cancel the import and restore the material repository's IDs to their previous state.
Material Repositories.Import for the target repository.Import.Imports may fail for reasons such as:
Check the error message, fix the materials repository contents, commit them to the default branch, and import again.