Scientific Programming

Learn to program in Python and use your skills in scientific projects

What is Scientific Programming about?

Scientists use computation to simulate real-world scenarios, to mine data obtained in large-scale studies, and to gain insights that might otherwise stay hidden. A bit of programming knowledge and a couple of basic techniques are all that you need to get better and faster results. Our courses below help you learn Python, a language now often used in science, as well as many techniques that you can use in your own projects. Whether you're a student or a seasoned researcher, you're welcome to learn with us!

How we teach

The courses are self-contained and allow you to progress by studying programming theory and... writing many programs! All problems are small versions of real scientific computing challenges. Later, you'll progress towards defining, designing and implementing larger projects. When registered, you get access to the tutorials where we are available to help you. And you will get access to an online a forum where students may post questions and answers.

Taking for credits

Our courses are available to take online for free by following the links to the course websites, below. If you would like to have access to tutoring opportunities or take the courses for credit, you may officially register as a student as described below. If you register and then hand in all assignments and take the relevant exams, you can earn course credit (ects). If you'd like to use this credit as part of your diploma, please ask your program's study adviser for help in transferring credits.


Follow the links below to have a look at any of the courses. You can immediately start practicing if you'd like! You might also consider registering to earn credit or a certificate.

Scientific Programming 1

Workload: 80 hours / Course code: 50621SCP3Y

In this course you’ll learn Python, a programming language that is increasingly used by scientists from all fields of study. We focus on the absolute basics of programming, which you will learn while doing programming problems from several scientific areas.

Scientific Programming 2

Workload: 80 hours / Course code: 50622SCP3Y

This course continues the problem solving curriculum from Scientific Programming 1. You’ll work on larger programs and get to know Python a lot better, so you get ready to learn more programming techniques on your own.

Data Processing

Workload: 160 hours / Course code: 5062DAPR6Y

In this course you’ll build your own toolkit of useful programs with which you can read, transform and analyse data that you might find in various scientific areas. Before starting this course, you need a thorough understanding of Python!


You can earn a certificate or course credit by registering one or more of the courses. Enrolling officially also connects you to the community of students and teachers for our courses. Generally, you can plan to do any of our courses between September–December (must finish by December 15th) and February–May (must finish by May 15th).

  • Are you a regular UvA bachelor's or master's student? You can self-register through GLASS. You can do this even after courses start. Make sure to register for the right semester! Registration for the next semester starts during the usual course registration periods.
  • Are you a UvA employee, including PhD students? In many cases the university will pay for your course registration. Do keep in mind the workload. If you'd like to register, or if you have questions, please send an e-mail so we can help you out!
  • Are you a Dutch student registered for a bachelor's programme at a Dutch university and do you have a regular vwo diploma? You can register as an "electives" student at the UvA (choose Informatiekunde as your bachelor), and when that's completely done, register for courses through GLASS.
  • Are you a student at a Dutch master's programme? In that case you cannot register as an "electives" student because Scientific Programming are bachelor's level courses. You might consider registering by paying course fees directly, so check the next option for that.
  • If there's no option for you to register as a regular student, you may consider to do our courses by paying course fees directly. If you'd like to do that, or if you have questions, please send an e-mail so we can help you out!

Always take the course workload and the course periods into account when registering! When starting a course you must finish during the same semester. Exams are only offered twice per semester—check the dates on the course websites.

Course websites are updated with new dates, content
and regulations a few weeks before semester's start.


Have questions? Send us an e-mail at One of the teachers or assistants will help you out.

Copyright 2020-2024 Programming Lab / Universiteit van Amsterdam. Alle rechten voorbehouden. Icons made by Eucalyp from