ALGORITMI E LABORATORIO

Documenti analoghi
ALGORITMI E COMPLESSITA'

Algoritmi e Strutture Dati

Algoritmi e Strutture dati a.a. 2013/2014

Algoritmi e Strutture dati a.a. 2012/2013

ECONOMIA E GESTIONE DELLE IMPRESE BANCARIE A - L

Algoritmi e Strutture Dati

ECONOMIA E GESTIONE DELLE IMPRESE BANCARIE M - Z

Università degli Studi di Enna Kore

PROGRAMMAZIONE II A - L

Architettura. Nome Modulo Tipologia lezioni Ore Docente SSD Ruolo Interno Affidamento. Vincenzo Conti

CONTABILITÀ E BILANCIO

Alcuni luoghi comuni sull informatica e sull informatico

Algoritmi e Strutture Dati

MANAGEMENT DELLE RISORSE UMANE

COMPORTAMENTO ORGANIZZATIVO A - L

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Matematica Anno accademico 2016/ anno

Università degli Studi di Enna Kore Facoltà di Ingegneria ed Architettura

FONDAMENTI DI INFORMATICA - canale 1

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

PROGRAMMAZIONE E CONTROLLO

Algoritmi e Strutture Dati

FONDAMENTI DI INFORMATICA - canale 2

Algoritmi e Strutture di Dati

FONDAMENTI DI INFORMATICA - canale 4

algoritmi e strutture di dati

algoritmi e strutture di dati

Algoritmi e Strutture Dati

CALCOLATORI ELETTRONICI

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

INTERNATIONAL BUSINESS M - Z

FISICA APPLICATA STATISTICA MEDICA E INFORMATICA

Algoritmi e Strutture Dati

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

PETROGRAFIA PER I BENI CULTURALI

PROGRAMMAZIONE E CONTROLLO

DIPARTIMENTO DI ECONOMIA E IMPRESA Corso di laurea magistrale in Direzione aziendale Anno accademico 2017/ anno

INGEGNERIA DEL SOFTWARE

SOCIOLOGIA DEI NUOVI MEDIA

Informatica triennale (L31) sede di Bari Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

UNIVERSITA DEGLI STUDI DI PERUGIA

GESTIONE DELLE AZIENDE CULTURALI

DIRITTO COMMERCIALE A - L

VALUTAZIONE DEL RENDIMENTO ISTITUZIONALE E DEL PERSONALE

Università degli Studi di Enna Kore Facoltà di Ingegneria e Architettura

METODOLOGIA DELLA RICERCA ED EPIDEMIOLOGIA

DIRITTO PUBBLICO 9 CFU - 1 semestre

STORIA ECONOMICA A - O

Fondamenti di Informatica A.A Studenti

DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2016/ anno

METODOLOGIA DELLA RICERCA ED EPIDEMIOLOGIA

ELEMENTI DI ANALISI MATEMATICA 1 A - L

PEDAGOGIA GENERALE E SOCIALE

SOCIOLOGIA DEI NUOVI MEDIA

METODOLOGIA DELLA RICERCA SOCIALE

Algoritmi e Strutture Dati

ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15

L'ORGANIZZAZIONE COSTITUZIONALE DELLO STATO E LE GARANZIE DEI DIRITTI FONDAMENTALI Non obbligatoria, ma fortemente consigliata.

Algoritmi e Strutture Dati

MATEMATICA E STATISTICA

DIRITTO COMMERCIALE M - Z

INFRASTRUTTURE PER IL TERRITORIO

CALCOLATORI ELETTRONICI M - Z

POLITICA ECONOMICA A - L

ANALISI MATEMATICA II M - Z

PRATICHE NARRATIVE E FORMAZIONE DEL SE' PERSONALE E PROFESSIONALE

FISICA GENERALE I A - L

STRATEGIE RIPRODUTTIVE NELLE PIANTE E NEGLI ANIMALI

FILOSOFIA DEL DIRITTO M - Q

LA PEDAGOGIA DELL'INCLUSIONE FORMATIVA E SOCIALE

