Unit COMPUTATIONAL METHODS FOR PHYSICS
 Course
 Physics
 Studyunit Code
 55A00001
 Curriculum
 In all curricula
 Teacher
 Matteo Duranti
 Teachers

 Matteo Duranti
 Hours
 42 ore  Matteo Duranti
 CFU
 6
 Course Regulation
 Coorte 2018
 Offered
 2020/21
 Learning activities
 Affine/integrativa
 Area
 Attività formative affini o integrative
 Academic discipline
 FIS/03
 Type of studyunit
 Opzionale (Optional)
 Type of learning activities
 Attività formativa monodisciplinare
 Language of instruction
 Italian
 Contents
 The course is focused on
• The Linux operative system, common commands and shell environment;
• The C/C++ programming language and the usage of Makefile;
• Techniques and algorithms for the simulation of problems in physics (MonteCarlo)
• Techniques and algorithms for the resolution of problems in physics (numerical integration, resolution of systems of differential equations);  Reference texts
 • W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes: The Art of Scientific Computing, Third Edition (Cambridge University Press, 2007, ISBN10: 0521880688).
• E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable ObjectOriented Software, (Pearson Education, 1994, ISBN: 0201633612, ISBN13: 9780201633610)  Educational objectives
 Goal of the course is the learning of common computer science techniques and algorithms, applied to the solution of problems common in the physics research. Since the knowledge and competence of the programming and of the computer environment is a fundamental prerequisite for such a goal, the course has, as secondary goal, but preparatory for the main one, the detailed study of the computer science competences.
So the acquired knowledges will be:
• role and meaning of the various steps of the compilation of a C/C++ program;
• the role, the structure and the usage of a Makefile;
• the most relevant random number generators;
• the MonteCarlo technique and its application;
• the most relevant methods for the numerical integration (rectangle, trapeze, Simpson, Gauss, .);
• the most relevant methods for the numerica resolution of differential equation systems (Eulero, punto medio, RungeKutta, .);
The acquired abilities:
• compilation of a C/C++ software;
• writing of a Makefile;
• writing a LCG random number generator and usage of the random number generators;
• wiriting of simple MonteCarlo programs;
• writing of simple programs for the numerical integration of functions;
• writing of simple programs for the numerical resolution of differential equations;  Prerequisites
 To understand and being able to apply the techniques described during the lessons, is mandatory to have passed the Laboratorio di Informatica exam. The examples used during the course and in the final practice, in addition, require the ability to solve simple Mechanics and/or Electromagnetism and/or Statistics problems.
 Teaching methods
 • Lessons (theory): 10 lessons of 1 hours each, during the which the techniques will be discussed from a theoretical point of view;
• Practical exercitations with the computer: 10 exercitations of 3 hours each, during the which exercises requiring the implementation of the techniques described from the theoretical point of view, within simple programs, will be solved;  Other information
 Is strongly suggested to attend the lessons
 Learning verification modality
 The final examination is based on a practical test at the computer and on an oral examination.
The practical test foresee the resolution, through the implementation of simple programs, of, at most, 2 simple exercises. The exercises are simple Mechanics and/or Electromagnetism and/or Statistics problems to be solved using the techniques described during the lessons.
The oral examination, during at most 60 minutes, is based on the discussion of a written essay about a project (writing of a software to solve different problematics) given at the end of the course. The discussion of the project will be just the starting point to the verification of the knowledges foreseen to be acquired during the course.  Extended program
 The course aim to provide a solid background level to the usage of the computer science in the field of physics and scientific in general research. This background will be provided through the study and implementation (working with the computer) of some examples of algorithms and solutions, common in the routine research in physics.
The program of the course foresee the detailed study of:
• The Linux operative system, common commands and shell environment;
• The C/C++ programming language and the usage of Makefile;
• Techniques and algorithms for the simulation of problems in physics (MonteCarlo)
• Techniques and algorithms for the resolution of problems in physics (numerical integration, resolution of systems of differential equations);