27216 - Calculus for Astronomy

Academic Year 2025/2026

  • Moduli: Lauro Moscardini (Modulo 1) Federico Marinacci (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Astronomy (cod. 8004)

Learning outcomes

At the end of the course, the student will have the basic knowledge of the numerical algorithms commonly used in physical and astronomical applications. In particular the student will be able to write numerical codes using a high-level language (Fortran90) in order to:

  • solve linear algebraic equations;
  • interpolate, differentiate and integrate functions;
  • find roots of non-linear equations;
  • solve differential equations.

Course contents

The course is divided into two modules.

In the first module, the following topics will be covered:

  • Finding the roots of a function;

  • Solving systems of linear algebraic equations;

  • Statistical description of data;

  • Data interpolation;

  • Differentiation and integration of functions;

  • Generation of pseudorandom numbers.

In the second module, the following topics will be addressed:

  • Numerical methods for ordinary differential equations;

  • Initial and boundary value problems.

Throughout both modules, case studies in Fortran90 related to the various topics will be presented during laboratory sessions.

Readings/Bibliography

Required texts:

Recommended texts:

  • Chapra, Canale, "Metodi numerici per l'Ingegneria" or "Numerical Methods for Engineers", McGraw-Hill.

Texts for further reading:

  • Press et al., "Numerical Recipes", Cambridge University Press.

  • Quarteroni et al., "Matematica Numerica", Springer.

Teaching methods

Part of the lectures (4 CFU, 32 hours) will be delivered in-person in the classroom, using the blackboard and a projector. During the lectures, various algorithms will be presented, which will then be implemented in Fortran90. The slides shown in class and the codes developed during the lectures will subsequently be made available on the Platform Virtuale.

The remaining part of the lectures (4 CFU, 60 hours) will take place in the computer laboratory, equipped with individual PC stations where students will work on exercises, either individually or in small groups, under the guidance of the lecturers and the teaching assistant. Participation in the laboratory sessions, which aim to enable students to independently develop and critically analyse numerical code, is strongly recommended as it directly supports  the preparation of the exam.

Considering the type of activities and the teaching methods employed, attendance at this educational activity requires prior participation by all students in Modules 1 and 2 of the safety training for study environments [https://elearning-sicurezza.unibo.it/ ], in e-learning mode.

Assessment methods

During the course, two exam exercises will be presented and discussed. These exercises are designed to assess the student’s ability to develop numerical codes in Fortran90, which the student will be able to work on in the laboratory during the final hours of the course or independently. The exercises involve developing numerical codes in Fortran90, using the algorithms covered in the course, and applying them to astrophysical problems. The assigned exercises change each academic year and will be valid exclusively for all exam sessions of that specific academic year. At least two working days before the scheduled date for the oral exam, the student must submit the developed code and a brief report for each exam exercise to the lecturers via email. The reports should discuss: the scientific problem, the numerical methodology developed, the data used, the results obtained, and their significance. The evaluation of the quality of the developed codes and the submitted reports will serve as an initial assessment for the oral exam.

The oral exam will focus on the critical discussion of the submitted programs and reports, as well as the verification of the student’s understanding of the numerical algorithms discussed in the lectures. The level of knowledge of the programming language will also be assessed.

The overall assessment (expressed as a mark out of thirty) will be graded as follows:

  • Just sufficient report and preparation on a very limited number of topics covered in the course, with analytical skills emerging only with the lecturer’s guidance, generally correct language use → 18-19;

  • Sufficient report and preparation on a limited number of topics covered in the course, with autonomous analytical skills only on purely procedural matters, correct language use → 20-22;

  • More than sufficient report and preparation on a limited number of topics covered in the course, with autonomous analytical skills only on purely procedural matters, correct language use → 23-25;

  • Good report and preparation on a wide range of topics covered in the course, with the ability to make independent critical analytical choices, mastery of specific terminology → 25-28;

  • Excellent/Outstanding report and comprehensive preparation on the course topics, with the ability to make independent critical analytical choices and connections, full command of specific terminology, and strong argumentative and self-reflective skills → 29-30L.

As decided by the Degree Programme Board, the mark can be declined a maximum of two times.

Students with learning disabilities or temporary or permanent disabilities: please contact the relevant University office promptly (https://site.unibo.it/studenti-con-disabilita-e-dsa/it ). The office will advise students of possible adjustments, that will be submitted to the professor for approval 15 days in advance. He/she will evaluate their suitability also in relation to the academic objectives of the course.

Teaching tools

The various programming techniques are presented through concrete examples fully developed by the lecturers on their computers and shown in class. The material related to these examples is made available to students on the course page of the Platform Virtuale (https://virtuale.unibo.it ). During the laboratory sessions, with the support of a teaching assistant, the student acquires knowledge of computational techniques through the numerical solution of problems related to specific topics covered in the course.

Office hours

See the website of Lauro Moscardini

See the website of Federico Marinacci