Skip to content

Commit d420842

Browse files
committed
Expand bullets to text in intro and customization-1
1 parent 08944e7 commit d420842

File tree

4 files changed

+91
-48
lines changed

4 files changed

+91
-48
lines changed

learning-pathways/jupyter-based-teaching.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ layout: learning-pathway
33
title: Jupyter-based teaching
44
type: use
55
description: |
6-
An introduction to Jupyter-based teaching and Jupyter customization.
6+
An introduction to Jupyter-based teaching and JupyterLab customization.
77
88
editorial_board:
99
- mittler-works
@@ -14,27 +14,27 @@ tags: [jupyter, teaching]
1414

1515
pathway:
1616
- 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."
1818
tutorials:
1919
- topic: teaching
2020
name: jbt-intro
2121

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."
2424
tutorials:
2525
- topic: teaching
2626
name: jbt-customization-1
2727
- topic: teaching
2828
name: jbt-customization-2
2929

3030
- 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."
3232
tutorials:
3333
- topic: teaching
3434
name: jbt-featured
3535

36-
- section: "Use your customized JupyterLab for Courses"
37-
description: "Learn how to teach a course or workshop with 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."
3838
tutorials:
3939
- topic: teaching
4040
name: jbt-jhaas
@@ -43,4 +43,4 @@ pathway:
4343

4444
---
4545

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.

topics/teaching/tutorials/jbt-customization-1/tutorial.md

Lines changed: 57 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
---
22
layout: tutorial_hands_on
33

4-
title: Basics of Jupyter customization
4+
title: Basics of JupyterLab customization
55
subtopic: practises
66
draft: true
77
time_estimation: 1h
88
questions:
9-
- How can I make basic customizations to Jupyter?
9+
- How can I make basic customizations to JupyterLab?
1010
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.
1212
key_points:
1313
- Basic customization costs litte effort and makes it easier for your course participants to get started.
1414
contributors:
@@ -17,55 +17,87 @@ contributors:
1717

1818
# Prerequisites
1919

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.
2121

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.
2323

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.
2525

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.
2727

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.
2929

30-
* WIP
30+
## Install docker
3131

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.
3533

36-
* Will print out a link to `http://localhost:8888/lab?token=<token>`
34+
- for Linux, I recommend to install docker engine only\
35+
[https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
3736

38-
## Access your local Notebook Server
37+
- for Windows, you need docker dekstop - Please use the WSL 2 backend to ensure proper function\
38+
[https://docs.docker.com/desktop/setup/install/windows-install/](https://docs.docker.com/desktop/setup/install/windows-install/)
3939

40-
* Windows and Mac users will need verification work...
40+
- for Mac, you also need docker desktop\
41+
[https://docs.docker.com/desktop/setup/install/mac-install/](https://docs.docker.com/desktop/setup/install/mac-install/)
4142

42-
* WIP
43+
# Start your first local JupyterLab with docker
4344

44-
## Missing packages
45+
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:
48+
49+
[https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html](https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html)
50+
51+
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+
```
4558

46-
* Install a simple python package
59+
Let's tear this command apart:
4760

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 |
4969

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:
5175

5276
```python
77+
# Hint: press shift + enter to execute code in Jupyter Notebook
5378
import datetime
5479
now = datetime.datetime.now()
5580
print(now.strftime("%A"))
5681
```
5782

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.
5988

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:
6190

6291
```python
92+
# Hint: press shift + enter to execute code in Jupyter Notebook
93+
import datetime
6394
from cowsay import cow
64-
cow('Muuuuh')
65-
```
6695

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+
```
6899

100+
As you will see, this fails with a `ModuleNotFoundError` as cowsay is not available in minimal-notebook.
69101

70102
# Build your first custom Image
71103

topics/teaching/tutorials/jbt-featured/tutorial.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ It should pull the repo and opens the example automatically. You should be able
8383

8484
https://github.com/jupyter/nbgrader
8585

86+
More: https://nbgrader.readthedocs.io/en/stable/
87+
8688
## Install
8789

8890
## Configuration

topics/teaching/tutorials/jbt-intro/tutorial.md

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
layout: tutorial_hands_on
33

4-
title: An introduction to Jupyter based teaching
5-
subtopic: practises
4+
title: An introduction to Jupyter-based teaching
5+
subtopic: introduction
66
draft: true
77
time_estimation: 15m
88
questions:
9-
- What are the general advantages and limitations of Jupyter based teaching?
9+
- What are the general advantages and limitations of Jupyter-based teaching?
1010
objectives:
1111
- An overview is provided to familiarize teachers with the advantages and limitations of Jupyter-based teaching.
1212
key_points:
@@ -15,34 +15,43 @@ contributors:
1515
- mittler-works
1616
---
1717

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.
1919

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.
2121

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.
2323

24-
* Low entry access
24+
This allows for an low-level access especially for beginner courses or workshops.
2525

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.
2727

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.
2929

3030
# Jupyter Terminology
3131

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.
3341

3442
### 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.
3644

3745
### 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.
3949

4050
### 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.
4252

4353
### 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.
4655

4756
# Advantages for teaching
4857

0 commit comments

Comments
 (0)