Frequently Asked Questions

Below is a collection of the most frequent questions about Noteable, which can hopefully solve your query.

Noteable FAQs

'Notebook' seems to mean many things, why? In Noteable, the word notebook can refer to either a notebook server (the environment with pre-installed libraries and tools) or a notebook document (the file you open, usually a .ipynb or .qmd). In some technical contexts you may also see older Jupyter terms such as notebook app or dashboard. See What is a computational notebook below.
Which programming languages are supported on Noteable?

Noteable currently supports Python 3 and R. We have experience with notebooks using Haskell, Julia, and Stata kernels. Talk to us about other languages.

Can I share notebook documents/files with other users?

Notebook servers have git tools installed. See How can I use Git in Noteable? for details.

You can download and upload files using the Download and Upload functions in the Jupyter classic, JupyterLab and RStudio interfaces.

An option for management of files and data is the shared course folder. This folder is unique to each course and grants instructors read-write access while students have read-only access.

Instructors can continuously add, update, or remove files (e.g., lecture materials, examples, tests) without worrying about student edits. The folder is automatically titled shared-data-<course-code>.

Most notebook servers have an extension called “nbgrader”. This allows instructors to make assignments available for courses.

How can I use Git in Noteable?

Git is a "Version Control System", which allows people to save [and to share] snapshots of a set of files.

In Noteable, you can use Git with the standard command-line tool in a terminal, or through one of the graphical interfaces [which will vary depending on the notebook server that you are using]

Command Line Tools

To use the command-line tools, you will need to start a Terminal:

  • In RStudio, there is a tab for this - by default this is in the left-hand pane, with Console and Jobs
  • In the notebook servers that use the JupyterLab interface, there is a button for this in the Other section of the Launcher

Once one has a Terminal open in Noteable, then the standard git clone ..., git checkout ..., etc will all work.

There is extensive external documentation about Git on the internet.

Graphical tools

The graphical tools for Git vary, depending on the notebook server's interface:

  • In RStudio, under File -> New Project -> Version Control -> Git -> provide details
    • This is a fairly simplistic cloning tool, so you will need to specify user credentials in the URL if it is a private repo.
    • The tool will only clone or update a repo, you will need to refer to the command-line tools for additional functions.
    • Project directory name allows you to change the name of the directory that the files are cloned into.
    • You must select a value for "Create project as a subdirectory of:".... even if it is just your home directory.
  • In the JupyterLab interface, there is a menu item in the top header for 'Git'
    • This is a fairly simplistic cloning tool, so you will need to specify user credentials in the URL if it is a private repo.
    • The tool provides a range of Git functions: pull, push, merge, etc.
    • The tool clones into the current directory.

+GitRepo*

*This extension is only available in the Jupyter Classic (Legacy) notebook.

  • Git Repository URL : The https URL for repo to clone. e.g. https://github.com/edina/Exemplars2020.git.
  • Branch : Clones the central branch.
  • Username and Password : Some repositories may be private, and require logging into.

Personal Access Tokens

Note that places like GitHub may require Personal Access Tokens rather than simple username and password . This is beyond the purview of this guidance.

Can I collaborate with others in my notebook?

Yes. Collaborating with others on your course is simple. By sharing a link to your notebook document in Noteable, you allow others to follow along and contribute to your code in real time within your running notebook server. Just click the three connected dots in the top right corner of the page to easily share and collaborate.

This feature is fully integrated with the JupyterLab interface. For further details, visit the Collaborative Coding section.

Does Noteable support assignments and grading?

Most notebook servers have an extension called “nbgrader.” This allows instructors to create and distribute assignments for courses.

Noteable uses nbgrader to provide course-specific assignments, grading, and feedback. For more information, see the documentation for Instructor Guide to Assignments, Student Guide to Assignments and tips on writing an assignments.

Grade passback automatically syncs assignment grades from Noteable to your institution’s virtual learning environment (VLE). This means instructors don’t have to manually enter grades in multiple places. It saves time, reduces errors, and ensures students see their grades where they expect them: right in the VLE.

