Sign in to CodeBoard
Open the CodeBoard address provided by your school, training center, or course administrator. Sign in with your teacher email and password.
Practical documentation for running programming lessons: lesson rooms, several students in one room, editing access, files, materials, Python execution, Turtle, templates, snapshots, and common issues.
Use this walkthrough for the first class, from teacher sign-in to a saved lesson snapshot.
Open the CodeBoard address provided by your school, training center, or course administrator. Sign in with your teacher email and password.
Open “Rooms”, enter the lesson name, and create a basic room. If you leave the name blank, CodeBoard will pick a neutral-funny title automatically. If you need starter code, open “Templates” and create the room from a template.
In the room, open “Task”. If needed, click “Edit”, update the title and instructions, then save.
Click “Copy invitation” in the room top bar and send the link to your students. The same link can be used by the whole group.
Open “Students”, choose the active student, and grant editing access. The student writes code and clicks “Run”; the result appears in “Output” or “Turtle”.
When the solution is ready, click “Snapshot” in the top bar. CodeBoard saves the task, code, output, and Turtle result for later review.
Teachers work from teacher accounts. Students usually join a specific room through an invitation link.
Use the main CodeBoard URL provided by your organization. If you do not know it, ask the course administrator or internal support.
Ask the administrator or course coordinator for a teacher invitation or a pre-created account. You cannot sign in as a teacher without one.
The top panel lets you switch the language and the “Dark / Light” theme. Theme preference is saved in the browser.
| Role / mode | Available actions | Unavailable actions |
|---|---|---|
| Teacher | Create rooms, edit tasks, write code, draw annotations, run Python, upload files and materials, create snapshots, copy invitations, rename students, and manage editing access. | Cannot sign in without a teacher account or invitation. |
| Student with editing access | Edit code, view task and materials, run Python, provide input(), and view Output or Turtle. | Cannot upload files or materials, change the task, create snapshots, or manage participants. |
| Read-only student | View code, task, materials, output, Turtle, annotations, and current room state. | Cannot edit code, draw annotations, run the program, or upload files. |
| Tab | Where to click | What is inside | When to use it |
|---|---|---|---|
Rooms | Click “Rooms”, then “Create room” or an existing room row. | Lesson list, search, status filter, open room, multi-select, and delete one or several rooms. | Start a lesson, return to a previous class, or clean up the room list. |
Templates | Click “Templates”, then choose a task family, difficulty, and format. | Template library with starter code and task text. | Create a room quickly from a prepared lesson scenario. |
Account | Click “Account”. | User details, password change, and sign-out. | Change password or finish work on a shared computer. |
Templates help prepare a room with task text, starter code, difficulty, and lesson format.
| Action | Where to click | Important details |
|---|---|---|
| Browse the library | Workspace → “Templates”. | Templates are grouped by families. You can search by title, key, description, and task text. |
| Filter tasks | Use difficulty and format filters. | Difficulty: introductory, basic, advanced. Format: teacher-led lesson or independent practice. |
| Preview contents | Click a template card. | The side panel shows task text, family, difficulty, format, and starter code. |
| Create a lesson from a template | Enter the lesson name and click “Create from template”. | The room receives the selected task and starter code. You can edit both inside the room. |
In the teacher workspace, click “Rooms”. Enter a lesson name, for example “Grade 8 — Loops”, or leave it blank for an automatic title.
Use “Rooms” for a basic room. Use “Templates” when you want starter code and task text already filled in.
After creation, click “Open”. Inside the room you can update the task, upload files, create snapshots, and copy the student invitation link.
A room combines the code editor, lesson top bar, run controls, and the right panel with lesson tabs.
1 name = input("Student name: ")
2 print(f"Hello, {name}!")
3 for number in range(1, 4):
4 print("Step", number)
Open instructions, add materials, upload working files, view output, inspect Turtle graphics, create snapshots, and manage student access.
| Feature | Where it is | How it works |
|---|---|---|
| Code mode | Above the editor, “Code / Annotations”. | Normal Python editing. If a student does not have editing access, the editor becomes read-only. |
| Annotation mode | Above the editor, “Annotations”. | Draw visual marks over the code while explaining. Tools include marker, line, arrow, three colors, undo, and clear. Annotations synchronize and persist in the room; read-only students can see them but cannot draw. |
| Run | “Run” button above the editor. | Runs the current code in the browser Python runtime. CodeBoard opens “Output” or “Turtle” depending on the result. |
| Reset runtime | “Reset” next to Run. | Restarts Python runtime if it hangs, keeps old state between runs, or runs out of memory. |
| Access indicator | Above the editor. | Shows whether the current user can edit. A read-only student cannot run code either. |
| Tab | How to open it | What you can do |
|---|---|---|
Task | Click “Task” in the right panel. | View task text, edit title and instructions, and save the update for all participants. Editing the task does not delete code. |
Materials | Click “Materials”. | Upload PDF or images, choose a material, preview it, paste/drag a file, or delete a material. |
Snapshots | Click “Snapshots”. | View snapshot history, delete snapshots, copy notes, copy the PDF-summary prompt, download markdown, or print results. |
Files | Click “Files”. | Import working files for code, save current code as a file, download or delete files. You can drag, paste, or select files. |
Output | Opens after Run or manually. | View stdout, errors, input prompts, duration, and approximate resource metrics. |
Turtle | Open “Turtle” or run code with Turtle commands. | View browser-rendered Turtle graphics. |
Students | Click “Students”. | See participants, online/editing status, rename students, copy invitation, grant or revoke editing access. |
CodeBoard has two different upload types: working files for code and lesson materials for viewing.
| Type | Where to upload | Supported formats | Limits and behavior |
|---|---|---|---|
| Working files | Room → “Files” → “Upload files”, drag-and-drop, or paste. | .py, .txt, .csv, .json | Up to 20 MB per file and 20 MB total. A .py file becomes main.py; uploading a Python file replaces the current code. Text, CSV, and JSON files are available to the program in the working directory. |
| Lesson materials | Room → “Materials” → “Upload” or drag-and-drop. | .pdf, .png, .jpg, .jpeg, .webp, .gif | Up to 20 MB per material. PDFs and images are available for viewing. Students cannot upload or delete materials. |
.py file replaces the current editor code in main.py. If you need to keep the current version, create a snapshot or download the code first.Click “Copy invitation” in the room top bar or open “Students” and copy it there. Send the link to the class.
If required, the student enters a name. After joining, the student appears in the “Students” tab.
Use “Students” to see all participants. For each student, grant or revoke editing access and rename them if needed.
Python runs in the browser through a WebAssembly runtime. This covers standard learning scenarios without local Python installation.
Click “Run”. print() results, the value of the last expression, and errors appear in “Output”.
If the program calls input(), “Output” asks for a line or EOF. One input line can be up to 64 KB.
If the code uses import turtle, graphics appear in “Turtle” after running.
name = input("What is your name? ")
print(f"Hello, {name}!")
for number in range(1, 4):
print("Step", number)import turtle
t = turtle.Turtle()
for _ in range(4):
t.forward(100)
t.right(90)CodeBoard runs Python through Pyodide. Most standard teaching tasks work, but browser runtime has limits.
| Capability | How to use it | Limits |
|---|---|---|
| Standard modules | Use regular imports such as import math, import random, or import json. | Modules that depend on the local operating system, sockets, GUI, or system files may not work in the browser. |
| Pyodide packages | Add an import. The runtime tries to load available Pyodide packages automatically from imports. | Only packages available in Pyodide and usable in the browser can work. If a package is unavailable, the error appears in “Output”. |
| Your own files | Upload .py, .txt, .csv, or .json in “Files”. | Before execution, runtime writes working files to the current directory. Old files, except main.py, are cleared and replaced by the room file list. |
| pip installation | There is no separate package installation button in the interface. | If a lesson needs a non-standard library, test it in CodeBoard first. For unsupported packages, prepare an alternative task or request support for the library. |
| Turtle | Use import turtle and basic movement, color, width, circle, dot, and fill commands. | This is browser compatibility for teaching graphics, not the full desktop Turtle window. Keyboard/mouse handlers and dialogs may be stubbed. |
A snapshot saves the task, code, output, Turtle commands, and timestamp. Use snapshots to preserve intermediate solutions, final results, or homework context.
Go to “Snapshots” in the right panel.
Click “Snapshot” in the top bar when the code and output should be saved.
“Snapshot and next” saves the current state and opens task editing for the next step. In “Snapshots”, you can copy notes, copy the PDF-summary prompt, download markdown, or print results.
No. Basic Python runs directly in the browser. Students need a modern browser and stable internet.
Working files and lesson materials can be uploaded by the teacher. Students work with files prepared by the teacher.
Yes. Send the same invitation link to several students. The “Students” tab shows the participant list and lets you manage editing access.
Yes. Open “Students”, revoke access for students who should only watch, and grant access to the student who should edit.
Yes. Upload a .py file in “Files”. It becomes the current main.py and replaces the code already open in the editor. Create a snapshot or download the file first if you need to keep the current version.
Write a normal import. Standard modules work normally; available Pyodide packages are loaded automatically when possible. If the package is unavailable, the error appears in “Output”.
Standard teaching modules such as math, random, json, and statistics are usually suitable. Libraries with system dependencies, GUI, networking, local processes, or unsupported binary extensions should be checked in the official Packages built in Pyodide list and with a test run in the room.
The runtime may keep state between runs. Click “Reset” to restart Python runtime and clear accumulated state.
| Situation | What to check | What to send support |
|---|---|---|
| Code does not run | Open “Output”, read the error, check syntax, imports, and working files. | Room link, error text from “Output”, and code sample. |
| File does not upload | Check extension, size up to 20 MB, and that the teacher is uploading. | File name, size, extension, and whether you used “Files” or “Materials”. |
| Student does not see updates | Ask the student to refresh, check internet, open the correct room link, and check status in “Students”. | Time of the issue, student name in the room, and room link. |
| Module does not import | Check that it is a standard module or an available Pyodide package. For local files, check that the file is uploaded in “Files”. | Module name, import error, code with import, and room link. |
| Student cannot edit | Open “Students” and check whether that student has editing access. If not, click “Grant access”. | Student name, screenshot of “Students”, and room link. |
| Turtle is empty | Make sure the code actually runs Turtle commands after import turtle. | Program code and screenshot of “Turtle”. |
| Minimum support request template | Attach |
|---|---|
Subject: Room link: Who has the issue: What was clicked: Expected result: Actual result: Error text: | Screenshot, error text from “Output”, student name, file name and size, browser, and approximate time of the issue. |