nl en

Programmeermethoden NA


Admission Requirements

Mathematics and physics at the level of VWO Wiskunde B en VWO Natuurkunde.


The course Programming Methods NA introduces Python as a modern and easy-to-learn programming language. The course is split into two parts that are taught by different lecturers. The first part, taught by Evert van Nieuwenburg, introduces the basics of the Python language. The second part, taught by Tomas Stolker, highlights several libraries that are of practical use for scientific calculations. The course aims to provide every student with the basic principles and concepts of the Python programming language. Students who have successfully completed this course will be able to write their own Python code with the aim to continue to improve their programming skills during other courses and research projects.

Course objectives

Concretely, this course enables students to:

  • understand basic Python syntax

  • use an integrated development environment

  • write code in a well-organized and structured way

  • work with data structures such as lists, tuples, and dictionaries

  • undertand the basic principles of object oriented programming

  • read data from files and write data to files

  • work with multidimensional NumPy arrays

  • create various types of plots with Matplotlib

  • apply SciPy functions for integration, interpolation, and optimization

  • apply SciPy functions for image and signal processing

  • use the basic functionalities of Astropy

  • work with data and headers from FITS files


See the Timetable for an overview of the bachelor programs.

You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

Lectures of 2 hours and working groups of 2 hours. Additional self study on the lecture content and assignments will be necessary.

Assessment method

There will be 4 assignments that will be individually handed in on Brightspace. Each assignment has a weight of 25% for the final grade and each assignment must be completed with a minimum grade of 5.5 in order to pass the course. Retakes of each assignment are possible but a maximum grade of 6.0 can be obtained.

Reading list

There many online resources that can be used to search for additional background information, for example:


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information. An exemption is the fall semester for 1st year bachelor students, the student administration will enroll this group.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.
Extensive FAQ's on MyStudymap can be found here.


Lecturer part 1: Evert van Nieuwenburg
Lecturer part 2: Tomas Stolker