You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: learning-pathways/jupyter-based-teaching.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ layout: learning-pathway
3
3
title: Jupyter-based teaching
4
4
type: use
5
5
description: |
6
-
An introduction to Jupyter-based teaching and Jupyter customization.
6
+
An introduction to Jupyter-based teaching and JupyterLab customization.
7
7
8
8
editorial_board:
9
9
- mittler-works
@@ -14,27 +14,27 @@ tags: [jupyter, teaching]
14
14
15
15
pathway:
16
16
- section: "Learn the basics about Jupyter-based teaching"
17
-
description: "Advantages and limitations of Jupyter-based teaching"
17
+
description: "An Overview on the Jupyter project components as well as advantages and limitations of Jupyter-based teaching and learning."
18
18
tutorials:
19
19
- topic: teaching
20
20
name: jbt-intro
21
21
22
-
- section: "Customize Jupyter to your needs"
23
-
description: "Adapt Jupyter to your course or workshop specific needs"
22
+
- section: "Customize JupyterLab to your needs"
23
+
description: "Adapt JupyterLab to your course or workshop specific needs by installing custom packages, kernels and proxy applications."
24
24
tutorials:
25
25
- topic: teaching
26
26
name: jbt-customization-1
27
27
- topic: teaching
28
28
name: jbt-customization-2
29
29
30
30
- section: "Featured customizations"
31
-
description: "Battle-tested and recommended Jupyter extensions for teaching "
31
+
description: "Battle-tested and recommended JupyterLab extensions for frustration-free teaching and learning."
32
32
tutorials:
33
33
- topic: teaching
34
34
name: jbt-featured
35
35
36
-
- section: "Use your customized JupyterLab for Courses"
37
-
description: "Learn how to teach a course or workshopwith your custom JupyterLab"
36
+
- section: "Productive use of your customized JupyterLab"
37
+
description: "Learn how to teach a course or workshop, providing you students with your customized JupyterLab."
38
38
tutorials:
39
39
- topic: teaching
40
40
name: jbt-jhaas
@@ -43,4 +43,4 @@ pathway:
43
43
44
44
---
45
45
46
-
You'll learn about the advantages of using Jupyter for teaching and how you can adapt Jupyter to the very specific needs of your course or workshop. As a teacher, you'll learn how to teach a course or workshop using your Jupyter customizations. As a Galaxy admin, you'll learn how to provide your users with a customized Jupyter.
46
+
You'll learn about the advantages of using Jupyter for teaching and how you can adapt JupyterLab to the very specific needs of your courses or workshops. As a teacher, you'll learn how to provide your students with your customized JupyterLab for individual courses or workshops. As a Galaxy admin, you'll learn how to provide your users with a customized JupyterLab each as new interactive tool.
Copy file name to clipboardExpand all lines: topics/teaching/tutorials/jbt-customization-1/tutorial.md
+57-25Lines changed: 57 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
---
2
2
layout: tutorial_hands_on
3
3
4
-
title: Basics of Jupyter customization
4
+
title: Basics of JupyterLab customization
5
5
subtopic: practises
6
6
draft: true
7
7
time_estimation: 1h
8
8
questions:
9
-
- How can I make basic customizations to Jupyter?
9
+
- How can I make basic customizations to JupyterLab?
10
10
objectives:
11
-
- An introduction is provided on how to make basic Jupyter customizations, e.g. installing additional plugins.
11
+
- An introduction is provided on how to make basic JupyterLab customizations, e.g. installing additional plugins.
12
12
key_points:
13
13
- Basic customization costs litte effort and makes it easier for your course participants to get started.
14
14
contributors:
@@ -17,55 +17,87 @@ contributors:
17
17
18
18
# Prerequisites
19
19
20
-
* We'll use containerized installation
20
+
One common way to serve JupyterLab is the container-based approach, especially when using a JupyterHub infrastructure provider.
21
21
22
-
* Examples with docker, as it is easy to install on all major platforms
22
+
This is why this tutorial also follows the container-based approach. As a teacher who wants to customize a container-based JupyterLab you need to install a container runtime as well as some related tools for building container images and more.
23
23
24
-
# Start your first local Notebook Server with docker
24
+
One of the easier ways to install all the required dependencies is the installation of docker. Docker is available on all major platforms, is very easy to use and has also the advantage, that your produced images will be likely working with any infrastructure provider.
25
25
26
-
* Show docker stacks
26
+
All examples in this tutorial are therefore developed with docker in mind, but they should of course also work with other container platforms.
27
27
28
-
* Select an image
28
+
All commands that you should run in a terminal are given with linux in mind. On windows and mac, you might adapt them, e.g. it might not be neccessary (or possible) to use sudo on windows.
29
29
30
-
* WIP
30
+
## Install docker
31
31
32
-
```bash
33
-
sudo docker run --rm -it -p 127.0.0.1:8888:8888 quay.io/jupyter/minimal-notebook:2025-06-23
34
-
```
32
+
In order to install docker, please follow the official installation steps. Please read through the whole installation documentation first before starting the installation.
35
33
36
-
* Will print out a link to `http://localhost:8888/lab?token=<token>`
34
+
- for Linux, I recommend to install docker engine only\
When you have installed docker successfully, you may now start your first containerized JupyterLab.
46
+
47
+
In order to run a container you need a container image to start from. The container image defines all the content of the running container. For JupyterLab, there are some prebuild container images for many usecases:
You may select an image that fits closest to your usecase. For this tutorial, we'll use the `jupyter/minimal-notebook` image.
52
+
53
+
To run this image, open up a terminal and execute:
54
+
55
+
```bash
56
+
sudo docker run --rm -p 127.0.0.1:8888:8888 quay.io/jupyter/minimal-notebook:2025-06-23
57
+
```
45
58
46
-
* Install a simple python package
59
+
Let's tear this command apart:
47
60
48
-
* WIP
61
+
|---|---|
62
+
| sudo | Executes the command with elevated privileges. This is neccassary as docker server is installed as privileged daemon by default. |
63
+
| docker | The docker binary. Allows to talk to the docker daemon. |
64
+
| run | Tells docker to create and start a new container |
65
+
| --rm | Tells docker to remove the container as soon as it's stopped |
66
+
| -p | Tells docker to setup a port forwarding |
67
+
| 127.0.0.1:8888:8888 | The argument for `-p`. A port forwarding on the local interface 127.0.0.1 from port 8888 to the container port 8888 |
68
+
| quay.io/jupyter/minimal-notebook:2025-06-23 | The image to create the container from |
49
69
50
-
* You are now in a predefined environment. All Packages from mentioned in the docker stacks documentation are there, so you can easily open the `Python 3` Notebook presented on the start page and start working. As you are in a minimal notebook you just do have the python default libraries, but you could run this to get the current weekday:
70
+
## Access your local Notebook Server
71
+
72
+
The above command will print out a link to `http://localhost:8888/lab?token=<token>`. Copy this link into your browser or just right-click-open the link. You will then see your JupyterLab loading.
73
+
74
+
When the interface is booted, click on the `Python 3` tile in the Notebook tab to open up a new Notebook. Verify, that everything is working by printing out today's weekday:
51
75
52
76
```python
77
+
# Hint: press shift + enter to execute code in Jupyter Notebook
53
78
import datetime
54
79
now = datetime.datetime.now()
55
80
print(now.strftime("%A"))
56
81
```
57
82
58
-
* For scientific work you will likely need more than just the default python libraries. Reviewing the docker stacks is helpful and maybe an image like the `scipy-notebook` will have most of the packages you need. But of course these default collections cannot have suitable package selections for the very specific needs of all courses out in the world.
83
+
## Missing packages
84
+
85
+
You are now in a predefined environment. The packages that are installed are defined by the container image you started, i.e. the `minimal-notebook`. All Packages from this image are available, which are the python default libraries. so you can easily succeed following above steps to print out the weekday, as the used packages are default packages.
86
+
87
+
For scientific work however, you will likely need more than just the default python libraries. Reviewing the docker stacks is helpful and maybe an image like the `scipy-notebook` will have most of the packages you need. But of course these default collections cannot have perfect fit package selections for the very specific needs of all courses that you could imagine of.
59
88
60
-
For example, in this minimal setup you might like to have the option to print out text in a fancier way. Luckily, there is a python package for this: `cowsay`. So let's go ahead, try running
89
+
For example, in this minimal setup you might like to have the option to print out the weekday in a fancier way. Luckily, there is a python package for this: `cowsay`. So let's go ahead, try running:
61
90
62
91
```python
92
+
# Hint: press shift + enter to execute code in Jupyter Notebook
93
+
import datetime
63
94
from cowsay import cow
64
-
cow('Muuuuh')
65
-
```
66
95
67
-
As you will see, this fails as cowsay is not available in minimal-notebook.
96
+
now = datetime.datetime.now()
97
+
cow(now.strftime("%A"))
98
+
```
68
99
100
+
As you will see, this fails with a `ModuleNotFoundError` as cowsay is not available in minimal-notebook.
Copy file name to clipboardExpand all lines: topics/teaching/tutorials/jbt-intro/tutorial.md
+24-15Lines changed: 24 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
---
2
2
layout: tutorial_hands_on
3
3
4
-
title: An introduction to Jupyterbased teaching
5
-
subtopic: practises
4
+
title: An introduction to Jupyter-based teaching
5
+
subtopic: introduction
6
6
draft: true
7
7
time_estimation: 15m
8
8
questions:
9
-
- What are the general advantages and limitations of Jupyterbased teaching?
9
+
- What are the general advantages and limitations of Jupyter-based teaching?
10
10
objectives:
11
11
- An overview is provided to familiarize teachers with the advantages and limitations of Jupyter-based teaching.
12
12
key_points:
@@ -15,34 +15,43 @@ contributors:
15
15
- mittler-works
16
16
---
17
17
18
-
* Central Platform for interactive teaching
18
+
Jupyter Notebooks are a promising way to provide participants of a course or workshop with an easy-to-use, webbased, interactive and reproducible environment to learn and work with.
19
19
20
-
* All in one place, Code, Text, Math, Plots and more
20
+
Jupyter Notebooks makes it possible to Code in various programming languages, writing documentation and other text, doing math, printing plots and much more in one single environment. All relevant resources are ready to be used.
21
21
22
-
*No installation required
22
+
Jupyter Notebooks can be run on an individual machine as well as centrally managed by a JupyterHub server. If provided via JupyterHub, the webbased access truly allows participants to bring their own device, as their devices only need to satisfy common web standards and do not need to satisfy the requirements of the software running inside the notebook, as this will be run on the server. No installation on the participants device required.
23
23
24
-
* Low entry access
24
+
This allows for an low-level access especially for beginner courses or workshops.
25
25
26
-
* Easy scalable
26
+
As a teacher you may provide a predefined learning environment, i.e. a predefined software stack, data, configuration and more. This allows you to cover all the necessary requirements in advance, so your participants do not have to carry out further setup steps during the course, as these tend to be frustrating in many szenarios.
27
27
28
-
* Custom Courses in predefined Environments
28
+
If you use an infrastructure provider for your course, you only have to deal with your JupyterLab customizations in order to adapt JupyterLab to your course. The deployment of these JupyterLabs in order to provide them to your participants is the infrastructure providers' job. With this in mind it makes little difference if you plan your JupyterLab for three or three hundred participants, as it is horizontally scalable.
29
29
30
30
# Jupyter Terminology
31
31
32
-
In the context of Jupyter, there are some components with similar terminology involved. It is important to know how to keep them apart, which is why this tutorial begins with a list of common Jupyter wording.
32
+
To get started, we have to elaborate on some terminology. Especially the term `Jupyter Notebook` is heavily overloaded and may be used in many szanarios while having very different meanings. Over all, in the context of Jupyter, there are some components with similar terminology involved. It is important to know how to keep them apart.
33
+
34
+
> <question-title>Which Jupyter-related terms do you now?</question-title>
35
+
>
36
+
> Just take a moment and think about what Jupyter-related terms you have already heard about. For each term that comes to your mind, can you explain how it fits into the Jupyter landscape?
37
+
{: .question}
38
+
39
+
40
+
Let's start this tutorial with a list of a few very common and important Jupyter terms.
33
41
34
42
### Jupyter
35
-
is the name of the umbrella open source project that provides Jupyter Notebook, JupyterLab, JupyterHub and many more projects.
43
+
Jupyter itself is the name of the umbrella open source project that provides software components like Jupyter Notebook, JupyterLab, JupyterHub and many more projects. Jupyter itself is not a software nor a file format.
36
44
37
45
### Jupyter Notebook
38
-
is a computer program that serves a webbased interactive tool for writing, documenting, and sharing code. Please note, that the `.ipnb` document itself is often reffered to as the Jupyter Notebook. Please always mind the context to distinguish between the Jupyter Notebook program and the Jupyter Notebook document.
46
+
Jupyter Notebook is a computer program that serves a webbased interactive tool for writing, documenting, and sharing code. It is commonly used on a local machine. Note, this term is heavily overloaded and it is common that the `.ipnb` files themselves are reffered to as Jupyter Notebooks too.
47
+
48
+
Please always mind the context to distinguish between the Jupyter Notebook program and the Jupyter Notebook file.
39
49
40
50
### JupyterLab
41
-
is a computer program that serves an extensible webbased environment for interactive coding, that combines Jupyter Notebook with other components like text editors, terminals, kernels, plots and more.
51
+
JupyterLab is a computer program that serves an extensible webbased environment for interactive coding, that combines Jupyter Notebook with other components like text editors, terminals, kernels, plots and more.
42
52
43
53
### JupyterHub
44
-
is a centralized organizational platform for JupyterLab on a server. It allows to provide many users with JupyterLab instances and handles authentication and authorization.
45
-
54
+
JupyterHub is a centralized organizational platform for managing JupyterLab instances on a server. It allows to provide many users with JupyterLab instances and handles authentication and authorization.
0 commit comments