Skip to content

coatless-talks/pyopensci-next-gen-ds-education-with-wasm-technologies

Repository files navigation

Next Generation Data Science Education with WebAssembly Technologies

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.

Presentation Details

Overview

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.

Technologies Used

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

Interactive Examples

The presentation includes several interactive demonstrations:

Create Your Own Documents

Prerequisites

Quick Start

  1. Create a Quarto Project
  2. Install required extensions:
    quarto add r-wasm/quarto-live
    quarto add r-wasm/quarto-drop
  3. 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
---

Run This Presentation Locally

Please run the following commands in Terminal.

  1. 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
  2. Install/update the required Quarto extensions:

    quarto add r-wasm/quarto-live
    quarto add r-wasm/quarto-drop
  3. Preview the presentation:

    quarto preview index.qmd

Limitations

  • 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

Resources