Algoritmi e Strutture Dati

Documenti analoghi
Fondamenti di Programmazione

Indice. Introduzione PARTE PRIMA LE BASI DEL C++: IL LINGUAGGIO C 1

La programmazione ad oggetti: chiamate di metodi. Overloading. This

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

FONDAMENTI DI INFORMATICA II

Giuseppe Callegarin Java, Oggetti e Strutture Dati Cedam INDICE

Corso di Fondamenti di Informatica e Laboratorio T-AB

Corso Programmazione Java Standard

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE TRIENNIO: TERZA DISCIPLINA: INFORMATICA

UNIVERSITA DEGLI STUDI DI PERUGIA

Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Alberi binari e alberi binari di ricerca

FONDAMENTI DI INFORMATICA

Proff. Fabio Ciao e Raffaele Bortone

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

I Tipi di Dato Astratto

Strutture dati e loro organizzazione. Gabriella Trucco

Dipartimento di INFORMATICA TC - TTRG. Anno Scolastico Piano di Lavoro Disciplinare. INFORMATICA Articolazione: INFORMATICA Classe IV

Programmazione C Massimo Callisto De Donato

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

Fondamenti di Informatica e Laboratorio T-AB

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Progettazione di Algoritmi. a.a. 2015/16 Classe 3: matricole congrue 2 modulo 3

Indice. Prefazione. sommario.pdf 1 05/12/

Marco Liverani PROGRAMMARE IN C. Guida al linguaggio attraverso esercizi svolti e commentati

Algoritmi e Strutture Dati

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Heap e code di priorità

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)

Fondamenti di Informatica

Ricerca Operativa. Docente. 1. Introduzione

Grafi pesati Minimo albero ricoprente

Corso di Applicazioni di Intelligenza Artificiale LS. Prof. Paola Mello Anno accademico 2008/2009

Il Sistema Operativo

Ingegneria degli Algoritmi

Algoritmi e Strutture Dati

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Grafi: visita generica

Università di Padova Facoltà di Ingegneria Laurea triennale Corsi della classe 9 Ingegneria dell Informazione

Laboratorio di programmazione

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Introduzione. Fondamenti di Informatica 1. Dispensa 1 Gennaio Contenuti. Alfonso Miola. K Corso di Fondamenti di Informatica 1

Indice Introduzione I fondamenti di C#

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

Problemi, istanze, soluzioni

Indice. 1 Introduzione... 1

DISPENSE DI PROGRAMMAZIONE

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Indice generale. Prefazione

Introduzione al corso di Programmazione e Laboratorio

Elementi di Informatica e Programmazione

Automazione Excel con Visual Basic (base)

Programmazione di INFORMATICA e Laboratorio

Architettura dei calcolatori e Software di sistema

La conduzione nei semiconduttori Politecnico di Torino 1

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Linguaggi di alto livello, compilatori e interpreti

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2015/16 Classe 1 A

Principi di Progettazione del Software a.a " Introduzione al corso! Prof. Luca Mainetti! Università del Salento!

Transcript:

Algoritmi e Strutture Dati A.A. 15/16 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

Contatti Studio: stanza 513, V piano DIB Telefono: 080 544 2297 email: nicola.dimauro@di.uniba.it Sito: http://www.di.uniba.it/ ndm/courses/asd/ Ricevimento Vedi pagina web email (oggetto: [ASD]...) Telefono Avvisi Studio Homepage Bacheca Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 2

Lezioni Aula 1A Mar 9:30-12:30 Gio 8:30-11:30 Ven 9:30-11:30 Struttura Chiarimenti sulla lezione precedente Esposizione dei nuovi argomenti Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 3

Contenuti 1. Algoritmi e programmi Il ruolo delle tecniche di astrazione nella progettazione di programmi. La valutazione dell'algoritmo. 2. Metodologie di analisi: modelli di calcolo. Criteri di costo uniforme e logaritmico. La notazione asintotica. Delimitazioni inferiori e superiori. Metodi di analisi: caso peggiore, medio e migliore. Analisi di algoritmi ricorsivi: metodo dell'iterazione, metodo della sostituzione, il teorema fondamentale delle ricorrenze. 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Algebre di dati: specifica sintattica e semantica. La realizzazione. 3. Strutture lineari di dati Liste: specifiche, realizzazioni attraverso rappresentazioni sequenziali e collegate. Pile: specifiche e realizzazioni alternative, pile e procedure ricorsive. Code: specifiche e realizzazioni alternative. Scelta, implementazione e verifica di algoritmi per la ricerca, l'ordinamento e la fusione delle strutture dati proposte. 5. Insiemi e Dizionari Insiemi: specifiche e confronto tra realizzazioni alternative. Dizionari: specifiche e confronto di realizzazioni alternative. Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 4

