Introduzione ASD 2011-12 - Dipartimento di Scienze Ambientali

Alcuni luoghi comuni
sull’informatica e sull’informatico
1. Informatica = Computer
2. Informatico = Programmatore
Quindi: per fare l’informatico basta solo un
po’ di pratica!
Informatica = Computer?
« Computer science is no
more about computers than
astronomy is about
telescopes »
Edgser W. Dijkstra
(1930–2002)
(E. W. Dijkstra)
Cosa è l’informatica?
Gli Elementi di Euclide (300 a.C.)
Libro I, Proposizione I. Costruire un triangolo
equilatero su un segmento dato.
1.  Sia AB il segmento dato.
C
2.  Si tracci la circonferenza
di centro A e raggio AB.
3.  Si tracci la circonferenza
di centro B e raggio AB.
4.  Sia C un punto di
intersezione tra le due
circonferenze.
5.  Il triangolo ABC è quello
cercato.
A
B
“Informatici” ante litteram
Basta solo in po’ di pratica?
«Quelli che s’innamorano della pratica
senza la scienza, sono come i
nocchieri che entrano in naviglio
senza timone o bussola, che mai
hanno certezza dove si vadano.
Sempre la pratica dev’essere
edificata sopra la buona teorica […]
e senza questa nulla si fa bene.»
Leonardo da Vinci (1452–1519)
Trattato della pittura
Programma del corso
(mod 1, 9 cfu)
Algoritmi, modelli di calcolo e metodologie di analisi. Introduzione
informale agli algoritmi. Modelli di calcolo. Notazione asintotica.
Ricorrenze.
Strutture dati elementari. Array, liste. Pile, code. Alberi.
Ordinamento. Heapsort. Mergesort. Quicksort. Mediane e statistiche
d’ordine.
Alberi di ricerca. Alberi binari. Alberi rosso-neri. Alberi AVL.
Hashing. Tavole ad accesso diretto. Tavole hash. Risoluzione delle
collisioni.
Tecniche fondamentali per il progetto di algoritmi. Tecnica divide et
impera. Programmazione dinamica. Algoritmi golosi (o greedy).
Grafi e visite di grafi. Rappresentazione di grafi. Visita in ampiezza.
Visita in profondità. Ordinamento topologico. Componenti fortementi
connesse.
Alberi di copertura minimi. Definizioni e proprietà. Algoritmi di
Kruskal e Prim.
Cammini minimi. Definizioni e proprietà. Algoritmi di Dijkstra,
Bellman-Ford e Floyd-Warshall.
Problemi NP-completi. Classi di complessità P e NP. Riducibilità
polinomiale e NP-completezza. Esempi di problemi NP-completi.
Programma del corso
(mod 2, 6 cfu)
Obiettivi Il corso tratta una serie di argomenti scelti che estendono e
integrano i concetti e le tecniche introdotti nel modulo 1. Ogni
argomento prevede sperimentazioni in laboratorio che hanno lo scopo di
sviluppare gli algoritmi presentati e di applicarli nella soluzione di
problemi attuali. Il corso darà risalto alle principali tecniche di ‘‘problem
solving’’ in modo da fornire allo studente le competenze adatte a
formalizzare e risolvere problemi con rigore e metodo matematico.
Programma
Reti di flusso. Definizione e principali proprietà. Metodo di FordFulkerson. Algoritmo di Edmonds-Karp. Applicazione al problema
dell’abbinamento massimo nei grafi bipartiti.
Sperimentazione: Problema della segmentazione di immagini.
String matching. Formalizzazione del problema. Algoritmo di RabinKarp. Automa di sting-matching. Algoritmo di Knuth-Morris-Pratt.
Sperimentazione: Calcolo della struttura secondaria dell’RNA.
Geometria computazionale. Introduzione e risoluzione di problemi di
geometria elemetare. Involucro convesso. Algoritmi di Graham e Jarvis.
Ricerca della copia di punti più vicini.
Sperimentazione: Applicazioni dell’involucro convesso.
Ogni argomento prevede inoltre esercitazioni individuali per verificare e
applicare le competenze fornite durante il corso.
Libri di testo
T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein
Introduction to Algorithms
MIT Press, 2009
(Traduzione italiana:
Introduzione agli algoritmi e strutture dati, McGraw-Hill, 2010)
C. Demetrescu, I. Finocchi, G. F. Italiano
Algoritmi e strutture dati
McGraw-Hill, 2008.
L’esame
Prova scritta: esercizi, risoluzione di problemi, teoremi
Prova orale: discussione su argomenti svolti a lezione
Prove intermedie: con valutazione.
Suggerimenti
Imparare a memoria?
tra)(k«Quando l’intelletto assimila le
nozioni prima di deporle nella
memoria, ciò che in seguito ne trae è
veramente suo;
ma colui che sovraccarica la
memoria senza curarsi di capire,
rischia di non poterne mai trarre
nulla che gli appartenga davvero.»
J.-J. Rousseau (1712–1778)
Emilio
(E. W. Dijkstra)
In conclusione:
apprendere e insegnare
tra)(k«E’ meglio una testa ben fatta
che una testa ben riempita.»
Montaigne (1533–1592)
Saggi
(E. W. Dijkstra)