nl en

Introduction to Python Programming


Admission requirements

  • BA or BSc degree in Archaeology or a closely related discipline;

  • No knowledge of programming is required.


Python is a high-level, general-purpose programming language. It is suitable for many applications, ranging from digital humanities to engineering. In archaeology, Python can be used for advanced visualisation.
Most common database structures can be connected to and managed by Python. The language is especially powerful in GIS applications; users can drastically enhance the capacity of their GIS projects.
Finally, artificial intelligence (AI) paradigm is making use of the flexibility of Python.

Future students of digital archaeology will require having basic coding skills. Furthermore, information technologies constitute the core part of our modern life. Therefore, future generations need to gain critical thinking towards coding and understand how coding bias, violation of ethical rules, and other “non-visible” issues can negatively affect not only scientific practice but everyday lives.


  • Week 1: Introduction to Python: Syntax, debugging, comments

  • Week 2: Data structures: strings, integers, boolean values, lists, sets, tuples, dictionaries

  • Week 3: Control structures: for, while, if-else conditions

  • Week 4: File handling

  • Week 5: Functions

  • Week 6: Data visualisation

  • Week 7: Data analysis

Course set-up

  • Lectures: Students learn about data and control structures;

  • Lab: Lecturer provides hands-on coding tutorials in the lab;

  • Self-paced progress: Students use the information they gained during contact hours to make progress in lab assignments and individual projects.

Students are encouraged to use their personal computers. In the first week, the lecturer will introduce Spyder, the scientific Python development environment.

Course objectives

  • To learn the fundamentals of programming. Therefore, the objective is to equip students with skills so that they can also teach themselves other computer languages;

  • To practise programming using Python. At the end of the course, students will be able to perform simple but powerful computational tasks in their studies;

  • To gain the capacity for reimagining archaeological research from a computational perspective and to apply coding solutions;

  • To gain digital literacy and to be able to assess and highlight explicit or implicit biases in data and algorithms. Lecturers facilitate this objective through critical reading assignments.


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;

  • Laboratory work;

  • Self-guided work.

Course load

  • 7 x 2 hours of lectures + hands-on practice (1 ec);

  • 7 x 2 hours of laboratory work (1 ec);

  • Final project (2 ec);

  • Weekly lab assignments (1 ec).

Assessment method

  • Weekly lab assignments (60%). Starting by the second week, the lecturer will assign a mini coding project to the student (10%).
    All six assignments should be submitted to get a grade;

  • Final project (40%).
    By the end of the second week, students will pick a basic computational research topic. The course schedule ensures weekly progress in the final project. Students will submit their project codes and reports.

Only the final project is open for a retake.

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.

  • Weekly assignments are due each week;

  • Final project: due in week 8/reading week.

All due dates are Sunday 23:30 hrs, students get -3 penalty for each day overdue.

Reading list

Starting by the second week, research master students answer an open-ended question in the discussion board. Provocative questions challenge students in their understanding of digital archaeology, and humanities in general.

  • Huggett J., "Challenging Digital Archaeology", in: Open Archaeology. 2015:1, 79-85;

  • Garcia M., "Racist in the Machine: The Disturbing Implications of Algorithmic Bias", in: World Policy Journal. 2016, 33(4):111-7;

  • Beer, D., "The Social Power of Algorithms", in: Information, Communication & Society, 2017:20(1), 1-13;

  • Kitchin R., "Big Data, New Epistemologies and Paradigm Shifts", in: Big Data & Society. 2014:10, 1-12;

  • Kitchin R., & Lauriault T.P., "Small Data in the Era of Big Data", in: GeoJournal. 2015:80(4), 463-75.


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.

Exchange and Study Abroad students, please see the Prospective students website for information on how to apply.

All information (costs, registration, entry requirements, etc.) for those who are interested in taking this course as a Contractstudent is on the Contractonderwijs Archeologie webpage (in Dutch).


For more information about this course, please contact dr. T. (Tuna) Kalayci.


  • Attendance is not compulsory, but strongly recommended: preparing the final project (40%) and solving lab problems (60%) relies on class participation;

  • The mode of instruction will be adjusted depending on COVID-19 measures;

  • The maximum number of students is 15, priority will be given to Archaeology students;

  • Students are expected to work on their own laptop computers in the class. If you do not have access to a computer, please inform the instructor.