ALGORITMICA

Corso di Laurea in Informatica Umanistica
Anno Accademico 2012-13

6 crediti


  Docente   Linda Pagli
  Home http://www.di.unipi.it/~pagli
  Email pagli@di.unipi.it
  Orario
       martedì 14-16, aula L, PoloFib
       mercoledì 14-16, aula L, PoloFib
  Ricevimento
 Dopo ogni lezione, e su appuntamento.


  Programma del corso
  Bibliografia
  Modalità di esame
  Testi prove scritte
  Risultati compiti
  Registro delle lezioni

 

 

 

 

 

 

 

 

 

 


Modalità d'esame



Bibliografia

Risulta quanto mai difficile parlare formalmente di Algoritmi senza disporre di una sufficiente "base matematica". Pertanto in questo corso di Algoritmica per InformaticaUmanistica cercheremo di lasciare da parte gli aspetti formali di "analisi degli algoritmi" e ci concentreremo sui principi e sulle tecniche di progettazione, accennando alla loro complessità. Date queste premesse, non  stato possibile identificare un libro di testo che trattasse di Algoritmica in modo preciso ma "non formale". Qui di seguito si "suggerisce" un libro di testo che riporta (quasi) tutti gli pseudo-codici degli algoritmi che discuteremo in classe. Il libro però è molto tecnico e quindi poco appropriato per la laurea in InformaticaUmanistica. Lo seguiremo per ciò che concerne la formalizzazione degli pseudo-codici degli algoritmi; gli studenti potranno d'altra parte utilizzare un qualunque altro libro per ciò che riguarda la discussione delle proprietà e della complessità di questi algoritmi. Materiale aggiuntivo relativo alle singole lezioni, verrà segnalato nel registro delle lezioni.

  P.Crescenzi, G.Gambosi, R.Grossi, G. Rossi.
  Strutture di dati e algoritmi.
  Pearson 2012, seconda edizione.
  Riferimento:    CGGR


Questo libro si propone di spiegare l'algoritmica in modo informale e leggero: fornisce letture introduttive agli argomenti trattati a lezione. Vi si espongono con semplicità le nozioni su cui è basata la costruzione di algoritmi e si mostra come, inaspettatamente, le stesse nozioni si incontrino nella letteratura e nella storia, nell'antropologia e nelle fiabe, guidando il lettore non esperto attraverso un territorio altrimenti ostico.


  F.Luccio, L.Pagli.
  Algoritmi, divinità e gente comune.
  Edizioni ETS 1999.

 

 

 

 

 

 


Testi prove scritte

Anno Accademico 2008-2009

Anno Accademico 2009-2010 Anno Accademico 2010-2011 Anno Accademico 2011-2012

 

 

 

 

 

 


Risultati compiti scritti Anno Accademico 2012-2013
Anno Accademico 2013-2014

 

 

 

 

 

 


Registro delle lezioni

N
Data
Argomenti
Riferimenti
1
17/02/2014
Introduzione al corso. Definizioni di problema e algoritmo.
Algoritmo di moltiplicazione egizia. Analisi di un problema semiserio.
Il problema delle dodici monete
2
18/02/2014
Seminario introduttivo alla complessità degli algoritmi tenuto dal prof. Romani Libro   CGGR: Introduzione.
3
25/02/2014
Modello RAM e complessità computazionale
Principali costrutti di programmazione
Prologo   Libro CGGR.
4
26/02/2014
Notazioni O grande, Omega e Theta definizione e uso.
Algoritmi di Ricerca sequenziale e loro complessita&grave.
Prologo; e pp.67-69   Libro CGGR.Introduzione
5
04/03/2014
Algoritmi di ordinamento InsertionSort e SelectionSort, analisi, limite inferiore per il problema. Introduzione   Libro CGGR. Capitolo1
6
05/03/2014
Problema della ricerca. Limite inferiore. Algortimo di Ricerca Binaria non ricorsivo. Introduzione alla ricorsione. pp.14-15   Libro CGGR.par 3.3
7
11/03/2014
Algortimo di Ricerca Binaria ricorsivo. Tecnica del Divide et Impera. Algoritmo del torneo. Equazioni di ricorrenza.   Libro CGGR.par.3.1, 3.2 e 3.3
8
12/03/2014
Esercitazione: esercizi su modifica di algoritmi noti e su Divide et Impera.
9
18/03/2014
Algoritmo di Merge. MergeSort: definizione, simulazione e analisi.   Libro CGGR.par.3.1
10
19/03/2014
Esercitazione: algoritmi diversi per il problema dell'intersezione di due insiemi con analisi di complessità. Eliminazione di occorrenze ripetute con o senza compattazione.
11
25/03/2014
Ordinamento di elementi che valgono solo 0 o solo 1. Quicksort e partition: definizione, analisi simulazione. QuickSort.
12
26/03/2014
Esercitazione. Esercizi di applicazione della tecnica Divide et Impera e di valutazione della complessità Esercizi
13
22/04/2013
Ordinamento in tempo lineare: il CountingSort. Numeri di Fibonacci: definizione e algoritmi di generazione. Ordinamento lineare I numeri di Fibonacci
14
09/04/2014
La Programmazione Dinamica. Il problema dell'Edit Distance. Programmazione dinamica
15
15/04/2014
Apparizioni approssimate di una stringa X breve in una stringa Y lunga come estensione dell'Edit Distance.Codice per l'Edit Distance.
Array bidimensionali, algoritmi di percorrenza.
16
16/04/2014
esercitazione: Esercizi su ordinamento lineare e programmazione dinamica.
17
29/04/2014
Problemi polinomiali e esponenziali. Le torri di Hanoi, algoritmo ricorsivo, crescita esponenziale. Problemi nella classe NP: il problema del sottografo completo.
18
30/04/2014
Eulero e il problema del ciclo euleriano. Il problema del ciclo hamiltoniano. Grafi: definizioni e rappresentazione con matrici di adiacenza. Numero massimo e minimo di archi. pag. 123-126   Libro LP.
19
06/05/2014
Grafi: Rappresentazione con matrici di adiacenza. Visite DFS e BFS. Procedura ricorsiva DFS. Esempi. grafi
20
07/05/2014
Alberi liberi, alberi con radice, esempi e terminologia. Rappresentazione con parentesi e visite in ordine anticipato e differito. Alberi binari e alberi binari di ricerca. Visita in ordine simmetrico.   Libro CGGR.pag. 114-116 alberi
21
13/05/2014
Esercitazione: esercizi di ripasso presi da vecchi compiti