nl en

Introduction to Programming for Archaeologists


Admission requirements

  • Exploratory Data Analysis in Archaeology obtained;

  • This is a seminar with a limited amount of participants (max. 20 students), and is meant for Archaeology students exclusively;

  • This is not an optional course for the Archaeology BA3 programme. If you want to take this course as an extra-curricular course in your programme, you should ask permission from the Board of Examiners. You can only be admitted with permission, with proper argumentation, and only if there are spots left.


Digital techniques, and programming in particular, are becoming more and more important within archaeology. As science as a whole is shifting more towards these computational approaches, it is useful to get a basic understanding of what programming is, and how we can apply it to archaeology.

The aim of this course is to provide basic programming skills in Python and SQL that are useful to archaeologists. We will focus on performing statistics on archaeological datasets and performing (geospatial) analyses.

During the course, you will learn about, and practically work with, the essential components of programming: variables, lists, loops, functions, dataframes and external libraries. We will also briefly revisit database structures, and then query those databases using SQL, where you will learn SELECT statements with GROUP, SUM, JOIN and more. We will also briefly touch upon more advanced methods, such as machine learning and QGIS integration.

After you have completed this course, you will have a broad understanding of programming in archaeology, which will help with more advanced coding courses.
It also prepares you for using code in your own research, for example if you want to use Python to extend the functionality of QGIS, or if you want to query databases.

Course set-up

Each session starts with a presentation introducing a topic (e.g. programming, Python syntax, SQL) and is followed by a practical exercise about that topic.
At 3 points in the course there will be a short assignment where you will apply the subject matter to a use case.

Course objectives

At the end of the course, students will:

  • Have general knowledge of the basic concepts of programming and the application of coding in archaeology;

  • Be able to read, understand and write basic code in Python;

  • Be able to read, understand and write basic SQL statements for database manipulation;

  • Understand for what purposes programming is useful in archaeology.


Course schedule details can be found in MyTimetable.
Log in with your ULCN account, and add this course using the 'Add timetable' button.

Mode of instruction

  • Lectures;

  • Practical exercises;

  • Essay writing.

Assessment method

  • 3 practical assignments (45%);

  • Final exam (55%).

Each of the assignments is worth 15% of the final grade. These practical assignments will consist of writing code to solve a specified problem, combined with a short (500-word max) essay explaining the chosen methods and code.
Each assignment will have 3 levels; completing the first level adequately will grant a 6, the second level a 7 to 8 and the third level a 9 to 10.

There will be a paper exam with open and multiple choice questions, which can be retaken in case of a fail.

Assessment deadlines

All assessment deadlines (exams, retakes, paper deadlines etc.) can be found in MyTimetable.
Log in with your ULCN account, and add this course using the 'Add timetable' button. To view the assessment deadline(s), make sure to select the course with a code ending in T and/or R.

Each assignment is due 2 weeks after assignment.

Reading list

S. Graham, N. Gupta, J. Smith, A. Angourakis, A. Reinhard, K. Ellenberger, Z. Batist, J. Rivard, B. Marwick, M. Carter, B. Compton, R. Blades, C. Wood, & G. Nobles (2020), "Statistical Computing with R and Python", in: The Open Digital Archaeology Textbook.


Registration start dates for the BA2 seminars differ from the registration dates of the regular courses.

Registration will take place with the use of Jotforms, which will be e-mailed to all BA2 students shortly.


For more information about this course, please contact A. (Alex) Brandsen Msc or drs. M. (Milco) Wansleeben.


  • Compulsory attendance;

  • Students are required to use their own laptops/computers for the practical exercises.