This repository contains materials for the "Next Generation Data Science Education with WebAssembly Technologies" presentation from the PyOpenSci Fall Festival 2024. The presentation demonstrates how to create interactive, explorable data science education materials using WebAssembly technologies.
- Event: PyOpenSci Fall Festival 2024
- Date: November 1, 2024
- Slides: View Online
- Demo Course: View Online and Source.
- Social Discussion: Bluesky, Mastodon, LinkedIn, Twitter.com/X.com
This talk explores how modern data science education can be transformed through active learning principles and explorable explanations, focusing on interactive elements with immediate visual feedback for personal discovery.
These interactive environments are created by combining:
- Pyodide: Python in the browser without a server
- Observable: Interactive JavaScript for data exploration
- Quarto Live: Interactivity in notebooks
- Quarto Drop: In-slide IDE capabilities
The presentation includes several interactive demonstrations:
- Linear Function Explorer: Visualize how parameters affect a linear line
- Histogram Bin Adjuster: See how bin counts affect distribution visualization
- K-means Clustering: Configure cluster counts and observe grouping patterns
- Contingency Table Analysis: Interactive biostatistics demonstration
- Pendulum Physics: Explore motion by adjusting parameters
- Palmer Penguins Explorer: Interactive dataset visualization
- Programming Examples: Both structured and unstructured approaches
- Quarto (latest version)
- Create a Quarto Project
- Install required extensions:
quarto add r-wasm/quarto-live quarto add r-wasm/quarto-drop
- Add this YAML header to your document:
---
format:
live-revealjs:
scrollable: true
smaller: true
drop:
engine: pyodide
packages: ['matplotlib', 'numpy', 'pandas', 'seaborn']
pyodide:
packages: ['matplotlib', 'numpy', 'pandas', 'seaborn']
revealjs-plugins:
- drop
---
Please run the following commands in Terminal.
-
Clone this repository:
git clone https://github.com/yourusername/pyopensci-next-gen-ds-education-with-wasm-technologies.git cd pyopensci-next-gen-ds-education-with-wasm-technologies
-
Install/update the required Quarto extensions:
quarto add r-wasm/quarto-live quarto add r-wasm/quarto-drop
-
Preview the presentation:
quarto preview index.qmd
- Not all Python or R packages work in WebAssembly versions of the languages
- Browser or mobile device memory limits affect large computations
- Initial load times can be significant
- Limited debugging capabilities
- Restricted file system access
-
WebAssembly Technologies:
-
Document Authoring:
- Quarto: Scientific publishing system
- Official Posit-supported WebAssembly Backend
- Community versions:
- quarto-pyodide: Python extension for Quarto
- quarto-webr: R extension for Quarto