nl en

Numerical Recipes in Astrophysics a


From 2024/2025 onwards, this course will be split into two parts.

Admission requirements

Students should be very experienced with programming in Python. Knowledge of calculus and linear algebra at the bachelor’s level is also required. In terms of the Leiden Astronomy bachelor's curriculum, the prerequisites for this course are Analyse 3 (NA) and Linear Algebra 1 (NA), in addition to being an active programmer.


In this course you will learn how and why some of the most powerful and broadly used algorithms in astrophysics work and gain a deeper understanding of numerical methods. This will allow you to identify the right tool for the job for whatever computational problem you may encounter in astrophysics, and to program more effectively, whether you are fitting data, sampling a distribution, integrating or interpolating functions or optimizing your computational model.

During the lectures we will discuss numerics and consider and derive specific algorithms that are useful in astrophysics. During the problem classes students will work together on applying this knowledge to a computational problem through coding.

The topics covered in the course are:

  • Numerical arithmetic, error and precision

  • Inter- and extrapolation

  • Solving linear equations

  • Numerical integration and differentiation

  • Random numbers, distribution sampling and sorting

  • Root finding, minimization and maximization

  • Modelling and fitting data

Course objectives

Upon completion of this course you will be able to judge which numerical algorithm or tool is right for any computational problem typically encountered in

In specific, after this course, you will be able to:

  • Evaluate the outcomes of computational codes

  • Construct an efficient computer program

  • Solve a wide array of astrophysical problems


See Astronomy master schedule

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 successfully 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 to 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

  • Exercise classes

Assessment method

  • Key assignments

  • Written exam

In addition to a written theory exam, there will be three coding exercise sets (roughly one every three lectures) that will count towards your final grade, under the condition that you achieved a passing grade on the exam. The exam will count for 50%, the three hand-in exercise sets collectively constitute the final 50%.

Reading list

  • Numerical Recipes: The Art of Scientific Computing, Third Edition (W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery), ISBN: 9780521880688 (optional)


As a student, you are responsible for registering on time, i.e. 14 days before the start of the course. This can be done via Mystudymap. You do this twice a year: once for the courses you want to take in semester 1 and once for the courses you want to take in semester 2. Please note: late registration is not possible.

Registration for courses in the first semester is possible from July; registration for courses in the second semester is possible from December. First-year bachelor students are registered for semester 1 by the faculty student administration; they do not have to do this themselves. For more information, see this page.

In addition, it is mandatory for all students, including first-year bachelor students, to register for exams. This can be done up to and including 10 calendar days prior to the exam or up to five calendar days in case of a retake exam. You cannot participate in the exam or retake without a valid registration in My Studymap.

Extensive FAQ's on MyStudymap can be found here.


Lecturer: Dr. M.P. (Marcel) van Daalen


Soft skills
After completing this course you will be able to:

  • Work collaboratively on numerical problems

  • Program effectively