Data Science: Programming with Python

Course code
Course fee (excl. housing)
Course Level
Advanced Bachelor

Python has become the dominant programming language used in data science. This course offers an introduction to computational thinking about data-related problems and the implementation of data analysis programs with Python. It starts at the very basics and is explicitly intended for students who have no or only little programming experience.

Programming is the process of designing and building an executable computer program for accomplishing a specific computational task. The course will introduce you to programming with Python, which is currently one of the most popular programming languages in (data) science. After familiarization with the basics (input and output, variables, data types, data structures, conditional branching, loops, functions, etc.) the course will address specific data science topics, such as statistical analyses with the pandas package and data visualization with matplotlib.

The course will take 5 full days. A typical course day starts at 9.00 and ends at 17.00 with breaks for coffee, lunch and tea (provided on location). The course is offered hybrid, meaning that it can be taken both on location and online.

Every day, short lectures will be combined with practicals, where students can practice with example datasets that will vary over the course of the week. In the afternoon, students will work in small project groups on applying the lessons of the day to a real-life dataset.

More details on the day-by-day programme can be found in a separate file. Broadly, the following topics are discussed:

Day 1: getting started, the programming environment, editing and running Python programs, input and output, variables, arithmetic expressions, conditional branching

Day 2: loops, functions, the standard library, data structures

Day 3: file I/O, data frames, statistical analyses with the pandas package

Day 4: data visualization with matplotlib, matrix computations with numpy, PyPI as source of further functionality

Day 5: introduction to object-oriented programming, error handling, best practices for software project management

Course credits of 1.5 EC are offered to students who attend meetings every day, actively participate in the exercises and participate in the presentations of the group assignments on the final day of the course.

The course will use freely available literature that will be made available to course participants during the course. The literature serves both as a practical guide to course materials, and more in-depth reading that can be done during or after the course.

Participants are requested to bring their own laptop computer. Software will be available online.

Download the day-to-day programme (PDF)
Course director
Peter Lugtig


dr. Anna-Lena Lamprecht, dr. Anastasia Giachanou

Target audience

The course requires no specific previous knowledge, in particular no prior programming skills. You will need to bring your own laptop to do the exercises. Any operating system (Windows, Mac OSX, Linux) is fine, as long as new software can be installed on the machine. We assume that you have elemental computer skills such as browser usage, storing files, installing programs, etc.

Aim of the course

After finishing the course successfully, you will be able to:

  • think computationally about data-related problems
  • design programs for specific computational tasks
  • write Python programs for specific computational tasks, including, e.g., asking and reading input from the user, loading data from files, preprocessing and analyzing data, performing calculations, simulating processes, visualizing data and results, storing data and results into files
  • validate Python programs for correct functioning
  • document and describe Python programs


Course fee:
Fee covers
Course + course materials
Housing fee:
Housing cost
Housing provider:
Utrecht Summer School
Extra information about the fee

You can choose between two options for participating in this course, but please note that there is always the possibility that we have to change the course pending COVID19-related developments: 

  1.  If you choose the livestream option, you will get a discount on the course fee since we will not provide lunch then. The lectures will be broadcasted in Central European Summer Time via a livestream (not recorded). Participants can ask questions via the chat which will be moderated by a second lecturer who will either directly answer your questions via the chat or ask your questions to the first lecturer during class. You will also receive online support during the group computer labs from our team. Additionally, Q&A sessions will be organised so you will benefit from our normal high level expertise while enjoying the class from the comfort of your own chair.
  2. If you choose the campus option, you will be able to attend the lectures and computer labs at our campus. Of course, we will follow all COVID19-guidelines that hold at the time of the start of your course. We will keep you updated about the newest developments (see also

If you are interested in the campus option, let us know via a message in the application form under ‘Student Comment’.

The physical course costs €720, but if you participate via the livestream you will get a 100 euro discount. 

Tuition fee for PhD students from the Faculty of Social and Behavioural Sciences from Utrecht University will be funded by the Graduate School of Social and Behavioural Sciences.

For students who are taking this course as a prerequisite for entering the Master ‘Applied Data Science’, we offer a course discount of 200 euros. If you are an ADS student, please mention this at your application so we can charge you the reduced fee.

More information

Irma Reyersen | E:

For frequently asked questions about how we organize our summer school courses during the pandemic, please click here


Application deadline: 
Registration deadline
09 August 2021