An Introduction to Programming

Python for All

A beginner-friendly, hands-on, free Python course where you learn step by step by running real code in your browser.

Thanasis Troboukis  ·  troboukis[at]gmail[dot]com  ·  troboukis.github.io

Why Learn Python?

As we move into a new era in which humanity will be called upon to interact ever more frequently with artificial intelligence systems, the need for a basic understanding of how they function becomes increasingly urgent. This is not a technical luxury, but a fundamental requirement of digital literacy.

Artificial intelligence models are trained on vast volumes of data, including text, images, and other forms of human knowledge. Through this process, they learn to recognize patterns, categorize information, and generate responses in ways that often resemble human communication.

Acquiring foundational programming skills can act as a catalyst. It allows us not only to meaningfully approach the world of computer science, but also to demystify the very concept of artificial intelligence. Free from exaggerations and fear-driven narratives, we can assess with clarity both the historically significant benefits and the very real risks.

At a time when a narrow technological elite develops AI models under limited oversight and ambiguous regulatory frameworks, society must possess the cognitive tools needed to participate substantively in the conversation. Understanding is not merely knowledge; it is a prerequisite for democratic accountability.

Python is one of the most popular programming languages in the world. It is known for its clear syntax, readability, and practical use in many areas such as data analysis, automation, web development, and artificial intelligence.

This course is designed for beginners. You will learn by reading short explanations and running code directly in your browser, step by step.

This application was inspired by my experience learning Python from Jonathan Soma as a Stavros Niarchos Foundation Fellow in 2018 in the LEDE program at Columbia Journalism School.

By The End Of This Course, You Will Know How To

  1. Write Python programs using variables, strings, numbers, lists, dictionaries, loops, conditions, and functions — and read code written by others with confidence.
  2. Use the terminal to navigate your file system, manage files and folders, search inside datasets, and run scripts from the command line.
  3. Build HTML pages — structure content with semantic markup, style it with CSS, embed charts and media, and publish your work online for free.
  4. Analyse data with Python — load, clean, filter, and summarise datasets using libraries like pandas, and turn raw numbers into findings.
  5. Scrape websites — use Python to extract structured data from web pages, identify HTML elements with CSS selectors, and automate data collection at scale.
  6. Communicate through APIs — send requests to external data services, parse JSON responses, and integrate live data into your work.
  7. Create maps — build interactive and static maps to visualise geographic data, plot locations, and tell spatial stories.
  8. Use JavaScript and D3 — learn the essential JavaScript you need and build custom data visualisations with the D3 library.
  9. Build and publish your web app — package your data-driven investigation as a self-contained web application and host it online for free.
Goal: build the full technical toolkit of a modern data journalist — from the command line to the published page.

Take a slow, deep breath and

Start The Journey

Begin with Chapter One and progress step by step.