Corso di Laurea in Informatica - A.A. 2016/17, II semestre

Esperienze di Programmazione 247AA

Docenti
  Francesco Romanihomeromani@di.unipi.it
Orario
 
 
Mercoledì 11-13 Aula L1
Venerdì 14-16 Aula L1
 
 
 
 

Presentazione

Il corso intende mostrare attraverso esempi ragionati alcune tecniche di programmazione adatte a risolvere problemi reali. Verranno mostrati esempi sia di problemi di elevata complessità temporale che di problemi di gestione di grandi quantità di dati. Sarà fatto anche il confronto tra linguaggi diversi (Java, Matlab, Mathematica, LISP, FORTRAN) sempre limitandosi ad esempi significativi. Il corso servirà anche come contenitore per la presentazione di esperienze di programmazione da parte di gruppi di ricerca del dipartimento.

L'esame può essere sostenuto dagli studenti iscritti alla laurea Triennale in Informatica Classe L31 e inserito nel piano di studi tra gli insegnamenti complementari. Gli studenti iscritti alla laurea Triennale in Informatica Classe 26 possono sostenerlo tra gli insegnamenti a scelta oppure al posto di due seminari. Singole lezioni possono essere seguite senza alcuna formalità.

L'esame consiste in un progetto individuale o a piccoli gruppi in un linguaggio da concordare con i docenti. Il materiale necessario per l'esame verrà distribuito e/o segnalato individualmente.

Consigli per l'esame

L'argomento del progetto può essere di programmazione numerica o non numerica ma non sono accettati lavori di perché sono previsti i rispettivi laboratori

Ai fini del voto viene valutata solo la relazione da consegnare in formato PDF.

Il modo con cui può essere organizzata una buona relazione è il seguente

fino a qui siamo indipendenti dal codice e addirittura dal linguaggio

NB questo è grosso modo come si scrive una tesi sperimentale di Informatica, la differenza consiste nel carico di lavoro da solo 6 CFU e nel fatto che il tutto tratta tipicamente un problema semplice e noto invece di un problema originale come in genere avviene per le buone tesi di laurea.

Prerequisiti

Avere seguito i corsi di programmazione del I anno e del I semestre del II anno, nonché Analisi e Calcolo Numerico.

 

Lezioni e materiale del corso

 Mercoledì 22/02 Introduzione al Corso,
slides
 Venerdì 24/02 Programmazione a Oggetti in Java: Implementazione di Numeri Complessi
slides
 Mercoledì 1/03 Introduzione a XML
slides
 Venerdì 3/03 ASSEMBLEA DI ATENEO
 
 Mercoledì 8/03 Ricerca in spazi di stati
slides
 Venerdì 10/03 Ricerca di Parole Crociate I
slides
 Mercoledì 15/03 Introduzione a Mathematica
 
 Venerdì 17/03 Ricerca di Parole Crociate II
slides
 Mercoledì 22/03 Grafica con Mathematica
 
 Venerdì 24/03 La Trasformata Veloce di Fourier
slides1
slides2
 Mercoledì 29/03 Programmazione in Mathematica
 
 Venerdì 31/03 SCIOPERO BIDELLI
 
 Mercoledì 5/04 Calcolo Numerico con Mathematica
 
 Venerdì 21/04 NMF e Clustering
slides
 Mercoledì 26/04 Il mistero più profondo della Matematica
 
 Venerdì 28/04 Il Fortran
slides
 Mercoledì 3/05 Il calcolo di e
slides
 Venerdì 5/05 Il caso e la Necessità
slides
 Mercoledì 10/05 Il linguaggio LISP
slides
 Venerdì 12/05 Programmazione a Oggetti in Java: Calcolo di Espressioni Aritmetiche
slides
 Mercoledì 17/05 La legge di Zipf
slides
 Venerdì 19/05 Wikipedia e la generazione di Formari
slides