Servizi per la didattica
PORTALE DELLA DIDATTICA

Programmazione e calcolo scientifico

03NMVMQ

A.A. 2020/21

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Matematica Per L'Ingegneria - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 50
Esercitazioni in aula 10
Esercitazioni in laboratorio 20
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Berrone Stefano Professore Ordinario MAT/08 40 0 0 0 9
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05
MAT/08
3
5
C - Affini o integrative
F - Altre (art. 10, comma 1, lettera f)
Attività formative affini o integrative
Altre conoscenze utili per l'inserimento nel mondo del lavoro
2020/21
L'insegnamento si propone di approfondire le conoscenze su linguaggi e tecniche di programmazione, algoritmi e strutture dati utili per il calcolo scientifico. L'insegnamento si propone di far acquisire agli studenti: - una conoscenza approfondita di programmazione C++ e Python, - una conoscenza di base delle problematiche connesse all'utilizzo del calcolatore per eseguire simulazioni accurate ed efficienti, - una conoscenza dei principali algoritmi e delle fondamentali strutture di dati dell'informatica, - una conoscenza delle problematiche principali legate alla geometria computazionale.
The course aims to deepen the knowledge on languages and programming techniques, algorithms and data structures useful for scientific computing. The course aims to make students acquire: - an in-depth knowledge of C / C ++ and Pythin programming, - a basic knowledge of the problems related to the use of the computer to perform accurate and efficient simulations, - a knowledge of the main algorithms and fundamental data structures of information technology, - a knowledge of the main problems related to computational geometry.
I risultati di apprendimento attesi consistono in: - una conoscenza approfondita di programmazione C++ e Python, - una conoscenza di base delle problematiche connesse all'utilizzo del calcolatore per eseguire simulazioni accurate ed efficienti (complessità computazionale degli algoritmi, stabilità, condizionamento della formulazione del problema), - una conoscenza dei principali algoritmi e delle fondamentali strutture di dati dell'informatica, - una conoscenza delle problematiche principali legate alla geometria computazionale.
The expected learning outcomes consist of: - an in-depth knowledge of C / C ++ and Pythin programming, - a basic knowledge of the problems related to the use of the computer to perform accurate and efficient simulations (computational complexity of algorithms, stability, conditioning of problem formulation), - a knowledge of the main algorithms and fundamental data structures of information technology, - a knowledge of the main problems related to computational geometry.
Buona conoscenza di un linguaggio di programmazione e del funzionamento del calcolatore. Buona conoscenza degli argomenti dei corsi di base di analisi matematica, geometria e algebra lineare.
Good knowledge of a programming language and computer. Good knowledge of the topics of the basic courses of mathematical analysis, geometry and linear algebra.
Introduzione al Calcolo Scientifico • Ripasso e Approfondimenti su Aritmetica del Calcolatore • Affidabilita` delle soluzioni numeriche, accuratezza, scelta delle tolleranze. • Ripasso su condizionamento di un problema e stabilità di un algoritmo numerico. • Cenni sulla Teoria della complessità computazionale Introduzione all'Ingegneria del Software • Cenni sull'Esecuzione e sulle Performance di un Codice ◦ Compiler vs Interpreter ◦ Puntatori, allocazione statica e dinamica della memoria ◦ Introduzione al linguaggio C++ e Python • Cenni sui Paradigmi di programmazione ◦ Focus sulla Programmazione orientata agli oggetti (OOP) ◦ OOP nel linguaggio C++ e Python • Cenni sul Design pattern ◦ Abstract Factory Pattern e Factory method pattern ◦ Inversion of control e Dependency injection • Introduzione al Version Control ◦ Introduzione a Git Applicazioni del Calcolo Scientifico ◦ Strutture dati avanzate (liste, code, pile, alberi, grafi) ◦ Complessità computazionale, Ricorsione ◦ Algoritmi elementari (ordinamento, attraversamento di alberi e grafi, ricerca di percorsi tra nodi nei grafi) ◦ Strutture dati in C++ e Python ▪ C++ (STL) • Geometria Computazionale ◦ Introduzione agli oggetti geometrici ◦ Intersezioni ◦ Matrici di Rotazione ◦ Geometria computazionale in C++ e Python ▪ C++ - Eigen ▪ Phyton - numpy
Introduction to Scientific Computing • Review and Insights on Computer Arithmetic • Reliability of numerical solutions, accuracy, choice of tolerances. • Review on conditioning of a problem and stability of a numerical algorithm. • Notes on the theory of computational complexity Introduction to Software Engineering • Notes on the Execution and Performance of a Code ◦ Compiler vs Interpreter ◦ Pointers, static and dynamic memory allocation ◦ Introduction to C ++ and Python language • Notes on programming paradigms ◦ Focus on Object Oriented Programming (OOP) ◦ OOP in the C ++ and Python languages Notes on the Design pattern ◦ Abstract Factory Pattern and Factory method pattern ◦ Inversion of control and Dependency injection • Introduction to Version Control ◦ Introduction to Git Applications of Scientific Computing ◦ Advanced data structures (lists, queues, stacks, trees, graphs) ◦ Computational complexity, Recursion ◦ Elementary algorithms (sorting, crossing trees and graphs, searching for paths between nodes in graphs) ◦ Data structures in C ++ and Python ▪ C ++ (STL) • Computational geometry ◦ Introduction to geometric objects ◦ Intersections ◦ Rotation matrices ◦ Computational geometry in C ++ and Python ▪ C ++ - Eigen ▪ Phyton - numpy
L'insegnamento copre la durata di due semestri. In entrambi i due semestri si compone da lezioni teoriche, esercitazioni in aula ed esercitazioni presso il laboratorio informatico. Buona parte delle esercitazioni di laboratorio del secondo semestre sono dedicate allo sviluppo di un progetto di gruppo. Il progetto a tema vincolato consiste nello sviluppo di un codice da parte di gruppi di 2 o 3 studenti per la risoluzione di uno dei problemi proposti dal docente utilizzando gli strumenti, le strutture dati e i linguaggi presentati durante il corso.
The course covers lasts two semesters. In both semesters it consists of theoretical lessons, classroom exercises and exercises at the computer lab. Most of the tutorials second semester workshops are dedicated to the development of a group project. The project consists in the development of a code by groups of 2 or 3 students for the resolution of one of the problems proposed by the teacher using the tools, data structures and languages presented during the course.
Crescenzi Pierluigi - Gambosi Giorgio - Grossi Roberto - Rossi Gianluca, STRUTTURE DI DATI E ALGORITMI, Progettazione, analisi e programmazione, Editore: PEARSON EDUCATION ITALIA Slides utilizzate durante le lezioni
Crescenzi Pierluigi - Gambosi Giorgio - Grossi Roberto - Rossi Gianluca, STRUTTURE DI DATI E ALGORITMI, Progettazione, analisi e programmazione, Editore: PEARSON EDUCATION ITALIA Slides presented during lessons
Modalità di esame: Prova orale obbligatoria; Prova scritta a risposta aperta o chiusa tramite PC con l'utilizzo della piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus); Elaborato progettuale in gruppo;
L'esame consiste in un test informatizzato con esercizi e domande teoriche che dura di norma 1 ora, un progetto consistente nello sviluppo di un codice per risolvere al calcolatore problemi assegnati dal docente, un orale con domande di tipo teorico, discussione del test e discussione del progetto con particolare riferimento agli aspetti di complessità computazionale delle scelte fatte nel progetto. Durante il test informatizzato non è consentito l’uso di materiali didattici, calcolatrice e cellulari. Non c'e` una valutazione minima del test informatizzato per essere ammessi all'orale. Il test informatizzato è finalizzato alla verifica di una conoscenza di base di tutti gli argomenti dell'insegnamento. Nel caso dal test emergano lacune in parti rilevanti del programma, parte della prova orale sarà dedicata a valutare l'effettiva consoscenza degli argomenti delle domande del test con risposta mancante o errata. Le valutazioni sono espresse in trentesimi e l’esame è superato se la votazione riportata è di almeno 18/30. La valutazione massima è 30 e lode. La durata dell'esame orale è di circa 45 minuti e consta di 2/3 domande con peso nella valutazione finale circa uguale.
Exam: Compulsory oral exam; Computer-based written test with open-ended questions or multiple-choice questions using the Exam platform and proctoring tools (Respondus); Group project;
The exam consists of a computer test with exercises and theoretical questions that normally lasts 1 hour, a project consisting in the development of a code to solve problems assigned by the teacher to the computer, an oral with theoretical questions, discussion of the computer test and discussion of the project with particular reference to the aspects of computational complexity of the choices implemented in the project. During the written exam, the use of educational materials, calculators and mobile phones is not allowed. There is no minimum evaluation of the computer test to be admitted to the orals. The computer test is aimed at verifying a basic knowledge of all course topics. In the case from the test gaps emerge in relevant parts of the program, part of the oral exam will be devoted to evaluating the real knowledge of the topics of the questions of the test with missing or incorrect answer. The evaluations are expressed in thirtieths and the exam is passed if the score is at least 18/30. The maximum rating is 30 cum Laude. The duration of the oral exam is about 45 minutes and consists of 2/3 questions with weight in the final evaluation almost equal.
Modalità di esame: Prova orale obbligatoria; Prova scritta a risposta aperta o chiusa tramite PC con l'utilizzo della piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus); Elaborato progettuale in gruppo;
L'esame consiste in un test informatizzato con esercizi e domande teoriche che dura di norma 1 ora, un progetto consistente nello sviluppo di un codice per risolvere al calcolatore problemi assegnati dal docente, un orale con domande di tipo teorico, discussione del test e discussione del progetto con particolare riferimento agli aspetti di complessità computazionale delle scelte fatte nel progetto. Durante il test informatizzato non è consentito l’uso di materiali didattici, calcolatrice e cellulari. Non c'e` una valutazione minima del test informatizzato per essere ammessi all'orale. Il test informatizzato è finalizzato alla verifica di una conoscenza di base di tutti gli argomenti dell'insegnamento. Nel caso dal test emergano lacune in parti rilevanti del programma, parte della prova orale sarà dedicata a valutare l'effettiva consoscenza degli argomenti delle domande del test con risposta mancante o errata. Le valutazioni sono espresse in trentesimi e l’esame è superato se la votazione riportata è di almeno 18/30. La valutazione massima è 30 e lode. La durata dell'esame orale è di circa 45 minuti e consta di 2/3 domande con peso nella valutazione finale circa uguale.
Exam: Compulsory oral exam; Computer-based written test with open-ended questions or multiple-choice questions using the Exam platform and proctoring tools (Respondus); Group project;
The exam consists of a computer test with exercises and theoretical questions that normally lasts 1 hour, a project consisting in the development of a code to solve problems assigned by the teacher to the computer, an oral with theoretical questions, discussion of the computer test and discussion of the project with particular reference to the aspects of computational complexity of the choices implemented in the project. During the written exam, the use of educational materials, calculators and mobile phones is not allowed. There is no minimum evaluation of the computer test to be admitted to the orals. The computer test is aimed at verifying a basic knowledge of all course topics. In the case from the test gaps emerge in relevant parts of the program, part of the oral exam will be devoted to evaluating the real knowledge of the topics of the questions of the test with missing or incorrect answer. The evaluations are expressed in thirtieths and the exam is passed if the score is at least 18/30. The maximum rating is 30 cum Laude. The duration of the oral exam is about 45 minutes and consists of 2/3 questions with weight in the final evaluation almost equal.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il