87945 - Software and Computing for Nuclear and Subnuclear Physics

Academic Year 2025/2026

  • Moduli: Daniele Bonacorsi (Modulo 1) Alessandra Fanfani (Modulo 2) (Modulo 3)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2) Traditional lectures (Modulo 3)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Physics (cod. 6695)

Learning outcomes

At the end of the course the student will learn the basic concepts of programming and modern scientific computation, as they are currently used in several physics fields. He/she will have an understanding of the major software development techniques and strategies and an understanding of the various computational frameworks, database, data maintenance and collection. By the end of the course, the student will be able to solve advanced problems in scientific software design for nuclear and subnuclear physics that will be developed as small group projects.

Course contents

The course includes lectures and some practical sessions (i.e., hands-on activities on topics that may vary from year to year, depending on their evolving relevance). These activities are distributed across the course's teaching modules as outlined below.

Module 1 (Prof. Daniele Bonacorsi)

  • From data taking to a published research paper
  • The programming view: programming languages
  • Hands-on on Unix and c.l., Python (and most commonly used third-party libraries), Jupyter, Google Colab(oratory), and more
  • The data view: data, databases, big data, data-intensive science
  • The resources view: distributed computing, grid(s), cloud(s), grid- and cloud-compliant computing models in Nuclear and Subnuclear Physics
  • The data science view: a glance at Machine Learning (ML) and Deep Learning (DL); Artificial Intelligence (AI) applications in Nuclear and Subnuclear Physics
  • Look-forward: advanced hardware solutions; overview on explainable AI, ethical AI, green AI; (a glance at) quantum computing and quantum machine learning.
  • HANDS-ON: ML/DL frameworks and neural network architectures

Module 2 (Prof.ssa Alessandra Fanfani)

  • Data processing: introduction to batch data processing and elements of distributed computing
  • Data management: remote copy, xrootd federation, and Rucio
  • HANDS_ON: Grid technologies

Module 3 (Dott. Tommaso Diotalevi)

  • From the Grid paradigm to the Cloud paradigm (as-a-Service);
  • HANDS-ON: Virtualization, Containerization (Docker) and orchestration (Kubernetes) of cloud-native microservices

Readings/Bibliography

Since the bibliography for this type of course evolves rather rapidly over time, and in order to avoid listing outdated references on the website, a list of texts and an updated bibliography will be provided to enrolled students during the first lecture of the course. As stated in another section, please note that all teaching materials used during the lectures are made fully available to students in a dedicated digital repository for the course.

Teaching methods

The course's teaching methodology combines:

  • Traditional "frontal" lectures (based on slides);
  • Hands-on activities using remote computing resources;
  • Interactive notebooks for practical sessions involving code development.

These activities are complemented by innovative/blended teaching approaches, including the use of Teams for remote participation, access to online materials (e.g. video content), up to the implementation of "flipped classroom" experiences on selected topics.

All slides and notebooks used during the course, along with any additional material, are fully made available to students. In particular, lecture slides are provided in advance of each class session, enabling students to take notes directly on the course material.

PC-equipped classrooms are not guaranteed for the hands-on sessions, so students are advised to bring their own laptop. Those who do not have one must inform the instructors at least two weeks before the exercise.

Assessment methods

The exam consists of 3 parts, each contributing equally to the final grade (10 points each).