Are there tools to help instructors review submissions and run nbgrader more efficiently?

Yes. Noteable includes Exchange History and Bulk Autograding through the Nbgrader menu.

Exchange History helps instructors review timestamped submissions, check for late or repeated submissions, and download or collect a specific version when needed.

Bulk Autograding runs autograding across collected submissions and reports which ones succeeded or failed, so one broken submission does not stop the whole workflow.

These tools support a simpler nbgrader workflow: check submissions, collect them, run bulk autograding, then investigate any missing or failed cases.

Is Noteable compatible with existing Jupyter notebooks? Yes. Noteable is compatible with existing Jupyter notebook documents, allowing you to upload, edit, and run .ipynb files inside a suitable notebook server.
Can I install my own packages on Noteable?

For most notebook servers

In an early cell in your notebook document, install the package using either of these options:

  • !mamba install -y package-name
  • !pip install package-name

mamba is much slower, but checks version dependencies to ensure there are no problems. pip will just install the library.

For RStudio

Libraries are installed from CRAN - the Comprehensive R Archive Network.

You can either use Install packages in the Tools menu, or use the install.packages(...) from either the console, or via a terminal.

  • From the console, use install.packages('testthat', repo='http://cran.rstudio.com/') to install the library testthat
  • From a terminal, you need to execute R code, so R -e 'install.packages("testthat", repo="http://cran.rstudio.com/")' is needed

Persistence

In all cases - the libraries will not be present when you next start a notebook server.

Can I log into Noteable if I don't have access to an LMS/VLE? No. Authentication is always done by the subscribing organisation (but see Trials below)
Can I clear old assignments from my home directory?

There is no need to delete old assignments in Noteable. All assignment-related files are stored in an external directory and the data stored in that directory does not count toward your personal storage quota.

If you created an assignment with the wrong name or a typo, the simplest approach is to create a new assignment with the correct name and ignore the incorrect one.

Help! I have no disk space left, even though I have deleted some files!

When you delete files in the Jupyter UI, they are moved to your Trash folder, much like on Windows or macOS. To free up disk space, you need to empty that Trash folder.

Graphical tools

The easiest way to do this is through the Noteable interface:

  • In the JupyterLab interface, click the Noteable menu item in the top header
  • Click Clear Trash

Command Line Tools

If needed, you can also clear the Trash from a terminal, but we recommend using Noteable -> Clear Trash as it is much easier.

To use the command-line tools, open a new terminal and run rm -rf ~/.local/share/Trash

 

Noteable High-Level Design Description

How does Noteable connect to my institution's Learning Management System/Virtual Learning Environment?

Noteable creates a trusted relationship with the LMS/VLE, and thus accepts the details of the authenticated user that LMS/VLE sends over that [authenticated] connection.

  • For VLE/LMS systems using LTI: Contact us through the form on the top-right of the website (Contact Us -> Contact Us), and we will send you configuration details that will be specific to your platform.
  • For Scottish schools: Noteable has an agreement in place with the GLOW Digital Learning Platform. Speak to your Local Authority to gain access to Noteable as a free tool in GLOW.

Connections provide Noteable with five pieces of data:

  • The customer (inferred from the trusted configuration)
  • The username of the user
  • The short-form course code (e.g. MATH101_2020_SEM1)
  • The course name (e.g. "Mathematics 101 - an introduction to Bayesian statistics")
  • role ('Instructor' or anything else)

"Customer" and "Username" allow us to provide home directories for each user, and "course" and "role" details are used by the Assignments system to provide appropriate tools.

What is a computational notebook?

A computational notebook is an electronic document designed to combine explanation, code, computation, and output in one place. Whilst the likes of a word-processor may allow embedded tables and graphs, they don't have the capacity for general-purpose computation. Likewise, a programming editor will allow comments for code, but is not really any good for actually creating narrative notes.

