About this course
This is the course material page for the Introduction to Programming for Digital Humanities course at the University of Helsinki, held by Eetu Mäkelä.
The course teaches the basics of Python programming for humanities students. Python is a widely-used programming language in digital humanities.
Should you learn programming in 2026?
In the last year, AI agents have completely transformed how programming is done. Now, you can create, for example, fully complete, interactive visual analytics dashboards for something that interests you just by asking an AI agent to do it, without needing to ever write or read a single line of code.
This remarkable capability completely undermines the traditional understanding of whether a digital humanist should learn to code. Earlier, it was clear that being able to program enabled you to do things that you could not do otherwise. Now, however, you can do almost anything by describing what you want to accomplish on a functional level, and having the AI agent write the code to do that for you. Thus, there is a strong argument that you would not need to learn programming at all any more.
At the same time, there are some compelling arguments for why being able to read and modify code is still useful. An agent can explain and audit its work, but that explanation is still just a claim about the implementation. Understanding programming lets you inspect the changed code and its surrounding structure as primary evidence of what was implemented, and how it behaves. It also helps you describe desired changes to the agent precisely and decide whether an agent changed the relevant parts without introducing unrelated work.
Thus, understanding at least the fundamentals of programming is still probably useful also in the future - and these are exactly what this course teaches. At the same time, the course also explicitly builds toward using AI agents to assist in both understanding and writing programs. However, it doesn't go very far in this direction. Instead, the idea is that after the course, you should be able to continue your learning in a directed manner, by selecting and completing more focused courses, reading online tutorials etc.
To help you decide whether it is worth taking this course, Part 0 first lets you experience how remarkably much an agent can build for you before you know how to code. A worked modification then gives an example where the model makes a mistake in its modification while claiming it is correct. This gives the course a concrete question to return to: what can you establish from the changed program itself, beyond asking the agent to explain it?
Important note: this course has been heavily revised in 2026 to include the latest developments in AI-assisted programming. I did not make this decision lightly, as the course is an intricate piece of work with interactive exercises where changing parts can make automated tests fail and cause all kinds of other issues as well. However, I felt that the changes in the programming landscape were so fundamental that a significant update was still warranted. What this means for you though is that some things are very liable to just not work as intended. So, if you encounter any problems or sources of confusion the AI tutor is not able to immediately clear up, please let me know as soon as possible through the Slack support channel described below!
Learning goals
The target group of the course are people who are complete beginners in programming, and the course teaches just the basics, with a view to enabling the student to participate in follow-up courses and tutorials.
In more detail, after the course, the student is able to:
- Understand what programming is
- Parse what (relatively simple) programs do by reading their code
- Have a rudimentary understanding of the kinds of things done through programming in the digital humanities and data science
- Use AI agents to write and modify code, and inspect the resulting implementation and behavioural evidence
- Based on the above, be able to deepen their knowledge in a directed manner by selecting and completing more focused courses, reading online tutorials etc.
Course structure
The course bases heavily on the Python Programming MOOC developed at the Department of Computer Science at the University of Helsinki. This means that in practice, the course mainly consists of online self-study exercises coupled with a support channel. The reason for this is that active self-study has been shown by research to be the most effective way to learn programming. Importantly, this also means that these two courses are exclusive. If you've already completed one, you shouldn't take the other.
How the course differs from the CS MOOC is 1) in framing, which is tuned specifically to people coming from the humanities and 2) after week four, also in contents. In the first four weeks, you will learn the fundamental concepts. After that, it makes sense to tune also the contents a bit to match the type of work done in digital humanities and data science.
A second major departure from the CS MOOC is the explicit, reasoned inclusion of AI tools. Part 0 begins with agent-first programming and explains how this is combined with manual practice and later agent collaboration; a separate AI tutor is available for conceptual help.
For another summarisation of what the course is about, the slides from the introductory session for 2025 are here. A recording of the session itself is available here, although both of these resources concern the version before this year's full AI agent update.
Support channels on the course
Support on the course is given through a Slack channel. To access this, join the dhintros Slack and add the channel #dh-programming-2026.
Support is given based on the following principles:
- Before you ask for support on Slack, you need to have done the following:
- Googled for any error messages the program gave you and tried to resolve the problem using the information gained from the pages returned by your search.
- Copy-pasted the problem and the error to the course AI tutor, and tried to resolve the problem using its help.
- You need to ask for help on the common Slack channel, not via a private message. This way, others can also benefit from the answers.
For the first four weeks, you may also want to check out the support offered by the Python Programming MOOC, particularly their Discord server.
Additional resources
Note that none of the below is required reading for the course! However, often it's helpful to see the same thing explained in multiple ways. So, these are provided for you to try and see if they're useful to you!
Fundamental concepts of programming for humanists
The Computational Literacy course has one week on the fundamental concepts of programming for humanists, which tries to cram the absolute fundamentals into as minimal a space as possible. As it can be often helpful to see the same thing explained in multiple ways, you might want to check it out (additionally, students from previous years have reported this to be actually useful).
Lecture recordings
These lectures are originally made and used in the course "Introduction to Programming" from the Department of Computer Science at the University of Helsinki. See the course page for that course for more information.
| Part | Recording | Slides |
|---|---|---|
| Part 1 (2025) | Recording 04.09.2025 | Slides |
| Part 2 (2025) | Recording 11.09.2025 | Slides |
| Part 3 (2025) | Recording 18.09.2025 | Slides |
| Part 4 (2025) | Recording 25.09.2025 | Slides |
| Part 5 (2025) | Recording 02.10.2025 | Slides |
| Part 6 (2025) | Recording 09.10.2025 | Slides |
| Part 7 (2025) | Recording 16.10.2025 | Slides |
| Part 8 (2025) | Recording 30.10.2025 | Slides |
| Part 9 (2025) | Recording 06.11.2025 | Slides |
| Part 10 (2025) | Recording 13.11.2025 | Slides |
| Part 11 (2025) | Recording 20.11.2025 | Slides |
| Part 12 (2025) | Recording 27.11.2025 | Slides |
| Part 13 (2025) | Recording 04.12.2025 | Slides |
| Part 14 | No recording, project work |