Training for clinical and data programming teams
Programming skills that survive an audit
Four practical, project-based courses covering R, Shiny, Python and clinical programming with the pharmaverse. Written for statistical programmers, data scientists and biostatisticians who have to produce work that is reproducible, reviewable and defensible.
Course portfolio
Course 01 · Foundation
R Programming
The language from the ground up: objects, vectors and data frames, importing SAS and Excel data, dplyr and tidyr, functions and tidy evaluation, debugging, testthat, package development and Git.
Course 02 · Applications
R Shiny
Build applications people actually use: reactivity done properly, modules, dynamic UI, tables and plots, uploads and downloads, authentication, automated testing, deployment and production architecture.
Course 03 · Second language
Python
Python for people who already think in data: fundamentals, NumPy, pandas, clinical datasets, statistical analysis, machine learning, TLF generation with rtflite, deployment — and generative AI from prompting to agents.
Course 04 · Flagship
Clinical Programming with R
The full submission pipeline in R: study folder structure, SAS7BDAT and XPT, SDTM, ADaM with admiral, metadata-driven programming, TLFs with r2rtf and Tplyr, validation, define.xml, xportr, pharmaverse workflows and SAS-to-R migration.
How these courses are built
Every lesson is a working example
Code is complete and runnable, not fragments. You can copy a lesson into RStudio and it will do something useful on the first try.
Exercises with worked solutions
Each lesson ends with graded exercises. Solutions are collapsed so you can attempt the problem first, then compare approaches.
Written for regulated work
Reproducibility, traceability, validation and review are treated as first-class concerns rather than an afterthought bolted on at the end.
SAS translations throughout
If you are coming from SAS, side-by-side comparisons show what the equivalent R idiom is and — more importantly — where the equivalence breaks down.
Suggested learning paths
| If you are… | Start here | Then | Then |
|---|---|---|---|
| A SAS programmer moving to R | R Programming | Clinical Programming with R | R Shiny |
| A statistician who writes analysis code | R Programming | R Shiny | Python |
| A data scientist adding clinical domain skills | Clinical Programming with R | R Programming (lessons 8–12) | — |
| Building internal tools for a study team | R Programming | R Shiny | Python |
| Standardising a team on one toolchain | Clinical Programming with R | R Programming | Training options |
Where to go next
- New to R entirely → R and RStudio setup
- Already comfortable with
dplyr→ Functions and tidy evaluation - Need to read a
.sas7bdatfile today → Reading SAS7BDAT and XPT files - Your Shiny app has become unmaintainable → Modules
- Looking for team training → Training options