Conjuring: a Self-Contained Jupyter Hub for Teaching

Aleutia R50

We — me (Jon Reades), Steffen Zschaler (KCL Informatics), and Dani Arribas-Bel (Liverpool Geography) — been awarded money by the SSPP Faculty Education Fund to develop a new approach to using Jupyter notebooks for teaching, conferences, and workshops. Conjuring will use a low-power, small form-factor server running Jupyter Hub without an Internet connection, allowing it to be used in novel environments such as rural schools or in venues (schools, conference centres) where IT and networking support for advanced applications is limited or non-existent.

Apply Now!

If you are a King’s undergraduate or masters student and (after reading the below) you want to work with us, then you can now apply via King’s Talent Bank.


The aim of Conjuring is to create, test and deploy a robust, low-powered, self-contained server platform to support the teaching of computing using any web-enabled device in classroom, workshop, and community contexts. The project builds on the widespread adoption of Jupyter notebooks by the data science community as a standard for distributing programming tutorials to realise new possibilities for research-led teaching. Through Jupyter the same underlying technology can be used for our undergraduate Geocomputation pathway as for operational analytics by Netflix, and the platform allows executable code and explanatory text to be intermingled on a web page (the notebook) which can be viewed and edited (i.e.programmed) in any modern browser (see Figure 1 below). At the push of a button, code can be sent from the user’s browser back to the server for execution with the output written dynamically back into the web page for the user to see.

Image of Jupyter Notebook

Typically, however, the server is installed on the user’s own computer as attempts to run the server using cloud-based services are complicated both by the teacher or developer’s familiarity with the service as well as by bandwidth, cost, and security concerns. Conjuring avoids these issues: bandwidth issues are avoided because Conjuring is entirely self-contained and has no need for an outside network connection; security is maintained because only users within WiFi range of our platform can connect to the server; and, most importantly, users can learn about and write programming code without being required to download and install any software at all. Consequently, our approach leverages the ‘state of the art’ in data science training and education whilst circumventing existing technical and practical limitations in the use of this platform for teaching.

Consequently, whilst the initial application of Conjuring will be in introductory and undergraduate sessions, we believe that the design of, and content available for, Conjuring means that it ultimately has applications across secondary and tertiary education in both developed and, excitingly, developing countries. Faculty funding will enable us to develop and test two prototype devices in three HE contexts: undergraduate teaching, specialist workshops, and school visits and other recruitment events. We will take feedback from participants/students and experience gained from running these trials to seek follow-on funding to scale our project in two ways: for wider use in secondary schools within Great Britain and Northern Ireland where access to teaching materials and resources is constrained, and for use in less developed country contexts where access to both teachers and infrastructure is constrained.


Conjuring will streamline the teaching of computational methods in an innovative, economic, and practical way, providing wider benefits to HE and Schools where the first two hours of many introductory programming courses or specialist workshops are typically taken up with helping participants to download, install, and configure a programming environment (e.g. R/R-Studio or Anaconda Python). Not only is this time-consuming, it is both bandwidth-intensive (involving the simultaneous download of well over 5GB of data per user) and fraught with difficulty because of the range and age of hardware and operating systems that users may present.

In theory it is possible to preconfigure computer labs to run the Jupyter environment via the installation of Anaconda Python, but in practice security-minded IT administrators are unwilling or unable to do so for a one-off session or singular module. Conjuring sidesteps such limitations by building on the following recent advances:

  1. The availability of small, fanless, but full-featured systems that are highly portable, physically robust, and typically support both wired and wireless networks.
  2. The rise of Jupyter notebooks as a teaching platform that fully decouples the computing environment (where code is run) from the programming environment (where code is written).
  3. The availability of Jupyter Hub to support multiple simultaneous users of the same session on a single server… users only need a modern web browser in order to write and execute code!
  4. The availability of containerisation platforms which enable systems to be pre-packaged for distribution, replication across devices, and execution in isolation from the host operating system.

Jupyter Hub and Docker are currently used primarily in cloud computing environments (e.g. Binder or Azure Notebooks) and the configuration and use of such services is beyond both the ability of most instructors and the usual budgets allocated for teaching. The question is therefore how to deploy such a system in a way that places minimal/no demands upon instructors, IT administrators, and network infrastructure?

Our proposed solution to this problem therefore involves the use of Free Open Source Software (FOSS) and compact, energy-efficient hardware – one ‘high performance’ and one ‘low performance’ in order to test different programming scenarios – that is highly portable. These systems will have Ubuntu Linux installed and be configured so that they will launch both an ad-hoc WiFi network and a containerised version of Jupyter Hub on start-up. The container can be pre-loaded with allinstructional materials – code, documentation, and data – for a single day or an entire term, enabling a teacher with minimal knowledge of computing as a whole (beyond what they are actually covering in class) to start teaching simply by plugging in the power cable and turning on the machine! User accounts and passwords can also be configured for security purposes at this time, taking advantage of the isolation features of Docker containers.


Following trials in the more controlled context of workshops, recruitment events, and undergraduate module teaching, we will seek external funding to extend our trial into a school setting. To stimulate interest in, and support for, the platform we will also seek to demonstrate our platform at international conferences, including the AAG’s Annual Meeting of the Association of American Geographers and the RGS’s Annual International Conference of the Royal Geographical Society. The AAG is currently running an ‘Encoding Geography’ initiative and we also hope to explore opportunities for disseminating Conjuring as a joint RGS/BCS output, possibly via the ‘Computing At School‘ initiative. In the long run we envision Conjuring being particularly relevant in more challenging environments such as those in parts of sub-Saharan Africa or Asia where bandwidth is limited and power unreliable.

All of the code supporting Conjuring will be made available via GitHub []. Since we employ only free open source software (FOSS) throughout we can make the code underpinning our platform accessible to technically-minded instructors who wish to customise the environment to suit their own needs. However, we anticipate that many instructors will have neither the time, nor the knowledge, to deploy their own container and system from scratch, so we attach particular importance to:

  1. providing  good documentation for users stepping through the deployment process;
  2. determining the scope for automating the updating of the container, notebooks/server, and user logins such that the instructor need have only minimal knowledge of how the system actually works; and
  3. exploring the potential to sell (at cost or with some kind of subsidy from a foundation or professional body) pre-configured systems to instructors.

Find Out More

We’re in the process of recruiting a King’s student to do the integration work – with support from the Co-Is! – and hope to have an alpha release ready by mid-Summer. If you’d like to know more about what we’re up to, then please feel free to get in touch!

Apply Now!

If you are a King’s undergraduate or masters student you can apply via King’s Talent Bank.