# Computer science | NUMERICAL METHODS FOR COMPUTER SCIENCE

## Computer science NUMERICAL METHODS FOR COMPUTER SCIENCE

 0512100050 DIPARTIMENTO DI INFORMATICA EQF6 COMPUTER SCIENCE 2017/2018

 YEAR OF COURSE 3 YEAR OF DIDACTIC SYSTEM 2015 SECONDO SEMESTRE
SSD CFU HOURS ACTIVITY TYPE OF ACTIVITY MAT/08 6 52 LESSONS SUPPLEMENTARY COMPULSORY SUBJECTS
 ANGELAMARIA CARDONE T
Objectives
KNOWLEDGE AND UNDERSTANDING
THE AIM OF THE COURSE IS TO MAKE STUDENTS GAIN THE THEORETICAL KNOWLEDGE AND CRITICAL ANALYSIS OF THE MAIN NUMERICAL METHODS CONCERNING THE BASIC NUMERICAL METHODS FOR THE DEVELOPMENT OF MATHEMATICAL SOFTWARE FOR THE SOLUTION OF SCIENTIFIC CALCULUS INTERESTING FOR THE COMPUTER SCIENCE. IN PARTICULAR:
•FLOATING-POINT ARITHMETIC, SEQUENTIAL AND PARALLEL SOLUTION OF LARGE SPARSE LINEAR SYSTEMS,
•COMPUTATION OF EIGENVALUES, GOOGLE RESEARCH ENGINE AND THE PAGE-RANK ALGORITHM,
•APPROXIMATIONS OF DATA AND FUNCTIONS WITH APPLICATION TO THE COMPUTER GRAPHICS, 2D AND 3D AFFINE TRANSFORMATIONS: ROTATION, REFLECTION, SCALING, SHEARING, TRANSLATIONS;
•PARALLEL NUMERICAL ANALYSIS: MPI, PARALLEL LINEAR ALGEBRA ON GPUS;
•INTRODUCTION TO PHYTON.

ABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING
THE STUDENT SHOULD BE ABLE TO SOLVE PROBLEMS OF SCIENTIFIC CALCULUS IN THE APPLICATIONS TO COMPUTER SCIENCE, BY MEANS OF THE DEVELOPMENT AND THE USE OF MATHEMATICAL SOFTWARE AND SUITABLE COMPUTING ENVIRONMENT.
Prerequisites
ELEMENTS OF DISCRETE MATHEMATICS AND LINEAR ALGEBRA.
ELEMENTS OF MATHEMATICAL ANALYSIS: CONTINUOUS FUNCTIONS AND MAIN THEOREMS, CONCEPTS OF DERIVATIVE.
Contents
•ERRORS ANALYSIS, PROPAGATION.
•SYSTEMS OF LINEAR EQUATIONS. DIRECT METHODS: GAUSS METHOD, PIVOTING STRATEGIES.
•EIGENVALUES OF MATRICES. ITERATIVE METHODS. QR METHOD. GOOGLE AND THE PAGE-RANK ALGORITHM.
•APPROXIMATION. POLYNOMIAL INTERPOLATION: ERROR, CONVERGENCE. LINEAR PIECEWISE INTERPOLATION AND SPLINE. LEAST SQUARES. APPLICATIONS TO COMPUTER GRAPHICS, 2D AND 3D TRANSFORMATIONS BASED ON AFFINE TRANSFORMATIONS: ROTATION, REFLECTION, SCALING, SHEARING, TRANSLATION.
•PARALLEL NUMERICAL ANALYSIS. MPI (MESSAGE PASSING INTERFACE). PARALLEL ALGORITHMS FOR LINEAR ALGEBRA ON GRAPHICS PROCESSING UNITS (GPUS).
•MATLAB, PYTHON, C LANGUAGE WITH MPI AND CUDA.
•DEVELOPMENT OF MATHEMATICAL ELEMENTS RELATED TO THE MAIN ALGORITHMS.
Teaching Methods

4 CFU, 32 HOURS, FOR
-TEACHER LESSONS
2 CFU, 20 HOURS FOR
-USE OF LABORATORIES
-DEVELOPMENT OF MATHEMATICAL SOFTWARE.

THE LABORATORY CLASSES WILL BE FOCUSED ON THE PRINCIPLES ABOUT THE DEVELOPMENT OF EFFICIENT MATHEMATICAL SOFTWARE, WITH REGARD TO THE ESTIMATE OF ACCURACY OF THE OBTAINED RESULTS, THE EVALUATION OF THE PERFORMANCE OF THE DEVELOPED SOFTWARE, THE COMPARISON AMONG DIFFERENT METHODS, THE EXTERNAL AND INTERNAL DOCUMENTATION.

Verification of learning
•TESTING AND EVALUATION OF THE MATHEMATICAL SOFTWARE DEVELOPED OR USED IN THE LABORATORY CLASSES TO VERIFY THE SKILLS OF THE STUDENT TO EVALUATE ACCURACY AND EFFICIENCY AND TO COMPARE DIFFERENT CODES.
•ORAL EXAMINATION ON THE BASIC THEORETICAL NOTIONS OF NUMERICAL METHODS AND THE PRINCIPLES TO SOLVE SIMPLE SCIENTIFIC CALCULUS PROBLEMS.
•FOR THE STUDENTS ATTENDING THE COURSE, THERE ARE A MIDTERM AND A FINAL TEST ALONG THE SAME LINES OF THE EXAM.
Texts
1.A. QUARTERONI AND F. SALERI, SCIENTIFIC COMPUTING WITH MATLAB AND OCTAVE, SPRINGER-VERLAG BERLIN, 2006.
2.LES PIEGL, WAYNE TILLER. THE NURBS BOOK. SPRINGER SCIENCE & BUSINESS MEDIA, 2012.

OTHER SUPPORTING TEXTS, MANUALS
3.CLEVE MOLER, MATLAB USERS' GUIDE. UNIVERSITY OF NEW MEXICO, 1982,
HTTPS://CCRMA.STANFORD.EDU/~JOS/MATDOC/MATDOC.PDF
4.GUIDO VAN ROSSUM, IL TUTORIAL DI PYTHON,
HTTP://DOCS.PYTHON.IT/HTML/TUT/TUT.HTML
5.MPI: A MESSAGE-PASSING INTERFACE STANDARD VERSION 3.0, 2012, HTTP://MPI-FORUM.ORG/DOCS/MPI-3.0/MPI30-REPORT.PDF
6.CUDA PROGRAMMING GUIDE 1.0