Programming with LLMs for Data Practitioners

Illustration of a person coding alongside an AI assistant

Welcome

These are the materials for a two-day workshop at the 50th Summer Institute of Applied Statistics (SIAS) at Brigham Young University on 17-18 June 2026, taught by Julia Silge. The workshop is split into two days:

  • Day 1, Build on AI: programming with large language models (LLMs) from R and Python using ellmer and chatlas, covering prompts, token management, structured output, tool calling, retrieval-augmented generation (RAG), and Shiny chat interfaces.

  • Day 2, Build with AI: using AI coding assistants effectively as a data practitioner, centered on Posit Assistant. Working from a real dataset, we climb from in-editor help (completions, chat, debugging) to steering an agent (plans, project memory, skills, and MCP) to autonomous, reproducible workflows.

No prior AI background is required; the workshop is built for both newcomers and experienced data practitioners.

Learning objectives

At the end of this workshop, participants will understand how to:

  • Call LLMs from R and Python using ellmer and/or chatlas.
  • Design effective system prompts and reason about token usage, history, and cost.
  • Use structured output and tool calling to make LLMs reliably interact with data and other systems.
  • Build retrieval-augmented generation (RAG) workflows and wrap LLM-powered features into Shiny apps.
  • Choose between inline, chat, and agentic AI coding assistants and use each one effectively.
  • Maintain control of AI-assisted code through good context, tests, and plans.

Preparation

We will be working locally during the workshop, so please come with a laptop that has the following installed (all available for free):

  • A recent version of Positron, or optionally if preferred, RStudio
  • A recent version of Python and/or R
    • For Python, create a virtual environment for the workshop such as via uv venv
  • Clone the workshop repo to the laptop you will bring to the workshop
  • Posit Assistant, which is included in recent Positron builds and the RStudio dailies
  • uv
    • This is the easiest way to install and manage Python
    • We’ll use this tool on Day 2 to run a small local MCP server for the assistant, so try to get it installed even if you are only planning on using R for data analysis
  • Install the packages needed for the workshop:
    • For Python, install the packages listed in requirements.txt such as with uv pip install -r requirements.txt
    • For R, install the packages listed in DESCRIPTION such as with pak::local_install_deps()

You will also need API credentials for at least one LLM provider; we will make an API key available for folks who do not have one.

Schedule

Code files for working along are available on GitHub.

Wednesday, 17 June 2026: Build on AI

Time Activity
09:00 - 10:10 Talking with LLMs via code
10:10 - 10:30 Break
10:30 - 11:45 Programming with LLMs
11:45 - 13:30 Lunch
13:30 - 14:40 Prompt engineering and RAG
14:40 - 15:00 Break
15:00 - 16:15 Beyond prompts

Thursday, 18 June 2026: Build with AI

Time Activity
09:00 - 10:10 Intro to AI coding assistants
10:10 - 10:30 Break
10:30 - 11:45 Working in your editor
11:45 - 13:30 Lunch
13:30 - 14:40 Steering and extending
14:40 - 15:00 Break
15:00 - 16:15 Agentic workflows

Instructor bio

Julia Silge is a data scientist and engineering manager at Posit PBC, where she works on open source software for data science in Python and R. She is an author, an international keynote speaker, and a real-world practitioner focusing on data analysis and machine learning. Julia loves text analysis, making beautiful charts, and communicating about technical topics with diverse audiences.

Credits

Illustrations throughout the workshop materials are from unDraw and used under their license.

The Utah crash dataset is from the Utah Open Data Portal.

Demos build on work by Garrick Aden-Buie and are MIT licensed.