Incoraggiare gli studenti a esporre la loro opinione personale di fronte a un pubblico specializzato e non (Abilita comunicative).

DIRITTO DEL LAVORO DELLE PUBBLICHE AMMINISTRAZIONI

POLITICA ECONOMICA A - L

ECONOMIA E POLITICA AGRARIA

CRIMINALITÀ ORGANIZZATA, INDAGINI E ORDINAMENTO PENITENZIARIO

CALCOLATORI ELETTRONICI

Corso di Laurea Ingegneria Informatica

ISTITUZIONI DI ALGEBRA SUPERIORE

Università degli studi Magna Graecia di Catanzaro

STORIA ECONOMICA P - Z

DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2018/ anno

SCIENZA DELLE COSTRUZIONI A - L

ECONOMIA SANITARIA OBIETTIVI FORMATIVI PREREQUISITI RICHIESTI

Algoritmi e Sperimentazioni

ORGANIZZAZIONE AZIENDALE E DISCIPLINE MEDICO- LEGALI - canale 2

CRIMINALITÀ ORGANIZZATA, INDAGINI E ORDINAMENTO PENITENZIARIO

ITINERARI DELLA RESPONSABILITÀ IN DIRITTO COMPARATO, COMMERCIALE, TRIBUTARIO

MARKETING TERRITORIALE

BASI PSICOLOGICO RELAZIONALI

DIPARTIMENTO DI ECONOMIA E IMPRESA Corso di laurea in Economia Anno accademico 2017/ anno

TRADE AND SALES MANAGEMENT

GESTIONE DELLE AREE A VERDE PARCHI E GIARDINI

Transcript:

DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2016/2017-2 anno E 9 CFU - 1 semestre Docenti titolari dell'insegnamento DOMENICO CANTONE - Modulo - INF/01-6 CFU Email: cantone@dmi.unict.it Edificio / Indirizzo: Dipartimento di Matematica e Informatica, Viale Andrea Doria 6, 95125 Catania Telefono: 095-7383052 Orario ricevimento: http://www.dmi.unict.it/~cantone/orarioricevimento.html SIMONE FARO - Modulo - INF/01-3 CFU Email: faro@dmi.unict.it Edificio / Indirizzo: Dipartimento di Matematica e Informatica, Viale A.Doria n.6 Telefono: 095 7383053 Orario ricevimento: Disponibile all'indirizzo http://www.dmi.unict.it/~faro/calendar.php OBIETTIVI FORMATIVI Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative alle principali metodologie per la progettazione di algoritmi (incrementale, ricorsiva, programmazione dinamica, algoritmi golosi) nonché le tecniche per la loro analisi di complessità, sia nel caso pessimo che in quello medio. Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): saranno acquisite le capacità di risolvere semplici problemi che richiedono la progettazione e l'analisi di soluzioni algoritmiche. Autonomia di giudizio (making judgements): lo studente sarà in grado di valutare la qualità di una soluzione algoritmica in termini di efficienza e possibilità di riutilizzo. Abilità comunicative (communication skills): saranno acquisite le necessarie abilità comunicative ed un'adeguata appropriatezza espressiva nella comunicazione di problematiche inerenti gli studi algoritmici, anche ad interlocutori non esperti. Capacità di apprendimento (learning skills): lo studente avrà la capacita di adattare le conoscenze acquisite anche a nuovi contesti, nonché di aggiornarsi attraverso la consultazione delle fonti specialistiche del settore algoritmico. Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative alle al funzionamento e all'implementazione delle principali stutture dati analizzate durante il modulo teorico di Algoritmi Capacità di applicare conoscenza e comprensione (applying knowledge and understanding):

