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, R 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.

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 do statistics in R.

Course set-up

In the first lecture, programming in general is introduced, with a focus on archaeological use cases.
In the next 2 lectures, Python is introduced, followed by an assignment on the same topic. This is repeated for R (lectures 4 & 5) and SQL (lectures 6 & 7).

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 and R;

  • 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.

Course load

  • 7 hours of lectures (0.5 ec);

  • 35 hours of practical exercises (2.5 ec);

  • 140 pages of literature (1 ec);

  • 3 essays, total of 1,500 words (1 ec).

Assessment method

  • 3 practical assignments (45%);

  • Final exam (55%).

Each of the assignments is worth 15% of the final grade. There will be an assignment for each main section: Python, R and SQL. 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 in uSis is mandatory. You can register for this course until 5 days before the first class.

Registration in uSis automatically leads to enrollment in the corresponding Brightspace module. Therefore you do not need to enroll in Brightspace, but make sure to register for this course in uSis.

You are required to register for all lectures and tutorials well in time. The Administration Office registers all students for their exams, you are not required to do this in uSis.

Start registration for the BA2 seminars:

  • Series 1: 27 September 2021, 07:00 hrs

  • Series 2: 17 January 2022, 07:00 hrs

  • Series 3: 28 February 2022, 07:00 hrs


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.