The Centre for Investigative Journalism
The Centre for Investigative Journalism
Menu

Data Journalism: Beyond Vibe Coding – Python Essentials 1-2. Hands-On. [B-I]

Hands-on. Beginner [B]-Intermediate [I]. See each session for the details.

This two-part series introduces participants to the power of Python, by journalists, for journalists. We’ll help you take your first steps on the road to code, from the very basics, to working with giant spreadsheets, to extracting structured data from the web.

No prior coding experience is required and participants will receive workbooks to continue practising in their own time. A laptop with read/write or admin permissions is required for all sessions.

 

Session 1: Python 101 & Pandas Power [B/I]
Vibe coding — the idea that you can genAI your way to being a journo-coder — is a great concept…until it spits code that doesn’t work and you have no idea why. This session covers the Python foundations that make you a confident, critical user of AI-generated code rather than a hostage to it.

We’ll work through the core building blocks (variables, lists, dictionaries, error handling and the all-important for loop), showing you where genAI tools genuinely help and where they make more work than they solve.

We will also cover real-world data wrangling with Python’s Pandas library – a power tool to allow you to load, sort and filter datasets of over a million rows, making datasets that crash Excel a thing of the past.

No prior coding knowledge or specialist software is required. Participants will receive a workbook to use as a reference and practice tool after the session ends. Suitable for beginners or as a refresher for intermediates.

Session 2: Scraping Data with Python [I]
When the data you need is right there but you don’t know how to get your hands on it, Python has two powerful answers.

APIs — gateways to data increasingly used by government, health authorities and many other sites — are often the cleanest and most underrated way to pull structured data directly from a source. We’ll show you how to use Python to structure your queries to return the data you need — how to make API calls, handle authentication and use Pandas (see the session 1 description) to turn the output into something usable.

When there’s no API available and the data you need is sitting right there on a webpage with no download button in sight, scraping is your answer. It’s one of those tasks where genAI can get you 80% of the way there and then fall apart (sometimes spectacularly so!).

We’ll show you how to gather structured data spread across multiple web pages, and how to understand and adapt AI-generated code when things go wrong. Basic familiarity with Python is recommended, whether from session 1 or prior experience. Participants will leave with a working understanding of both approaches and a workbook to refer back to when the vibe coding lets you down. Suitable for intermediates, or beginners who have attended session 1.

Technical Requirements

Participants will require a laptop with read/write or admin permissions.

25 June 2026 –

14:10–15:10
Session 1: Python 101 & Pandas Power [B/I]
15:30–16:30
Session 2: Scraping Data with Python [I]

Max Harlow

Max Harlow is a data reporter at Bloomberg News. He also runs Journocoders, a community group for journalists to develop technical skills for use in their reporting.

Pamela Duncan

Pamela Duncan is the former editor of the Guardian's Data Projects team, an occasional award-winning journalist (#humblebrag) and a self-confessed data nerd. She is at her happiest (professionally at least) when poring over spreadsheets and using her coding skills – usually a combination of scraping, regex and pandas/Python – to build and analyse datasets to produce high quality and exclusive data stories.
  • 25 June 2026 14.10–16.30
Location: PSH 314
Course
Beginner
Intermediate
Coding
Data