- Oggetto:
- Oggetto:
Tecniche di calcolo per la fisica
- Oggetto:
Applications of Computational tecniques for physics
- Oggetto:
Anno accademico 2016/2017
- Codice dell'attività didattica
- MFN0575
- Docenti
- Prof. Fabrizio Bianchi (Titolare del corso)
Dott. Walter Allasia (Titolare del corso) - Corso di studi
- 008703 Laurea in Fisica
- Anno
- 3° anno
- Periodo didattico
- Primo periodo didattico
- Tipologia
- C=Affine o integrativo
- Crediti/Valenza
- 6
- SSD dell'attività didattica
- FIS/01 - fisica sperimentale
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Prova pratica
- Prerequisiti
-
- Propedeutico a
-
- Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
Il corso ha l'obiettivo formativo principale di permettere agli studenti di Fisica di essere in grado di implementare in linguaggi orientati agli oggetti un algoritmo per la risoluzione di un problema fisico. Questa formazione potrà essere sfruttata dall'allievo sia per i successivi corsi di esperimenti e lo svolgimento della tesi, che spesso richiede lo sviluppo di software o l'integrazione con software esistente, sia in campo professionale dato che spesso i laureandi di Fisica trovano un facile sbocco lavorativo nello sviluppo di software complesso.
Al fine di dare una panoramica della programmazione orientata agli oggetti senza prediligere specificatamente un linguaggio, il corso prevede di affrontare due linguaggi distinti: il C++ e il Java. Questo permetterà agli allievi di avere una visione di insieme dei paradigmi di programmazione e di essere quindi aperti a successivi linguaggi ad oggetti che si presenteranno nel futuro. Di seguito un dettaglio.
C++ L'obiettivo formativo è di fornire le conoscenze di base della programmazione orientata agli oggetti utilizzando il linguaggio C++.
Java L’obiettivo del corso è quello di far maturare le competenze necessarie ad utilizzare il linguaggio Java (inteso come Java 2 Platform Standard Edition – J2SE con jdk1.6) per lo sviluppo di applicazioni Object Oriented. Utilizzare correttamente i concetti basi della programmazione ad oggetti quali l’ereditarietà, l’overloading, l’overriding, il controllo di accesso, i modificatori di accesso, le interfacce, le classi astratte. Sviluppare applicazioni per la gestione dell’IO. Gestire correttamente le interfacce grafiche per la creazione di applicazioni con l’AWT. Programmare con i thread e gestire correttamente i socket per la comunicazione TCP/IP. Implementare correttamente della applicazioni distribuite. Acquisite le conoscenze sufficienti per la programmazione ad oggetti in Java, l'obiettivo formativo è quello di fornire le basi del calcolo numerico per la risoluzione di problemi matematici. Si cercherà quindi di far maturare negli allievi la capacità di affrontare la risoluzione di un problema reale con la programmazione orientata agli oggetti in linguaggio Java, utilizzando l’opportuno metodo numerico.
The course has the main educational goal to enable the students of Physics to implement, using computer languages Object Oriented, an algorithm to solve a physical problem. This education can be used by the student both concerning the following experimental courses and the writing of the thesis, which often requires the development of software or integration with an already existing software, and concerning the working area since the graduands students of Physics often get easy job opportunities in the development of complex softwares.
In order to provide an overview of computer programming Object Orienteds without specifically favoring one single language, the course plans to deal with two different computer languages: C++ and Java. This will make the students able to have a overall view about the programming paradigms and to be than receptive to subsequent computer languages which will be introduced in the future. Questo permetterà agli allievi di avere una visione di insieme dei paradigmi di programmazione e di essere quindi aperti a successivi linguaggi ad oggetti che si presenteranno nel futuro. Further details shown below.
C++ The educational goal is to provide the basci knowledge about computer programming focused on objects using the computer language C++.
Java The goal of the course is to develop the skills necessary to use the computer language Java (meant as Java 2 Platform Standard Edition – J2SE with jdk1.6) for the development of applications Object Oriented. To use properly the basic concepts of computer programming Object Oriented such as hereditariness, overloading, overriding, access control, access modifiers, interfaces, abstract classes. To develop applications for the IO management. To manage the graphical interfaces properly to create applications by the AWT. To programme using the threads and to properly manage the sockets for the TCP/IP communication. To implement distributed applications properly. Achieved the sufficient knowledge for the Object Oriented computer programming in Java, the educational goal is to provide the basics of Numerical Calculus for the solution to mathematical problems. The attempt will be to develop the student capability to face the solution to a real problem by means of the Object Oriented computer programming in Java Language, using the suitable numerical method.
- Oggetto:
Risultati dell'apprendimento attesi
- Oggetto:
Modalità di insegnamento
- Oggetto:
Modalità di verifica dell'apprendimento
prova pratica
Practical Examination
- Oggetto:
Attività di supporto
- Oggetto:
Programma
C++ Introduzione alla programmazione orientata agli oggetti - Nozioni di base ed avanzate del linguaggio C++
Java Introduzione alla programmazione in Java La programmazione Object Oriented in Java Elementi di programmazione avanzata in Java Gestione delle Eccezioni, Input e Output in Java Il package AWT, I Thread Il Net Working. Metodi per la soluzione di ODE con una condizione al contorno - L’equazione di Eulero - RungeKutta - Predictor-Corrector. Metodi per la risoluzione di Equazioni Integrali: integrazione numerica (quadratura) - Trapezoidale o Simpson’s o [Bode’s] - Integrazione Monte Carlo Utilizzo di librerie grafiche (package javagently, JfreeChart) per il rendering dei risultati.
C++ Introduction to Object Oriented Programming. Introduction to the C++ language. Basic and advanced topics.
Java Introduction to the Java Language and the OOP making use of Java. Advanced Java programming with Exception management, I/O, Abstract Windowing Tookit, Thread and Networking. Once students have acquired enough expertise on language, it will be used for implementing basic numerical methods for solving Physiscs problems. There will be introduced ODE techniques such as Eulero equation, the Runge Kutta and Predictor Corrector. Hence basic integration techniques such as Equally-Spaced Abscissas and Monte Carlo methods. Results will be plot on graphs making use of open source graphic libraries such as JavaGently and JFreeChart.
Testi consigliati e bibliografia
- Oggetto:
H Deitel and P Deitel C++ How to Program 4th Edition - Prentice Hall
H.Shildt Java McGrawHill
William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery NumericalRecipesin in C++ The Art of Scientific Computing 2nd Edition Cambridge University Press, 2002
Judy Bishop Java Gently for Engineers and Scientists 3rd Edition Addison Wesley,
M.Fowler UML Distilled AddisonWesley2001
B.E. Wampler The Essence of Object-Oriented Programming with Java and UML Addison Wesley, 2001
H Deitel and P Deitel C++ How to Program 4th Edition - Prentice Hall
H.Shildt Java McGrawHill
William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery NumericalRecipesin in C++ The Art of Scientific Computing 2nd Edition Cambridge University Press, 2002
Judy Bishop Java Gently for Engineers and Scientists 3rd Edition Addison Wesley,
M.Fowler UML Distilled AddisonWesley2001
B.E. Wampler The Essence of Object-Oriented Programming with Java and UML Addison Wesley, 2001
- Oggetto:
Orario lezioni
Lezioni: dal 26/09/2016 al 28/11/2016
Nota: Orario visualizzabile alla sezione "Orario lezione"
- Oggetto:
Note
- Oggetto: