- Oggetto:
- Oggetto:
Tecniche di calcolo per la fisica -- Applications of Computational tecniques for physics
- Oggetto:
Anno accademico 2011/2012
- 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
- 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.
- 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
- Oggetto: