 |
Risorsa bibliografica obbligatoria |
 |
Risorsa bibliografica facoltativa |
|
Anno Accademico
|
2015/2016
|
Scuola
|
Scuola di Ingegneria Industriale e dell'Informazione |
Insegnamento
|
095965 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING
|
Docente |
Formaggia Luca
|
Cfu |
10.00
|
Tipo insegnamento
|
Monodisciplinare
|
Corso di Studi |
Codice Piano di Studio preventivamente approvato |
Da (compreso) |
A (escluso) |
Insegnamento |
Ing Ind - Inf (Mag.)(ord. 270) - BV (478) NUCLEAR ENGINEERING - INGEGNERIA NUCLEARE | * | A | ZZZZ | 095976 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING | Ing Ind - Inf (Mag.)(ord. 270) - MI (487) MATHEMATICAL ENGINEERING - INGEGNERIA MATEMATICA | * | A | ZZZZ | 095965 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING | 095976 - ADVANCED PROGRAMMING FOR SCIENTIFIC COMPUTING |
Programma dettagliato e risultati di apprendimento attesi |
Advanced programming for Scientific Computing
Objectives
The course aims at providing concepts of scientific computing and C++ programming. It addresses procedural, object oriented and generic programming techniques, parallel computing with message passing (MPI) and shared memory (openMP) paradigms, debugging and profiling of computer codes, program organization, data structures and numerical algorithms.
Description
1) Advanced C++ programming. This part aims to complete the student knowledge of computer languages by providing an exhaustive illustration of the advanced features of C++, including those added in the new C++11 standard. Use of templates, data structure and algorithms of the standard library and a description of the main numerical libraries are among the topics that are covered, with an emphasis on scientific computing applications.
2) Code design and organization. In this part of the course we cover the main design patterns, exception handling, static and dynamic libraries, debugging and profiling of computer codes, code versioning systems.
3) Parallel programming. In this part of the course we address parallel programming concepts for both distributed and shared memory architectures, as well as the main techniques for parallel computing in the contest of numerical algorithms.
Organization
The course comprises taught lectures in class and exercise session at the computer, where the students may practice the techniques learned during the course. A few home exercises are given to asses student performance. The final assessment is made through a project where a mathematical problem or an engineering application is solved by developing a computer program.
|
Note Sulla Modalità di valutazione |
The final assessment is made through a project where a mathematical problem or an engineering application is solved by developing a computer program.
|
Nessun software richiesto |
Tipo Forma Didattica
|
Ore didattiche |
lezione
|
60.0
|
esercitazione
|
40.0
|
laboratorio informatico
|
0.0
|
laboratorio sperimentale
|
0.0
|
progetto
|
0.0
|
laboratorio di progetto
|
0.0
|
Informazioni in lingua inglese a supporto dell'internazionalizzazione |
Insegnamento erogato in lingua

Inglese
|
|