====== 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
----