First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
Course unit
SCN1032583, A.A. 2018/19

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course Second cycle degree in
SC1173, Degree course structure A.Y. 2010/11, A.Y. 2018/19
bring this page
with you
Degree course track Common track
Number of ECTS credits allocated 7.0
Type of assessment Mark
Course unit English denomination NUMERICAL COMPUTING AND PROGRAMMING
Website of the academic structure
Department of reference Department of Physics and Astronomy
Mandatory attendance
Language of instruction Italian
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Teacher in charge STEFANO DE MARCHI MAT/08
Other lecturers FABIO MARCUZZI MAT/08

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Educational activities in elective or integrative disciplines INF/01 Computer Science 2.0
Educational activities in elective or integrative disciplines ING-INF/05 Data Processing Systems 1.0
Educational activities in elective or integrative disciplines MAT/07 Mathematical Physics 1.0
Educational activities in elective or integrative disciplines MAT/08 Numerical Analysis 3.0

Course unit organization
Period First semester
Year 1st Year
Teaching method frontal

Type of hours Credits Teaching
Hours of
Individual study
Practice 2.0 24 26.0 No turn
Lecture 5.0 40 85.0 No turn

Start of activities 01/10/2018
End of activities 18/01/2019
Show course schedule 2019/20 Reg.2010 course timetable

Examination board
Board From To Members of the board
5 Commissione Calcolo Numerico e Programmazione 18-19 01/10/2018 30/11/2019 DE MARCHI STEFANO (Presidente)
MARCUZZI FABIO (Membro Effettivo)
PUTTI MARIO (Supplente)

Prerequisites: Basic notions of linear algebra and geometry (vectorial spaces, vectors and matrices, operations on matrices, determinants, norms, etc..) and of Mathematical Analysis 1 and 2, are required.
Target skills and knowledge: The student will have the opportunity to acquire basic computer and numerical abilities. In particular he/she will be able to understand the numerical model and the underlying algorithm, make a program in Python language, produce results in graphical form. Among the others, he/she will use basic numerical methods (for solving non linear equations, linear systems, approximation of data, integrals and solution of differential equations) and hopefully he/she will be able to use in real examples/applications.
Examination methods: The exam will be a laboratory test and a written part with exercises and/or theoretical questions about the program.
Assessment criteria: The student should show the ability in using numerical methods both from theoretical and algorithmic point of view. He/she will show this by solving (simple) exercises. It will be essential to acquire familiarity with Python.
Course unit contents: 1) Computer arithmetic: representation of numbers in the computer, machine operations, errors, stability and conditioning.
2) Non linear equations: convergent series, bisection method. Fixed point method. Newton's method and its variants. Stopping rules. Some hints on the solution of non linear systems.
3) Solution of linear systems. Computational cost, conditioning, error estimates. Direct methods: Gauss elimination and its variants. Matrix factorization: LU (Cholesky) and QR. Iterative methods: Jacobi, Gauss-Seidel, SOR. Gradient methods.
4) Eigenvalues. Numerical methods for computing the biggest (powers method) and the smallest (inverse powers method).
5) Interpolation and approximation of functions and data. Vandermonde system, Lagrange and Newton form. Chebyshev points. Stability and Lebesgue constant. Least-squares approximation.
6) Numerical quadrature. Interpolatory formulas of Newton-Cotes. Ortogonal polynomials and theor properties. Optimal/minimal formlas of Gauss.
7) Solution of ordinary differential equations by the Runge-Kutta methods.
Planned learning activities and teaching methods: The course consists of two main sessions: frontal lectures in the classroom (48 h) and lab exercises (24 h) in Python. Lectures are given in Italian.
Many of the numerical methods presented during class lectures, will be implemented during lab hours. The aim is to show the use of a computational tool, like Python, as a tool for better understanding numerical calculus. The hope is that at the end of the course the students will mature a numerical sensitivity and also a good programming ability in Python.
Additional notes about suggested reading: Suggested textbook. There are plenty of tutorials and manuals introducing to the language Python. We suggest the following one:
Textbooks (and optional supplementary readings)
  • De Marchi, Stefano, Introduzione al Calcolo Numerico con codici in Matlab/Octave. Seconda Ed.. Bologna: Esculapio, Progetto Leonardo, 2018. Cerca nel catalogo

Innovative teaching methods: Software or applications used
  • Latex

Sustainable Development Goals (SDGs)
Good Health and Well-Being Quality Education Gender Equality