Notebooks and labs

Notebooks and labs inside your lessons

Put a Python notebook in any lesson and learners run it in their own browser, with numpy, pandas and matplotlib and nothing to install. When a course needs more, a lab gives each learner JupyterLab with a terminal and your starter files, sealed off from the internet.

Last checked

Notebooks: Python in the browser

  • Code cells and markdown cells, in a lesson block. Learners run cells, see printed output, tables and charts, and restart when they need a clean start.
  • Each learner works in their own copy, saved a few seconds after each change. Reset brings back your original.
  • Upload an .ipynb file or start blank; learners can download theirs.
  • Graded notebooks: a Python coding question can be answered in a notebook, then graded against your tests like any other answer. See coding assessment.

The code runs on the learner's computer, in a sandbox on a separate domain of ours, so a notebook cannot reach their account or anyone else's.

Labs: a full environment for each learner

  • JupyterLab with a terminal

    Each learner gets their own JupyterLab: notebooks, an editor, files and a Linux terminal, opened from the lesson with no sign-in of its own.

  • Python, Node.js, Java and C

    Built on Jupyter's scientific Python image, with Node.js, Java and a C and C++ compiler added.

  • Your starter files

    Add a zip or up to 20 files to the lab block. Each learner gets their own copy the first time they open it.

  • Work that stays

    A learner's files are kept between sessions, in a folder of their own with its own space limit.

  • Sealed off

    Each lab runs in its own gVisor sandbox with no internet access, a read-only system, one processor, 2 GB of memory and 2 GB of files.

  • Stops when idle

    A lab stops after 20 minutes without use, or after 8 hours, and opens again where the learner left off.

Which one should a lesson use?

  • A notebook for data work and worked examples in Python: it opens instantly and scales to any class size, because it runs in the browser.
  • A lab when learners need a terminal, several files, Java or Node.js, or to build and run a small project.
  • A code block for a short snippet to run and change in eight languages, and a coding question when the answer should be graded.

Questions and answers

Do notebooks need a server or an install?

No. The Python in a notebook runs in the learner’s own browser, using Pyodide (Python 3.14 compiled for the web), so nothing is installed and nobody waits for a server.

Which Python packages can a notebook use?

numpy, pandas, matplotlib, scipy and scikit-learn, with what they depend on. Shell commands and notebook magics are skipped, and input() is not available.

Can we use our existing Jupyter notebooks?

Yes. Staff upload an .ipynb file to a lesson, or start a blank notebook. Outputs are not kept; learners run the cells themselves.

Can a lab reach the internet, for pip install or GitHub?

No. Labs have no internet access, which keeps learners’ work and our servers safe. Put the packages and files a lab needs in its starter files, or ask us about adding them to the lab image.

How many learners can use labs at once?

Labs are new, and their capacity is shared across our customers while we grow it. Before a class opens labs together, tell us the date and the number of learners so we can make room.

Do notebooks and labs cost extra?

No. Both are in every price band. An admin turns labs on in Settings; notebooks need nothing turned on.

Try it with your next cohort

Start a 30-day free trial with up to 10 learners and no card, or tell us what you teach and we will show you The Skill Site with your own exercise.