This is an old revision of the document!
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 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.
Informazioni Generali
Docente:
- Marco Piangerelli 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, 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, Sito Web
Testi di Approfondimento
- C. Toffalori, F. Corradini, S. Leonesi, S. Mancini, Teoria della computabilità e della complessità, McGraw-Hill, 2005, 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
- 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
- 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
- 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 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
- 23/10/2017 Introduzione a R (parte 1), R_intro (Codice R)
- 06/11/2017 Loops, Iterazione e Ricorsione in R
- 09/11/2017 OOP in R
- 13/11/2017 Environments_I
- 16/11/2017 Environments_II , Environments (Codice R)
- 20/11/2017 Esercitazioni Classi S4 e RC (parte I)
- 21/11/2017 Esercitazioni Classi S4 e RC (parte II)
- 27/11/2017 Esercitazioni Classi RC e ricorsione
- 04/12/2017 Esercitazione Classi RC e data frame
- 11/12/2017 Correzione e Sorting
- 21/12/2017 Alberi di ricerca binari e alberi AVL - slides Prof. Merelli
- 08/01/2018 Heap
- 11/01/2018 Operazioni di Ricerca
- 15/01/2018 Hashing —→ CANCELLATA
- 18/01/2018 Hashing
- 22/01/2018 Introduzione alla teoria dei grafi
- 24/01/2018 Algoritmi di Visita
- 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