{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
},
"tags": []
},
"source": [
"# Presentatie"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "notes"
},
"tags": []
},
"source": [
"**Als je in Basthon op de meeste rechtse knop hierboven klikt (in de vorm van een histogram), kom je in de RISE presentatie-mode.**"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
},
"tags": []
},
"source": [
"De onderstaande cel alleen uitvoeren in Jupyter Lab (niet in Basthon)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"slideshow": {
"slide_type": "skip"
},
"tags": []
},
"outputs": [],
"source": [
"%LOAD data/top2000.db"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Databases met Jupyter Notebook\n",
"\n",
"**i&i conferentie april 2023**\n",
"\n",
"*Eelco Dijkstra*"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Inhoud\n",
"\n",
"* wat is Jupyter Notebook?\n",
"* hoe gebruik je dit voor (Database) onderwijs?\n",
"* hoe pas je een Notebook aan?\n",
"* het Jupyter ecosysteem\n",
"* keuzethema's in Jupyter"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Wat is Jupyter Notebook?\n",
"\n",
"* een Notebook bestaat uit code-cellen en tekst-cellen\n",
" * tekst-cel: uitleg (met figuren en formules)\n",
" * code-cel: uitvoerbaar\n",
"* je kunt het notebook aanpassen\n",
" * experimenteren met de code"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Figuur\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Jupyter Notebook in het onderwijs\n",
"\n",
"* uitleg in het notebook\n",
"* met interactieve voorbeelden\n",
" * scaffolding: zo (in)compleet als nodig \n",
"* (en later, opdrachten en toetsvragen)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Interactieve presentaties met Jupyter Notebook"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"top | \n",
"positie | \n",
"titel | \n",
"artiest | \n",
"jaar | \n",
"
\n",
"\n",
"2015 | \n",
"1 | \n",
"Imagine | \n",
"John Lennon | \n",
"1971 | \n",
"
\n",
"\n",
"2015 | \n",
"2 | \n",
"Bohemian Rhapsody | \n",
"Queen | \n",
"1975 | \n",
"
\n",
"\n",
"2015 | \n",
"3 | \n",
"Hotel California | \n",
"Eagles | \n",
"1977 | \n",
"
\n",
"\n",
"2015 | \n",
"4 | \n",
"Mag Ik Dan Bij Jou | \n",
"Claudia De Breij | \n",
"2011 | \n",
"
\n",
"\n",
"2015 | \n",
"5 | \n",
"Stairway To Heaven | \n",
"Led Zeppelin | \n",
"1971 | \n",
"
\n",
"
"
],
"text/plain": [
"+------+---------+--------------------+------------------+------+\n",
"| top | positie | titel | artiest | jaar |\n",
"+------+---------+--------------------+------------------+------+\n",
"| 2015 | 1 | Imagine | John Lennon | 1971 |\n",
"+------+---------+--------------------+------------------+------+\n",
"| 2015 | 2 | Bohemian Rhapsody | Queen | 1975 |\n",
"+------+---------+--------------------+------------------+------+\n",
"| 2015 | 3 | Hotel California | Eagles | 1977 |\n",
"+------+---------+--------------------+------------------+------+\n",
"| 2015 | 4 | Mag Ik Dan Bij Jou | Claudia De Breij | 2011 |\n",
"+------+---------+--------------------+------------------+------+\n",
"| 2015 | 5 | Stairway To Heaven | Led Zeppelin | 1971 |\n",
"+------+---------+--------------------+------------------+------+"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"SELECT *\n",
"FROM top2000\n",
"LIMIT 5;"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Cellen\n",
"\n",
"* cel: selecteren via cursor (single-click), pijltjes\n",
"* cel: uitvoeren met \"pijltje\" bovenin, of Shift-Enter\n",
"* cel: double-click: \"edit-modus\""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Kernel\n",
"\n",
"* **kernel**: voert **code-cellen** uit\n",
"* kun je herstarten (enz.) via **kernel-menu**"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"top | \n",
"positie | \n",
"titel | \n",
"artiest | \n",
"jaar | \n",
"
\n",
"\n",
"2016 | \n",
"1 | \n",
"Bohemian Rhapsody | \n",
"Queen | \n",
"1975 | \n",
"
\n",
"\n",
"2017 | \n",
"1 | \n",
"Bohemian Rhapsody | \n",
"Queen | \n",
"1975 | \n",
"
\n",
"\n",
"2018 | \n",
"1 | \n",
"Bohemian Rhapsody | \n",
"Queen | \n",
"1975 | \n",
"
\n",
"\n",
"2019 | \n",
"1 | \n",
"Bohemian Rhapsody | \n",
"Queen | \n",
"1975 | \n",
"
\n",
"\n",
"2015 | \n",
"2 | \n",
"Bohemian Rhapsody | \n",
"Queen | \n",
"1975 | \n",
"
\n",
"
"
],
"text/plain": [
"+------+---------+-------------------+---------+------+\n",
"| top | positie | titel | artiest | jaar |\n",
"+------+---------+-------------------+---------+------+\n",
"| 2016 | 1 | Bohemian Rhapsody | Queen | 1975 |\n",
"+------+---------+-------------------+---------+------+\n",
"| 2017 | 1 | Bohemian Rhapsody | Queen | 1975 |\n",
"+------+---------+-------------------+---------+------+\n",
"| 2018 | 1 | Bohemian Rhapsody | Queen | 1975 |\n",
"+------+---------+-------------------+---------+------+\n",
"| 2019 | 1 | Bohemian Rhapsody | Queen | 1975 |\n",
"+------+---------+-------------------+---------+------+\n",
"| 2015 | 2 | Bohemian Rhapsody | Queen | 1975 |\n",
"+------+---------+-------------------+---------+------+"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"SELECT *\n",
"FROM top2000\n",
"WHERE artiest = 'Queen'\n",
"ORDER BY positie\n",
"LIMIT 5;"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Notebook in de browser\n",
"\n",
"* Jupyter-aanpak:\n",
" * UI in de browser\n",
" * kernels (en data) in de server\n",
"* Basthon-versie:\n",
" * kernels (en data) in de browser\n",
" * \"statische website\""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Voordelen Basthon\n",
"\n",
"* Basthon: \"zandbak\" voor Python (en andere kernels)\n",
"* geen server nodig (alleen statische website)\n",
"* privacy (geen tracking)\n",
"* veilig - voor computer en voor server/data\n",
" * zandbak in de browser: veilig voor computer\n",
" * data in zandbak: veilig voor server-data\n",
" * veilig experimenteren met code en data"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Zelf aan de slag\n",
"\n",
"Database-notebook:\n",
"\n",
"* [selectie en projectie](https://jupyter.infvo.nl/books/eelco/notebook/?kernel=sql&from=ieni2023/top2000-selectie.ipynb&module=ieni2023/top2000.db)\n",
"* [groeperen en samenvatten](https://jupyter.infvo.nl/books/eelco/notebook/?kernel=sql&from=ieni2023/top2000-samenvatten.ipynb&module=ieni2023/top2000.db)\n",
"* [combineren van tabellen](https://jupyter.infvo.nl/books/eelco/notebook/?kernel=sql&from=ieni2023/bibliotheek-a.ipynb&module=ieni2023/bibliotheek.db)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Notebook aanpassen\n",
"\n",
"* cel editen: double-click (via Shift-Enter weer geformatteerd)\n",
"* cel toevoegen: \"+\" in menu (en onderaan automatisch)\n",
"* cel verplaatsen: pijltjes in menu (en copy/paste)\n",
"* cel type aanpassen: menu Code/Markdown (of Esc-Y / Esc-M)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Zelf aan de slag\n",
"\n",
"* voeg zelf een opdracht toe\n",
"* na aanpassing: downloaden via \"Bestand\" -> Bewaar (of \"floppy\")\n",
"* uploaden: via \"Bestand\" -> Open\n",
"* downloaden van database\n",
" * via code-cel met `.backup` (binair) of `.dump` (SQL)\n",
"* uploaden van database (via \"Bestand\" -> Open)\n",
"\n",
"(helaas: naam nog niet aan te passen...)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Publiceren van notebook enz.\n",
"\n",
"* online cursus, periode mei-juni\n",
"* publiceren van Jupyter Notebooks\n",
"* aanpassen van Jupyter Book - lesmateriaal\n",
"* gebruik van versiebeheer (git, GitHub)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Jupyter ecosysteem\n",
"\n",
"* Jupyter Notebook: UI (browser), kernels (server)\n",
" * hosting nodig - (o.a. Jupyter Hub)\n",
"* Jupyter Lab: UI met meerdere notebooks, Markdown\n",
" * (idem)\n",
"* Jupyter Book: *bundelen* van notebooks tot \"boek\"\n",
" * online \"boek\": statische website\n",
" * o.a. voor lesmateriaal\n",
" * uitvoerbaar via server (e.g. MyBinder)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Ontwikkelingen\n",
"\n",
"* kernel van server naar browser\n",
" * Basthon (https://basthon.fr)\n",
" * Jupyter Lite (https://jupyter.org/try-jupyter/lab/index.html)\n",
" * https://jupyterlite.readthedocs.io/en/latest/_static/lab/index.html\n",
"* publiceren met Jupyter Book, MyST\n",
" * https://executablebooks.org/en/latest/gallery/\n",
" * https://curvenote.com"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## INF keuzethema's in Jupyter\n",
"\n",
"* INF keuzethema's: open leermaterialen\n",
"* Jupyter Book als voorkeurs-formaat\n",
" * met extensies voor opdrachten en toetsvragen\n",
"* Jupyter Book in combinatie met git (GitHub): versiebeheer\n",
"\n",
"*Online cursus mei-juni over gebruik en aanpassen*"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Databases-teams: meld je aan\n",
"\n",
"* thema-team Databases\n",
" * organiseren van het materiaal\n",
" * voorlichting, vragen (forum)\n",
" * (klein) onderhoud\n",
"* gebruikersgroep Databases\n",
" * uitwisselen van ervaring\n",
" * feedback op materiaal\n",
" * vragen"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "xsqlite",
"language": "sqlite",
"name": "xsqlite"
},
"language_info": {
"codemirror_mode": "sql",
"file_extension": "",
"mimetype": "",
"name": "sql",
"version": "3.33.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}