PROGRAMMAZIONE II
cod. 13606

Anno accademico 2009/10
2° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Interdisciplinarità e applicazioni
Tipologia attività formativa
Affine/Integrativa
32 ore
di attività frontali
4 crediti
sede:
insegnamento
in - - -

Obiettivi formativi

Il corso si propone di fornire gli strumenti di base per la gestione di progetti di programmazione avanzata. Lo stile risulterà per larghi tratti informale, con poco accento sul rigore della formulazione astratta della programmazione, ma con forte enfasi sulla acquisizione di capacità di risoluzione di problemi.<br />
Il corpo principale sarà costituito dall'introduzione alla programmazione 'object-oriented' in ambiente C++. L'attenzione sarà posta su concreti esempi di risoluzione di problemi, in particolare in riferimento alle tecniche numeriche di base utili come strumenti di lavoro al fisico. <br />
Si forniranno poi agili indicazioni per muoversi in ambienti di sviluppo ad elevata integrazione di funzionalità (Matlab) e (ove possibile in relazione allo stato di avanzamento del corso) rudimenti di programmazione simbolica (Mathematica). Ancora una volta, l'accento sarà posto sulla soluzione di problemi concreti, di interesse comune per il fisico.

Prerequisiti

Lo studente dovrà aver seguito i corsi di Laboratorio di Informatica e di Programmazione 1.

Contenuti dell'insegnamento

 Il corso propone contenuti avanzati rispetto alla prima introduzione alla programmazione fornita dai corsi di Laboratorio di Informatica e Programmazione 1. A grandi linee, i contenuti di base sono i seguenti:<br />
<br />
Introduzione a strumenti di gestione del processo di costruzione e benchmarking di programmi (le utilities make, ar, gprof).<br />
Introduzione alla programmazione object-oriented. Gli strumenti forniti dal linguaggio C++. Esempi di gestione di oggetti, classi  e metodi nell'utilizzo di tecniche di base di analisi numerica applicata alla Fisica.<br />
Gli ambienti di sviluppo ad elevata integrazione di funzionalità: il caso di Matlab. Un caso di utilizzo: analisi di dati.<br />
Rudimenti di calcolo simbolico: utilizzo dell'ambiente di Mathematica (quest'ultimo punto è un contenuto supplementare; sarà coperto compatibilmente con lo stato di avanzamento del corso)

Programma esteso

- - -

Bibliografia

Si fa largo uso di appunti forniti dal docente (messi a disposizione sul web insieme ai codici sviluppati a lezione) e di materiale di riferimento disponibile sotto licenza GNU in rete.<br />
Possono essere utili  (ma non sono indispensabili)<br />
<br />
un testo generale come il classico B. Stroustrup, 'Il linguaggio C++' (Addison-Wesley: consigliata l'edizione originale in inglese!);<br />
un qualsiasi  manuale di C++ di cui lo studente sia eventualmente già in possesso;<br />
i manuali di riferimento di Matlab (MathWorks) e Mathematica (Wolfram Media).

Metodi didattici

Ogni argomento sarà presentato nel corpo di un piccolo, ma autoconsistente programma. Lo studente avrà in questo parte attiva, essendogli richiesto di collaborare nello sviluppo e/o verifica del programma.<br />
Tutte le lezioni sono in aula attrezzata (studenti in postazioni dotate di PC).<br />
La prova finale consiste nella presentazione di un piccolo progetto realizzato dallo studente, accompagnato da una breve relazione scritta. E' richiesta la messa a punto di un programma che risolve un problema. I temi proposti richiedono sostanzialmente di sviluppare temi affrontati in aula a lezione, seguendo una schematica traccia. I tempi di presentazione sono concordati con il docente.

Modalità verifica apprendimento

- - -

Altre informazioni

- - -