The term notebook is often over-used, so in Noteable it helps to separate four related ideas:

  • The notebook document is the file, usually in .ipynb or .qmd format, that contains the text, source code, and output of your work.
  • There's the backend bit that takes the source code and computes it. This is language-specific, and is called the 'kernel'.
  • The front-end 'notebook dashboard' is an interface such as JupyterLab or RStudio, primarily used for opening notebook documents and managing files.
  • Finally, the notebook server is the environment behind the scenes that provides the interface, kernels, libraries, tools, and web service which power all this.
Where do 'notebooks' come from?

'Notebooks' come from wanting to provide a simple, interactive, programming environment - however to get there, there's some background to cover:

Let's start with 3rd generation programming languages (3GL) - machine independent, abstracted, programmer-centric. The source code is written, then compiled into another form, which is then executed.

3GL programmers often use an integrated development environment (IDE) tool to write, compile, and execute code all from the same place. IDEs often come with additional helpful features such as syntax highlighting, code-completion, and debugging. 3GL programming means a developer can use an IDE on their workstation, with locally installed libraries, to create a compiled application that can be distributed & executed as is on other computers.

iPython took the renowned programming language Python and wrapped an interactive shell around it - so it would compile & execute sections of code in sections. iPython came with a command-line shell, and a game-changing IDE: a web-based interface.

iPython's main goal is not application development, but data analysis, exploration & modelling.

Jupyter Notebooks are a language-agnostic IDE wrapped around iPython, and also bring a wealth of visual & user-centric improvements to the tool. These developments, primarily open-source and developer-community oriented, are the building blocks of the Noteable service.

Where does Noteable come from?

Noteable was born from the want to have notebooks available for teaching, at scale. Providing a 'notebook' for oneself is easy. Providing 'notebooks' for a single class is not difficult. Providing 'notebooks' for a whole University is hard.

Noteable uses Cloud Infrastructure to provide Containerised 'Notebooks' - which thus meets the goals of standardisation, repeatability, and scaling.

What is a docker container?

A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.

The important part for us is 'includes everything needed to run an application'.

What does Noteable do?

The problem with a Notebook App is that is runs on the user's computer, and needs the user to have all the libraries installed that they want to use in their notebook documents.

If we can put the Notebook App plus all the desired libraries into a docker container, we have a distributable service that we know is complete & correct.

Noteable is, at this level, two things:

  1. A mechanism to provide authenticated access to a range of different Docker App containers
  2. The infrastructure to launch notebook apps into a private, secure cloud
What is the Jupyter Project? The Jupyter Project is a spin-off project from the I-Python project, which initially provided an interface only for the Python language and continues to make available the canonical Python kernel for Jupyter. The name Jupyter itself is derived from the combination of Julia, Python, and R.
What is Jupyterhub? Jupyterhub is a web-application that provides a mechanism for users to connect to a machine and start a containerized Jupyter notebook app. Noteable does not use Jupyterhub.
Why Noteable?
  • Noteable provides the tools and support, for lecturers, students and researchers, whatever their level of skill or knowledge, to deliver narratively rich, coded solutions.
  • Noteable enables computational narratives to be readily created, shared and reused within and across teaching and learning contexts.
  • In order for data, and the computations that process and visualise that data to be useful and meaningful for humans, they must be embedded into a narrative - a computational narrative - that tells a story for a particular audience and context.
  • Our tools are designed by lecturers and researchers to support lecturers and researchers.
  • They are easily integrated into your existing Virtual Learning Environment solutions.
  • Tailorable to your teaching: Notebooks can be discipline specific or designed to be bespoke for your needs.
  • We can support researchers working with data as well: To provide more CPU or more data storage, niche language kernel support and Big Data tooling.
  • Your student numbers may change but our infrastructure makes sure your Notebooks still work smoothly. All without recourse to local IT support.
What is 'Trial Access', and can I have one?

The Noteable Free Trial provides access to the service through a hosted Virtual Learning Environment (VLE). The trial experience gives academics and students a chance to explore and utilise the features of the Noteable service. For further details and to sign up, please fill out the Trial Form

We run a Moodle system specifically for this.