====== Laboratorio di Algoritmi e Strutture Dati ====== ---- ===== News ===== * Gli studenti degli anni accademici precedenti possono ancora fare l'esame con il docente Luca Tesei negli appelli già fissati a Febbraio 2018. La pagina di riferimento si trova a questo [[http://didattica.cs.unicam.it/doku.php?id=didattica:triennale:asd:ay_1617:lab|link]]. * LA LEZIONE DI LABORATORIO DEL 2/11 E' STATA CANCELLATA * LA SETTIMANA DAL 20/11 al 26/11, LE LEZIONI DI LABORATORIO SI TERRANNO IL 20/11 (COME DA ORARIO) E IL 21/11 (NELL'ORARIO DI TEORIA) PER PERMETTERE LO SVOLGIMENTO DEL PARZIALE DI TEORIA IL 23/11 * LA PROVA PARZIALE DI LABORATORIO SI SVOLGERA' IL GIORNO 06/12 DALLE ORE 9:00 ALLE ORE 11:00 IN LABORATORIO LA1 * LA LEZIONE DI DOMANI, GIOVEDI' 14 DICEMBRE, E' ANNULLATA. * 21/12/2017 PUBBLICATI GLI ESITI DEL PRIMO PARZIALE * 31/01/2018 PUBBLICATI GLI ESITI DEL SECONDO PARZIALE * PUBBLICATE SU ESSE 3 LE DATE DELLE PROVE DI LABORATORIO TOTALI. SI NOTI CHE SONO RIPORTATI CON LA DICITURA "I PROVA ORALE LAB","II PROVA ORALE LAB", ECC ECC. * L'APPELLO DEL 23/02/2018 E' RIMANDATO. A BREV VERRA' COMUNICATA LA DATA DEL NOVO APPELLO * 22/02/2018 PUBBLICATI GLI ESITI DEL TERZO PARZIALE * L'APPELLO DI LABORATORIO DEL 23 FEBBRAIO E' STATO RIPROGRAMMATO PER GIOVEDI' 8 MARZO ALLE ORE 14:30. L'APPELLO E' RISERVATO SOLO AGLI STUDENTI GIA' ISCRITTI. ---- ===== Informazioni Generali ===== **Docente**: * Marco Piangerelli [[http://www.emanuelamerelli.eu/bigdata/doku.php|Sito Web BioShape and Data Science Lab ]] **Orario delle Lezioni**: * Tutti i lunedì dalle 16 alle 18 e tutti i giovedì dalle 09 alle 11 in aula LA1 del Polo Lodovici, via Madonna delle Carceri 9, Camerino. **Ricevimento studenti**: * Giovedì dalle 11:00 alle 13:00. **Acronimo ufficiale del corso**: * ASDL1718 ---- ===== Obiettivi del Corso ===== Gli obiettivi indicati sono quelli del corso intero, comprensivo della parte teorica e della parte di laboratorio. **CONOSCENZA E CAPACITÀ DI COMPRENSIONE** Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: * Comprendere la nozione di complessità computazionale di un algoritmo in tempo e in spazio * Illustrare le principali tecniche di progettazione di algoritmi * Conoscere le strutture dati di base e le principali strutture dati evolute per risolvere problemi specifici di ricerca e rappresentazione di strutture complesse **CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE** Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: * Applicare le principali tecniche di progettazione di algoritmi * Classificare ed analizzare gli algoritmi in base alla loro complessità computazionale * Ideare e implementare algoritmi per risolvere problemi specifici utilizzando le tecniche e le strutture dati conosciute **AUTONOMIA DI GIUDIZIO** Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: * Scegliere (ed implementare) le strutture dati più adatte alla risoluzione di un dato problema realizzando opportuni compromessi tra esigenze conflittuali come costo, semplicità ed efficienza. **ABILITÀ COMUNICATIVE** Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: * Produrre una relazione dettagliata sull’ideazione e l’implementazione di un progetto * Avere la capacità di lavorare in gruppo per la realizzazione di un progetto **CAPACITÀ DI APPRENDIMENTO** Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: * Ricercare, comprendere e implementare algoritmi e strutture dati esistenti, ma non trattati nel corso, per la risoluzione di problemi specifici ---- ===== Contenuti del Corso ===== La parte di laboratorio verterà sui seguenti contenuti: * Il linguaggio di programmazione R * Programmazione funzionale e programmazione orientata agli oggetti con R * Loops, Iterazione e Ricorsione * Oggetti di classe S3, S4 e RC * Environments * Implementazione di tipi di dato astratto tramite tipi generici e interfacce di specifica: liste, pile, code. * Implementazione di diversi algoritmi di ordinamento generici, realizzazione di un benchmark per la valutazione numerica della loro complessità computazionale e per la loro comparazione * Implementazione di algoritmi su strutture dati dinamiche: alberi bilanciati, alberi binari di ricerca * Tabelle Hash * Rappresentazione di grafi e alberi, implementazione di visite e altri algoritmi su grafi e alberi ---- ===== Materiale ===== ** Slides e altro materiale** * Materiale fornito dal docente (Vedere sezione MATERIALE DIDATTICO) * * H. Wickham, Advanced R, Chapman & Hall/CRC The R Series, 1st Edition, [[http://adv-r.had.co.nz/|Versione On-line]] ---- **Testi di Riferimento** * T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduzione agli Algoritmi e Strutture Dati, McGraw-Hill, 2005, [[http://www.ateneonline.it/catlibro.asp?item_id=2575|Sito Web]] **Testi di Approfondimento** * C. Toffalori, F. Corradini, S. Leonesi, S. Mancini, Teoria della computabilità e della complessità, McGraw-Hill, 2005, [[http://www.catalogo.mcgraw-hill.it/catLibro.asp?item_id=1897|Sito Web]] * M.R. Garey, and D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP- Completeness, W.H. Freeman and Co ed. - 1979 ---- ===== Mini Progetti per i Frequentanti ===== ---- Mini Progetto 1 * {{didattica:triennale:asd:ay_1718:mini_progetto_i_protected.pdf|Mini progetto - scadenza 15 Gennaio}} * Per la condivisione dei progetti: mandare tutto il materiale, nominato nel modo indicato al punto successivo, all'indirizzo email marco.piangerelli@unicam.it * Per caricare il progetto nominare il/i file nel seguente modo: MP1_mariorossi (un solo studente) oppure MP1_mariorossi_giuseppe bianchi (due studenti) Mini Progetto 2 * {{didattica:triennale:asd:ay_1718:mini_progetto_ii_protected.pdf|Mini progetto II - scadenza 14 Febbraio}} * Per la condivisione dei progetti: mandare tutto il materiale, nominato nel modo indicato al punto successivo, all'indirizzo email marco.piangerelli@unicam.it * Nominare il/i file nel seguente modo: MP2_mariorossi (un solo studente) oppure MP2_mariorossi_giuseppe bianchi (due studenti) * Per l'iscrizione su ESSE 3 scegliere: "Terzo Parziale Laboratorio - 14/02/2108" ---- ===== Progetti Totali per i non Frequentanti ===== *{{didattica:triennale:asd:ay_1718:progetto_totale_protected.pdf| Progetto Totale}} * Per la condivisione dei progetti: mandare tutto il materiale, nominato nel modo indicato al punto successivo, all'indirizzo email marco.piangerelli@unicam.it * Nominare il/i file nel seguente modo: PT_mariorossi (un solo studente) oppure PT_mariorossi_giuseppe bianchi (due studenti) * Il material deve essere mandato ALMENO 5 GIORNI PRIMA con allegata una relazione di massima, in PDF, di quello che si è fatto. * L'iscrizione dovrà essere fatta agli appelli con la dicitura seguente: PROGETTO TOTALE I, PROGETTO TOTALE II, ... dove I, II, III,...indicheranno gli appelli in ordine temporale. ---- ===== Esami ===== **Date Esami A.A. 2017/2018** * Il primo parziale di Laboratorio di ASD si svolgerà il 06/12/2017, Mercoledì, in classe, dalle ore 9:00 alle ore 11:00 (aula LA1). LA PROVA CONSISTE DI 3/4 ESERCIZI DEL TIPO DI QUELLI SVOLTI A LEZIONE (CREAZIONE DI CLASSI, ENVIRONMENT, PROGRAMMAZIONE RICORSIVA...) DA SVOLGERE PER ISCRITTO (CARTA E PENNA). ===== Materiale Didattico ===== * ORARIO LEZIONI {{didattica:triennale:asd:ay_1718:programma_lezioni.pdf|}} * LA LEZIONE DEL 30/11/2017 VERRA' RECUPERATA IN DATA DA CONCORDARE * LA LEZIONE DEL 15/01/2018 VERRA' RECUPERATA IN DATA DA CONCORDARE * LE LEZIONI SUDDETTE SONO STATE REGOLARMENTE RECUPERATE * [[didattica:triennale:asd:ay_1718:asds:main|Spazio ad accesso ristretto]] * 23/10/2017 {{didattica:triennale:asd:ay_1718:r_intro_protected.pdf|Introduzione a R (parte 1)}}, {{didattica:triennale:asd:ay_1718:r_intro_I.7z|R_intro (Codice R)}} * 30/10/2017 {{didattica:triennale:asd:ay_1718:r_intro_ii_protected.pdf|Introduzione a R (parte 2 - subsetting)}},{{didattica:triennale:asd:ay_1718:dataset.7z|Data set (parte 2)}},{{didattica:triennale:asd:ay_1718:r_intro_ii.7z|R_intro- subsetting(Codice R)}} * 06/11/2017 {{didattica:triennale:asd:ay_1718:r_iteration_recursion_protected.pdf|Loops, Iterazione e Ricorsione in R}} * 09/11/2017 {{didattica:triennale:asd:ay_1718:r_oo_protected.pdf|OOP in R}} * 13/11/2017 {{didattica:triennale:asd:ay_1718:r_environments_I_protected.pdf|Environments_I }} * 16/11/2017 {{didattica:triennale:asd:ay_1718:r_environments_II_protected.pdf|Environments_II }}, {{didattica:triennale:asd:ay_1718:environments_codes.7z|Environments (Codice R)}} * 20/11/2017 {{didattica:triennale:asd:ay_1718:codici_classi_rc_s4_20112017.7z|Esercitazioni Classi S4 e RC (parte I) }} * 21/11/2017 {{didattica:triennale:asd:ay_1718:codici_classi_rc_21112017.7z|Esercitazioni Classi S4 e RC (parte II) }} * 27/11/2017 {{didattica:triennale:asd:ay_1718:codici_classi_rc_27112017.7z|Esercitazioni Classi RC e ricorsione }} * 04/12/2017 {{didattica:triennale:asd:ay_1718:esercitazione_lago_04122017.7z| Esercitazione Classi RC e data frame}} * 11/12/2017 {{didattica:triennale:asd:ay_1718:esame.7z| Correzione}} e {{didattica:triennale:asd:ay_1718:sorting.7z|Sorting}} * 18/12/2017 {{didattica:triennale:asd:ay_1718:r_code_pile_liste_protected.pdf| Liste, pile e code slides + codice (all'interno)}},{{didattica:triennale:asd:ay_1718:liste.7z| Liste- codice}} * 21/12/2017 Alberi di ricerca binari e alberi AVL - slides Prof. Merelli * 08/01/2018 {{didattica:triennale:asd:ay_1718:r_heap_protetto.pdf| Heap}} * 11/01/2018 {{didattica:triennale:asd:ay_1718:r_opzioniricerca_protetto.pdf| Operazioni di Ricerca}} * 15/01/2018 Hashing ----> CANCELLATA * 18/01/2018 {{didattica:triennale:asd:ay_1718:r_hashing_protetto.pdf| Hashing}} * 22/01/2018 {{didattica:triennale:asd:ay_1718:r_grafi_protetto.pdf| Introduzione alla teoria dei grafi}} * 24/01/2018 Algoritmi di Visita {{didattica:triennale:asd:ay_1718:codapriorita.7z|Coda con priorità}} * 25/01/2018 Cammini minimi e Algoritmo di Dijkstra * 29/01/2018 Alberi minimi Ricoprenti e Algoritmi di Prim e Kruskal * 29/01/2107 Esercitazioni di algoritmi su grafi ----