
Course unit
NUMERICAL COMPUTING AND PROGRAMMING
SCN1032583, A.A. 2018/19
Information concerning the students who enrolled in A.Y. 2018/19
ECTS: details
Type 
ScientificDisciplinary Sector 
Credits allocated 
Educational activities in elective or integrative disciplines 
INF/01 
Computer Science 
2.0 
Educational activities in elective or integrative disciplines 
INGINF/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 
Hours of Individual study 
Shifts 
Practice 
2.0 
24 
26.0 
No turn 
Lecture 
5.0 
40 
85.0 
No turn 
Examination board
Board 
From 
To 
Members of the board 
5 Commissione Calcolo Numerico e Programmazione 1819 
01/10/2018 
30/11/2019 
DE MARCHI
STEFANO
(Presidente)
MARCUZZI
FABIO
(Membro Effettivo)
PUTTI
MARIO
(Supplente)
SOMMARIVA
ALVISE
(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, GaussSeidel, 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. Leastsquares approximation.
6) Numerical quadrature. Interpolatory formulas of NewtonCotes. Ortogonal polynomials and theor properties. Optimal/minimal formlas of Gauss.
7) Solution of ordinary differential equations by the RungeKutta 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: https://www.python.it/doc/Easytut/easytutit/index.html 
Textbooks (and optional supplementary readings) 

De Marchi, Stefano, Introduzione al Calcolo Numerico con codici in Matlab/Octave. Seconda Ed.. Bologna: Esculapio, Progetto Leonardo, 2018.

Innovative teaching methods: Software or applications used
Sustainable Development Goals (SDGs)