1) WRITTEN TEST (10 points out of 30)

  • Objective: Assess the student’s understanding and conscious assimilation of the content presented during the frontal lectures.
  • Participation in the assessment: To take the written test, students must register via the Almaesami portal (almaesami.unibo.it) within the deadlines set, typically a few days before the exam date.
  • Delivery method: The written test is held in presence. Exceptions that allow for remote participation via the Teams platform are considered only if a formal request is submitted to the teachers, supported by well-founded and documented reasons, and only if proper certification attesting to the validity of the impediment is received by the course responsible no later than one week before the scheduled test date.
  • Description of the assessment and its evaluation: The test consists of multiple-choice questions administered either via the EOL platform (eol.unibo.it) or on paper. All questions are of equivalent complexity and carry the same score. Correct answers receive a positive score, and incorrect answers may (or may not) incur a penalty, depending on the instructors’ decision for that exam session or academic year. The duration of the written test ranges from a minimum of 1 hour to a maximum of 2 hours, depending on the number of questions (which is not disclosed beforehand). To ensure fairness, the test is explicitly not time-pressured: the time provided is always proportional to the number of questions and ample enough to allow for calm and thoughtful responses - on average, at least 5 minutes per question. During the test, the use of calculators and any printed reference material is permitted (including personal notes, textbooks, handouts, and teaching material provided by the teachers). In contrary, any device or method that allows communication with others (people or digital systems) out of the exam room is strictly prohibited, as is any communication between students during the test. Violation of these rules will result in immediate invalidation of the test. Students may retake the written test multiple times, by registering for subsequent sessions on Almaesami, in order to improve their score. The highest score achieved across all attempts will be retained. Each test score remains valid for one calendar year; once expired, the student must take a new written test. 

2) HANDS-ON ACTIVITIES (10 points out of 30)

  • Objective:Assess the student’s understanding and assimilation of the content delivered during the hands-on sessions.
  • Participation in the assessment: There is no need to sign-up on Almaesami: these hands-on sessions will be part of the regular course calendar for all students.
  • Delivery method: This part is evaluated “in itinere”, during and after the exercises in class.
  • Description of the assessment and its evaluation: Each annual course edition normally includes three exercises (although this number may be increased or decreased at the instructors’ discretion, as communicated in the first lecture of the course). Each exercise yields its own score, and the total score for this part of the exam is always capped at 10 points. While participation in the exercises is not strictly mandatory, students who are absent and/or do not complete and submit the required work for a given hands-on exercise will not receive the corresponding score. Missed points from exercises cannot be recovered through other parts of the exam. 

3) PROJECT WORK (10 points out of 30)

  • Objective: Evaluation of the student’s ability to apply the course content in a project (software code).
  • Participation in the assessment: There is no need to sign-up on Almaesami.
  • Delivery method: The project can be either self-proposed or selected from a list provided by the instructors. Students must inform the instructors of their intention to work on a specific project, providing a brief description of it, and obtain the instructors’ approval before proceeding with the proposed project. 
  • Description of the assessment and its evaluation: The delivery methods and grading timeline are explained during the first lecture. Project evaluation will focus primarily on the following aspects: clarity in explaining the objectives and the approach used to achieve them; quality of the implemented code and its consistency with the stated objectives; documentation and overall presentation of the project. In the case of specific student needs (e.g. scholarship deadlines, thesis defense scheduling, etc.), these timelines and procedures can be discussed on an individual basis with the instructors, who are committed to accommodating such needs - within the limits of fairness toward all students.

The maximum score a student can earn is 10+10+10=30 points. Honors ("cum laude") may be awarded to students who achieve the full score (10 points) in each of the three parts discussed above, and whose overall performance is unanimously deemed excellent by the instructors.

 

Students with Specific Learning Disabilities (SLD) or temporary/permanent disabilities are advised to contact the University Office responsible in a timely manner (https://site.unibo.it/studenti-con-disabilita-e-dsa/en). The office will be responsible for proposing any necessary accommodations to the students concerned. These accommodations must be submitted to the instructor for approval at least 15 days in advance, and will be evaluated in light of the learning objectives of the course.

Teaching tools

As explained in the previous sections, lecture content is delivered using:

  • Slides;
  • Audio-video materials;
  • Relevant scientific articles;
  • Handouts.

All materials used during the lectures are made available to students in a shared digital repository. Furthermore, as part of the innovative teaching methods adopted, tools such as Teams for videoconferencing, as well as various digital platforms are used to deliver quizzes and assess the assimilation of the course content.

Office hours

See the website of Daniele Bonacorsi

See the website of Alessandra Fanfani

See the website of