# Jupyter for Education Community Workshop
Useful links:
- [Google Doc with the planning, useful informations and the restaurant menu](https://docs.google.com/document/d/1ewcFK8XkGXD7VaXA0bqK3dAVNpdL49O_0SUf9W7hGxk/)
- [Discord](https://discord.gg/nCdeCH4j2A)
- [Jitsi](https://meet.jit.si/jupyter-for-education-workshop)
## Tuesday 24 January
### Morning
**Round of introductions**
**Presentations**
- Notebook 7 by Jeremy Tuloup
- Demo of the interface
- History of the classic notebook
- Notebook 7 JEP: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
### Lunch break
Lunch break at CNAM.
### Afternoon
**Presentations**
- `nbgrader` by Nicolas Brichet: https://github.com/jupyter/nbgrader
- Accessibility by Ely
- ["slides"](https://hackmd.io/Wxu1St4wQjWqVRbxRTuTog)
- jupyter education accessibility worst-case scenarios
- disabled students can't access information/tools because of jupyter
- educators can't/won't use jupyter because it doesn't meet accessibility requirements
- are the workarounds (export to html) accessible?
- more extensions more problems vs. could extensions solve problems?
- theme extensions enable users to customize interface for individual accessibility needs
- jupytext - slides in latex easier to read
- "give me the source" to solve readability/styling problems
- [alt Text Decision Tree](https://www.w3.org/WAI/tutorials/images/decision-tree/)
- [Write good Alt Text to describe images](https://accessibility.huit.harvard.edu/describe-content-images)
- [Beyond Basic Alt Text – Charts, Maps, and Diagrams](https://equidox.co/blog/beyond-basic-alt-text-charts-maps-and-diagrams/)
- PLASMA (https://plasmabio.org/) by Claire and Sandrine
## Wednesday 25 January
### Pedagogy working group
#### In which situations it is useful to use Jupyter?
- Lorena from George Washington University: 1h15 slots. Live coding lectures with notebooks, starting from an empty notebook (both for teacher and students). Applications to solve real problems. 1 prof + 3 TA for a class about 60 undergraduate students. Explains out loud what's happening. Lecture notes are provided before the lesson. Home work: jupynoteboks with exercices, infinite possibilities to use autograding. Exam: autograded jupynb with 5 possibilities to use autograding, no talking but open internet. Do not copy and paste, your fingers on the keyboard.
- GitHub repo: https://github.com/engineerscode/
- Course introduction: https://github.com/engineersCode/EngComp
- First lesson: https://github.com/engineersCode/EngComp1_offtheground
- Marie from AgroParisTech (Jupyter hub provided by Paris Saclay University): chemical engineering course. With Python and Jupyter. First class with 2 notebooks, then one notebook along several classes. Alone in class. 20 to 30 students. Manual grading on notebooks submitted by students (2 assessments during the course). Applications to solve real problems. Need to do homework by pairs - > solution by Google Colab
- [Jupyter basics](https://sayfood.transform.inrae.fr/scenari/masterGPB/guideJupyter/)
- [Calculator](https://seafile.agroparistech.fr/f/c08df278dff448fc980d/) to discover Jupyter environment and Python
- [How to plot a graph?](https://seafile.agroparistech.fr/f/7421a0c1849b4a40902d/) to discover loops and "plot"
- [How to solve an equation?](https://sayfood.transform.inrae.fr/scenari/masterGPB/moduleSiMo1/)
- [How to integrate?](https://seafile.agroparistech.fr/f/d2451cc837e24c5ea611/) (real ATM card is not provided)
- Garima from (prev) Berkeley + (current) Columbia Univ. Data science connector, bonus course. Students working on a project. Students are learning or already learnt Python. production of invidual projects, submitted as a notebook and oral defense. 1 prof and 1 TA for about 20 students / More recently: analysis of data out of air sensors in cities everywhere in the world, teaching of local users using DeepNote (free tier, intuitive, user-friendly)
- Sandrine from Université Paris Cité : narrative guided notebooks applied to genomics, usage of the bioinformatic tools in the field. Want students to understand in step of the analysis and why we need to use this tool and how. 2h practical sessions, alone with about 23-25 students, twice (2 groups from the same class, so we have to provide the same narrative to both groups)
- Claire from Université Paris Cité : uses notebooks a lot in applied genomics and genetics (multi-factorial disease), but also in R programming courses. 2h practical sessions, alone with about 23-25 students, twice (2 groups from the same class, so we have to provide the same narrative to both groups)
- **JupyterBook**: here is a template repository Lorena made, which can help you get started https://github.com/learnopenscience/module-template -> @Lorena: thanks a lot!
#### What would make Jupyter better for teachers?
- Visual hint (visible from anywhere in Jupyter lab) for the user to know code cells are not executed in order.
- Ability to export notebook in HTML with a TOC and possibly a frontmatter (similar to one is done with Rmarkdown/RStudio). I like when students submit their work as a nicely formated report (exported from a notebook).
- numericaly labelled code cells in student notebooks to make it easy to refer students to a given cell
with automatic naming / renaming when the instructor insert a new cell (or just when he asks for it)
- Conditionnal cells to hide some parts of the notebook.
- Spell/grammar checker.
- Collaborative notebooks for students working in groups + comment for teachers to explain our grading.
- Edit history: who edited what part when, track-change UI, version control with commit messages). Rq: version control is already possible.
- Suggestive hints for coding error (as in deepnote)
- Color formatting of the code in markdown cells: maybe MyST enhanced markdown would do the job
- Full support for (myst)markdown notebooks
### Jupyter in the browser group
**Demo of JupyterLite**
- Easy to create a custom JupyterLite website that will be deploy to GitHub Pages: https://jupyterlite.readthedocs.io/en/latest/quickstart/deploy.html
- The `jupyterlite-xeus-python` kernel is an alternative kernel that lets you pre-package dependencies so they can be used in the Python kernel directly without having to install them explicitely: https://github.com/jupyterlite/xeus-python-kernel
- Quickstart template: https://github.com/jupyterlite/xeus-python-demo
- Discussions about what packages are available when Python runs in the browser:
- Pyodide declares them here: https://github.com/pyodide/pyodide/tree/main/packages
- Xeus Python uses https://github.com/emscripten-forge/recipes
- Extension to access local files on a user machine and avoid manual uploads and downloads for syncing the contents: https://github.com/jupyterlab-contrib/jupyterlab-filesystem-access
- Work on a `lfortran` kernel: https://github.com/jupyterlite/xeus-lfortran-kernel
- Investigation for opening Jupytext files in JupyterLite: https://github.com/jupyterlite/jupyterlite/discussions/731
### Grading Group
* Demo of nbgrader + gitlab solution used in info111 course
* Demo of otter-grader (https://otter-grader.readthedocs.io/en/latest/) + gradescope (https://www.gradescope.com) workflow by Taylor Gibson (gibson@ncssm.edu)
### Afternoon
**Visit of the museum**
**Presentations**
- Lorena: [EngComp1 de GW](http://go.gwu.edu/engcomp1)
- Nicolas Poulain (leader of Capytale project)
- https://capytale2.ac-paris.fr/
- [wiki](https://capytale2.ac-paris.fr/wiki/)
## Thursday 26 January
### Morning
**Presentations**
- Taylor : JupyterBook
- Example from https://github.com/taylorgibson/macs4200-book
- Garima : Deepnote
- Sylvain : [nbconvert](https://nbconvert.readthedocs.io/en/latest/)
- Pierre : also see projects [paged.js](https://pagedjs.org/) or [WeasyPrint](https://doc.courtbouillon.org/weasyprint/stable/index.html). Both projects are supported in Pandoc with the option[`--pdf-engine`](https://pandoc.org/MANUAL.html#options-affecting-specific-writers). Would it be possible to have these converters alors available in nbconvert?
- Trying to run `nbconvert` in JupyterLite: https://gist.github.com/bollwyvl/6b3cb4c46b1764c6d9ae1e5831f86d7a
- Sébastien : [Pandoc](https://pandoc.org/)
- Jupyter notebook support documentation: <https://pandoc.org/MANUAL.html#jupyter-notebooks>
- The 2.6 changelog that introduced Jupyter notebooks in pandoc: <https://pandoc.org/releases.html#pandoc-2.6-2019-01-30>
### Afternoon
**Discussions**
- Discussions about advocacy.
- People from elsewhere usually have more weigth than the local people in charge of the projet.
- jupyterquiz: https://github.com/jmshea/jupyterquiz (also works in JupyterBook)
- Nicolas' course: https://nicolas.thiery.name/Enseignement/Info111/
- [Travo's gitlab repository](https://gitlab.info.uqam.ca/travo/travo) Soon to be in https://gitlab.com/travo-cs/travo .
#### A JupyterLab tutorial
See Tutoriel Jupyter on [this JupyterBook static web site](https://tutoriels-jupyter.pages.in2p3.fr/README.html).
[Live version with JupyterLite](https://tutoriels-jupyter.pages.in2p3.fr/lite/lab?path=tutoriel/index.ipynb).