saranno acquisite le capacità di implementazione e di progettazione di soluzioni algoritmiche. Autonomia di giudizio (making judgements): Lo studente sarà in grado di giudicare l'efficacia della propria implementazione e del proprio lavoro progettuale. Capacità di apprendimento (learning skills): lo studente sarà in grado di adattare le soluzioni analizzate durante le lezioni anche ad altri contesti. PREREQUISITI RICHIESTI Strutture dati elementari e loro manipolazioni (liste, code, pile, alberi). Elementi di matematica discreta, di programmazione I e II, e di analisi matematica Lo studente dovrà conoscere i proncipali paradigmi di programmazione e le principali strutture dati. La conoscenza del linguaggio di programmazione ad oggetti C++ è un prerequisito fondamentale. FREQUENZA LEZIONI Per una piena comprensione degli argomenti del corso e delle tecniche illustrate, la frequenza delle lezioni è fortemente consigliata. La frequenza delle lezioni è fortemente consigliata. CONTENUTI DEL CORSO Descrizione generale del corso Il corso presenta le principali metodologie di progettazione di algoritmi (incrementale, ricorsiva, programmazione dinamica, algoritmi golosi) e le tecniche per l'analisi di complessità, sia nel caso pessimo che nel caso medio. PROGRAMMA PARTICOLAREGGIATO DEL CORSO Introduzione Problemi computazionali e algoritmi: il problema dell'ordinamento Algoritmi come tecnologia Metodologia incrementale: algoritmo Insertion-Sort (correttezza e complessità) Metodologia divide-et-impera: algoritmo Merge-Sort (complessità) Notazioni asintotiche e relazioni tra esse

Notazioni standard e funzioni comuni Ricorrenze Il metodo di sostituzione Il metodo iterativo e dell'albero di ricorsione Il teorema master Ordinamento e statistiche d'ordine Heap e procedura per la sua costruzione L'algoritmo Heapsort Code di priorità L'algoritmo Quicksort e sua versione randomizzata Analisi di Quicksort nel caso peggiore e nel caso medio Limiti inferiori per l'ordinamento Ordinamento in tempo lineare: algoritmi Counting-Sort, Radix-Sort, Bucket-Sort Mediane e statistiche d'ordine Hashing Tabelle hash Funzioni hash (metodo della divisione, metodo della moltiplicazione, hashing universale) Indirizzamento aperto Alberi rosso-neri Rotazioni, inserimenti, cancellazioni Analisi di complessità Elementi della programmazione dinamica Sottostruttura ottima, ripetizione dei sottoproblemi, ricostruzione di una soluzione ottima Alcuni casi di studio: programmazione delle catene di montaggio, moltiplicazione di una sequenza di matrici, la più lunga sottosequenza comune, distanza di editing Elementi della strategia golosa Proprietà della scelta golosa, sottostruttura ottima Alcuni casi di studio: problema della selezione di attività, costruzione di un codice di Huffman Algoritmi elementari per grafi Visita in ampiezza Visita in profondità (classificazione degli archi) Ordinamento topologico Componenti fortemente connesse Il modulo di Laboratorio di Algoritmi ha lo scopo di fornire gli strumenti per l'implementazione degli algoritmi e delle strutture dati trattate nel corso di Algoritmi, attraverso l'utilizzo della programmazione ad oggetti. Il linguaggio C++ verrà usato come strumento principale per presentare le implementazioni delle strutture dati e degli algoritmi.

TESTI DI RIFERIMENTO Il libro di testo consigliato è: T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein. Introduction to algorithms (Third Edition), The MIT Press, Cambridge - Massachusetts, 2009 disponibile anche nella traduzione italiana 1) T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein. Introduzione agli algoritmi e strutture dati 3/ed, McGraw-Hill Italia, 2010. I testi di riferimento sono gli stessi specificati per iul modulo teorico di Algoritmi PROGRAMMAZIONE DEL CORSO * Argomenti Riferimenti testi 1 Introduzione. Algoritmi come tecnologia. Cap.1.1-1.2 di 1) 2 * Algoritmo Insertion-Sort Cap. 2.1 di 1) e materiale didattico integrativo 3 * Divide-et-impera Cap. 4.1 di 1) e materiale didattico integrativo 4 * Ricorrenze Cap. 4.3-4.5 di 1) e materiale didattico integrativo 5 * Heapsort Cap. 6 di 1) e materiale didattico integrativo 6 Quicksort Cap. 7 di 1) 7 * Ordinamento in tempo lineare Cap. 8 di 1) e materiale didattico integrativo 8 * Hashing Cap. 11.1-11.4 di 1) e materiale didattico integrativo 9 * Alberi rosso-neri Cap. 13 di 1) e materiale didattico integrativo 10 * Elementi della programmazione dinamica Cap. 15 di 1) e materiale didattico integrativo 11 * Elementi della strategia golosa Cap. 16.1-16.3 di 1) e materiale didattico integrativo 12 * Algoritmi elementari per grafi Cap. 22 di 1) e materiale didattico integrativo