Contenuti /2 6. Strutture non lineari di dati: Alberi binari ed n-ari. Gli alberi radicati e alberi ordinati. Alberi binari: specifiche, definizione ricorsiva, la corrispondenza con le liste, rappresentazioni e realizzazioni. Alberi binari di ricerca, alberi bilanciati. Alberi n-ari: specifiche, definizione ricorsiva, rappresentazioni e realizzazioni alternative. Algoritmi su alberi binari ed n-ari. 7. Code con priorità Specifiche, rappresentazioni e realizzazioni alternative. 8. Strutture non lineari di dati: Grafi Specifiche e realizzazioni alternative. Algoritmi su grafi: visita di un grafo, cammini minimi e generazione del minimo albero di copertura. 9. Tecniche algoritmiche Classificazione dei problemi: problemi di ricerca, di decisione, di ottimizzazione. Lo spazio di ricerca: definizione e proprietà. Il paradigma selettivo e il paradigma generativo. Tecnica dell'enumerazione, del backtracking, tecnica greedy, tecnica divide-et-impera. Problemi e metodi solutivi: string matching (algoritmo di Knuth- Morris-Pratt), partizionamento di insiemi, problema delle N Regine, problema dello zaino, problema del commesso viaggiatore, problema della colorazione, ricerca del percorso più breve in un grafo (algoritmo di Dijkstra), minimo albero di copertura (algoritmo di Kruskal), selezione di attività. Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 5

Contenuti /3 Introduzione alla programmazione Object-Oriented Introduzione al C++ C & C++: un pò di storia; Ambiente di sviluppo; Semplici Programmi; Convenzioni peri file Headere Le Funzioni Le componenti di un programma in C++; Librerie; Definizioni e prototipi; Header; Le informazioni di memorizzazione; Le regole di visibilità; funzioni inline; Passaggio di parametri di funzione e riferimenti; Gli argomenti di default; Scope; L overloading delle funzioni generiche Puntatori Dichiarazione ed inizializzazione di puntatori; Operatori; chiamata per riferimento; Privilegi di accesso e passaggio dei parametri; I puntatori a funzione; Puntatori per la manipolazione di stringhe Le Classi e ADT Strutture e classi; Visibilità e accesso ai membri di una struttura; La separazione di interfaccia e implementazione; Le funzioni di accesso e di utilità; I costruttori; I distruttori; L assegnamento tra oggetti; Gli oggetti e le funzioni membro costanti; Composizione; Funzioni e Classi friend; Il puntatore this; Gli operatori new e delete; Astrazione dei dati e information hiding; Container; iterator e proxy Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 6

Contenuti /3 Introduzione alla programmazione Object-Oriented Introduzione al C++ C & C++: un pò di storia; Ambiente di sviluppo; Semplici Programmi; Convenzioni peri file Headere Le Funzioni Le componenti di un programma in C++; Librerie; Definizioni e prototipi; Header; Le informazioni di memorizzazione; Le regole di visibilità; funzioni inline; Passaggio di parametri di funzione e riferimenti; Gli argomenti di default; Scope; L overloading delle funzioni generiche Puntatori Dichiarazione ed inizializzazione di puntatori; Operatori; chiamata per riferimento; Privilegi di accesso e passaggio dei parametri; I puntatori a funzione; Puntatori per la manipolazione di stringhe Le Classi e ADT Strutture e classi; Visibilità e accesso ai membri di una struttura; La separazione di interfaccia e implementazione; Le funzioni di accesso e di utilità; I costruttori; I distruttori; L assegnamento tra oggetti; Gli oggetti e le funzioni membro costanti; Composizione; Funzioni e Classi friend; Il puntatore this; Gli operatori new e delete; Astrazione dei dati e information hiding; Container; iterator e proxy Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 7

Testi A. Bertossi e A. Montresor, Algoritmi e Strutture di Dati, CittàStudi, Seconda edizione C. Demetrescu, I. Finocchi e G.F. Italiano, Algoritmi e strutture dati. Mac Graw Hill T. Cormen, C. Leiserson, R. Rivest, C. Stein. Introduzione agli algoritmi e strutture dati. Terza edizione, McGraw-Hill B. Stroustrup, C++ - Linguaggio, libreria standard, principi di programmazione, Terza edizione, Addison-Wesley M. Cadoli, M. Lenzerini, P. Naggar e A. Schaerf, Fondamenti della progettazione dei programmi - Principi, tecniche e loro applicazioni in C++, Città Studi Edizioni R. Sedgewick, Algoritmi in C++, terza edizione, Addison- Wesley Algoritmi e Strutture Dati A.A. 13/14, N. Di Mauro 8