ContentGen is a JupyterLab extension available on PyPI that generates context-aware practice questions and summaries directly within notebooks. Developed at the Data Science Teaching & Learning Lab at UC San Diego, it supports instructors by embedding dynamic, AI-generated content into the notebook workflow. The extension includes a pip-installable Python backend and a TypeScript frontend connected through custom HTTP handlers.
This project accompanies the paper “Improving LLM-Generated Educational Content: A Case Study on Prototyping, Prompt Engineering, and Evaluating a Tool for Generating Programming Problems for Data Science.”
Please cite this paper if you used the code, dataset, or prompts in this repository.
Jiaen Yu, Ylesia Wu, Gabriel Cha, Ayush Shah, and Sam Lau. 2026. Improving LLM-Generated Educational Content: A Case Study on Prototyping, Prompt Engineering, and Evaluating a Tool for Generating Programming Problems for Data Science. In Proceedings of the 57th ACM Technical Symposium on Computer Science Education V.1 (SIGCSE TS 2026), February 18–21, 2026, St. Louis, MO, USA. ACM, New York, NY, USA, 7 pages. https://doi.org/10.1145/3770762.3772619
@coming_soonTo install the latest release from PyPI:
pip install contentgenThen launch JupyterLab:
jupyter labOpen the ContentGen sidebar and enter your API key to start generating content.
- Go to Google AI Studio and create an API key.
- Copy and store your key securely.
- Launch JupyterLab, open the ContentGen sidebar, and paste the key when prompted.
- ContentGen on PyPI: official Python package for installing the ContentGen extension.
- Public GitHub Repository: open-source version of the extension’s codebase.
- Prompt Templates: backend prompts used for content generation.
- Example Notebooks: demonstration notebooks showing typical usage; dependencies listed in requirements.txt.
- Evaluation Dataset: anonymized dataset used in our study for evaluating generated content quality.
To run the example notebooks locally:
- Clone this repository:
git clone https://github.com/dstl-lab/ContentGen-demo.git cd ContentGen-demo - Install dependencies:
pip install -r requirements.txt
- Launch JupyterLab:
jupyter lab
- Open the notebooks in
example_notebooks.
You can then explore the notebooks interactively and utilize the ContentGen extension within JupyterLab to generate AI-assisted teaching content.
This project was developed as part of the Data Science Teaching & Learning Lab at UC San Diego, led by Professor Sam Lau.
Contributors: Ylesia Wu, Ayush Shah, Gabriel Cha, and Jiaen Yu.
We thank the lab members for their feedback during development of the tool.
Sam Lau
GitHub: @SamLau95
Email: sel011@ucsd.edu
Jiaen Yu
Website: jiaenyu.com
GitHub: @yujiaen1999
Email: jiy037@ucsd.edu
Ylesia Wu
GitHub: @ylesia-wu
Email: xw001@ucsd.edu
Ayush Shah
GitHub: @Ayush1124
Email: ajshah@ucsd.edu
Gabriel Cha
GitHub: @gabrielchasukjin
Email: gcha@ucsd.edu