* Argomenti Riferimenti testi 1 Heap ed HeapSort 2 Ordinamento in tempo lineare 3 Indicizzazione e Hashing 4 Programmazione dinamica 5 Programmazione greedy 6 Algoritmi di gestione e visita di un grafo * Conoscenze minime irrinunciabili per il superamento dell'esame. N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame. MATERIALE DIDATTICO I lucidi delle lezioni e delle esercitazioni sono messi a disposizione degli studenti sul sito http://www.dmi.unict.it/~cantone/homealgoritmi-17/italgoritmi.html Il codice degli esempi e degli esercizi svolti a lezione sarà reso disponibile per gli studenti sul sito del docente, ed in particolare alla pagina web http://www.dmi.unict.it/~faro/laboratorio_algoritmi.php VERIFICA DELL'APPRENDIMENTO MODALITÀ DI VERIFICA DELL'APPRENDIMENTO L esame finale è essenzialmente scritto. La verbalizzazione sarà preceduta da una breve discussione sul compito scritto e, nei casi dubbi, da una breve verifica orale. L'esame si svolgerà in due prove. La prima prova, della durata di 45 minuti, consiste in un test a risposta multipla, che viene sostenuto attraverso il sistema di esercitazione e secondo le modalità specificate all'interno dello stesso. Gli studenti che avranno ottenuto una valutazione superiore o uguale a 18 nella prima prova potranno accedere all seconda prova, della durata di circa 90 minuti. Tale prova di laboratorio consisterà nell'implementazione, in C++, di una o più tre le strutture dati studiate a lezione. La seconda prova verrà svolta attraverso l'utilizzo di un editor di testo e di un compilatore.

DATE DEGLI APPELLI I SESSIONE 06/02/2017 23/02/2017 II SESSIONE 14/06/2017 07/07/2017 III SESSIONE 19/09/2017 6/10/2017 SESSIONE STRAORDINARIA 08/05/2017 7/12/2017 Tutti gli esami avranno inizio alle ore 9:00. L'esame del modulo di laboratorio si svolgerà di norma nel pomeriggio del medesimo giorno in cui si sosterrà l'esame di Algoritmi. PROVE IN ITINERE L esame finale del modulo di Algoritmi può essere completato mediante due prove in itinere. La prima prova in itinere verterà sulla prima parte del corso e sarà offerta durante la seconda parte del periodo didattico in data concordata con gli studenti. La seconda prova in itinere verterà sulla seconda parte del corso e sarà offerta in occasione del primo appello di esami. Le prove in itinere consistono in domande aperte che possono riguardare sia argomenti di natura teorica che soluzioni di problemi analoghi a quelli trattati nel corso. PROVE DI FINE CORSO La prova scritta finale del modulo di Algoritmi è costituita, di norma, da quattro domande aperte che possono riguardare sia argomenti di natura teorica che soluzioni di problemi analoghi a quelli trattati nel corso. ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI http://www.dmi.unict.it/~cantone/esami/esami TRIENNALE/Algoritmi-sample-2016.pdf

Le domande relative alla prima prova d'esame sono le medesime che gli studenti potranno trovare all'interno del Sistema di Esercitazione. I testi delle prove di laboratorio in C++ sono invece disponibili sul sito internet del docente.