About

This is the archive page for Teaching. Click to go to the frontpage of this site.

Last Comments

Bob (Pivot 1.30 Beta 2…): And this is what a commen…

Calendar

Archives

01 Dec - 31 Dec 2006


PhD Stuff

ADI - Italian PhD Association
Fullbright scolarships
Marie Curie Fellowship Association


My University

University of Camerino
Department of Mathematics and Computer Science
UNICAM - Computer Science
CERCODI UNICAM

Unicam Blog


Research Projects

Oncology Over Internet
Litbio Project
Litbio CoSy Group
BioAgent Project
Hermes Project


Bioinformatics Stuff

NETTAB

Bioinformatics Italian Society

BMC Bioinformatics

Bioinformatics Oxford Journal



Free time

Musicamdo

Miscellany

Powered byPivot - 1.30 beta 2: 'Rippersnapper' 
XML Feed (RSS 1.0) 
XML: Atom Feed 

07 December 06 - 00:44Informazioni Generali

Programma del Corso

  • Strutture dati elementari (array, liste concatenate)
  • Tipi di dati astratti (stack, code FIFO e code generalizzate)
  • Ricorsione e alberi (algoritmi ricorsivi, divide et impera, alberi)
  • Merging e mergesort (merging a due vie, merging astratto sul posto, mergesort top-down, mergesort bottom.up, mergesort su liste concatenate)
  • Code con priorità e heapsort (implementazioni elementari, heap, heapsort, code binomiali)
  • Tabelle di simboli e alberi binari di ricerca (tabelle di simboli, ricerca indicizzata, ricerca sequenziale, alberi binari di ricerca)
  • Hashing (funzioni di hash, concatenazioni separate, scansione lineare, hashing doppio, tabelle hash dinamiche)
  • Algoritmi greedy, algoritmi su grafi, string matching



Testi Consigliati

  • Algoritmi in JAVA (terza edizione), Robert Sedgewick, Addison-Wesley, 2003, ISBN: 88-7192-169-0


Orario di ricevimento

  • Lunedì dalle 10:00 a 12:00, Aula dottorandi

Elenco delle lezioni


DataArgomentoRiferimentiEsercizi proposti
06/12 ore 9:00Strutture dati elementarislideesercizi.....
14/12 ore 9:00Tipi di dati astrattislideesercizi.....

Regolamento

Il corso ha come obiettivo quello di offrire una panoramica sulla progettazione ed implementazione dei principali algoritmi e strutture dati presenti in letteratura. Ogni lezione prevede un'introduzione all'argomento trattato e la soluzione di uno o più esercizi inerenti lo stesso argomento. Ogni esercitazione ha lo scopo di produrre un'applicazione che possa essere autonoma ossia che possa essere compilata ed eseguita senza errori (e che chiaramente esegua il lavoro per il quale è stata scritta!). 

Per quanto riguarda il progetto vi troverete di fronte ad un problema che richiede l'uso di algoritmi e strutture dati specifiche e dovrete essere in grado di:

  1. Analizzare dettagliatamente il problema
  2. Fornirne una soluzione algoritmica
  3. Implementare la soluzione proposta nel modo più efficiente possibile

Per ogni progetto è richiesta la consegna di:

  1. Una relazione che descriva il problema, la soluzione algoritmica proposta e l'implementazione fornita
  2. Il codice dell'applicazione opportunamente commentato.


Appelli di Febbraio - Progetto 1  (Scaduto)




Appelli di Febbraio - Progetto 2 (Scaduto)


Applet dimostrativa per risolvere il problema della rana



Appello di Aprile - Progetto 1  (Scadenza 15 Aprile)




Appello di Aprile - Progetto 2  (Scadenza 15 Aprile)




Appello di Giugno e Settembre - Progetto 1  (Scadenza 10 Giugno o 2 Settembre)




Appello di Giugno e Settembre - Progetto 2  (Scadenza 10 Giugno o 2 Settembre)

Test 1:  Riconoscere un albero
  • isConnected = true
  • isDirected = true
  • isAcyclic = true
  • isTree = true
  • isForest = true
Vedere definizione di Albero qui
Test 2:  Riconoscere una foresta
  • isConnected = false
  • isDirected = true
  • isAcyclic = true
  • isTree = false
  • isForest = true
Vedere definizione di foresta qui
Test 3:  Riconoscere un grafo con cicli
  • isConnected = true
  • isDirected = true
  • isAcyclic = false
  • isTree = false
  • isForest = false
Vedere definizione di Ciclo qui
Test 4:  Riconoscere un grafo senza cicli
  • isConnected = true
  • isDirected = true
  • isAcyclic = true
  • isTree = true
  • isForest = true
Vedere definizione di Ciclo qui
Test 6:  Riconoscere un grafo non connesso
  • isConnected = false
  • isDirected = false
  • isAcyclic = false
  • isTree = false
  • isForest = false
Vedere definizione di Albero qui



Consegna dei progetti

  • La consegna dei progetti deve avvenire almeno 5 giorni prima dell'esame


Calendario degli esami

  • Giovedì 22 Febbraio 2007 (Consegna progetti Sabato 17 Febbraio 2007).
  • Venerdì 20 Aprile     2007 (Consegna progetti Domenica 15 Aprile 2007).
  • Martedì 12 Giugno    2007 (Consegna progetti Domenica 10 Giugno 2007).
  • Martedì 4 Settembre 2007 (Consegna progetti Domenica 2 Settembre 2007).


Gruppi di lavoro per il 2007


Gruppo 01


Progetto n. 1
  • M.G. MATR. 061675
  • F.C.  MATR. 063434
  • R.R. MATR. 061620

Gruppo 02


Progetto n. 2
  • A.B. MATR. 068636
  • L.M.  MATR. 068702
  • P.B. MATR. 068669

Gruppo 03


Progetto n. 1
  • M.P. MATR. 068707
  • N.T.  MATR. 068721

Gruppo 04


Progetto n. 2
  • D.S. MATR. ?
  • L.F.  MATR. ?
  • M.M.  MATR. ?

Gruppo 05


Progetto n. 1
  • D.DG. MATR. 68693
  • D.G.  MATR. 70493
  • M.G.  MATR. ?

Gruppo 06


Progetto n. 2
  • N.P. MATR. 68709
  • P.C.  MATR. 69273
  • F.A.  MATR. ?

Gruppo 07


Progetto n. 1
  • M.C. MATR. 68679
  • A.S.  MATR. 68706
  • F.C.  MATR. 68649

Gruppo 08


Progetto n. 2
  • F.M. MATR. 68654
  • A.P.  MATR. 61557

Gruppo 09


Progetto n. 1
  • M.C. MATR. 68651
  • A.E.  MATR. 68688

Gruppo 10


Progetto n. 2
  • C.D'A. MATR. 68656


Gruppo 11


Progetto n. 2
  • S.R. MATR. 69236
  • A.E.  MATR. 68735
  • M.T.  MATR. 68736

Gruppo 12


Progetto n. 1
  • M.DL. MATR. 68665
  • M.C.  MATR. 68666
  • E.L.  MATR. 68667

Gruppo 13


Progetto n. 2
  • C.N. MATR. 68701
  • M.B.  MATR. 68714
  • F.C. MATR. 68734

Gruppo 14


Progetto n. 1
  • F.P. MATR. 68680
  • A.B.  MATR. 68692
  • S.A.  MATR. 68674

Gruppo 15


Progetto n. 2
  • L.D'A. MATR. 63411
  • F.O.  MATR. 65599

Gruppo 16


Progetto n. 2
  • D.E. MATR. 68645
  • A.R.  MATR. 68638

Gruppo 17


Progetto n. 1
  • A.G. MATR. 69198
  • E.F.  MATR. 68742

Gruppo 18


Progetto n. 2
  • A.S. MATR. 68686
  • M.C.  MATR. 66692
  • M.T. MATR. 62640

Note

  • Il linguaggio utilizzato a lezione e da utilizzare per esercitazioni e progetti è Java, di seguito trovate elencate alcune risorse disponibili in rete:
    • (fornire riferimento a manuale qui!)
  • L'ambiente di sviluppo consigliato è Eclipse. Tuttavia non siete obbligati, potete utilizzare l'ambiente o editor che preferite ma non sarete supportati per eventuali problemi!
  • Java mette a disposizione numerosissime librerie con struttore dati, algoritmi, etc. La soluzione degli esercizi non prevede l'uso di queste librerie poichè ha lo scopo di mostrare come liberie analoghe a queste possono essere realizzate! Al contrario nella soluzione dei progetti potete far uso di queste librerie poichè lo scopo è quello di affrontare un problema e fornirne una soluzione adottando tutte le possibilità che Java offre.
  • La relazione va consegnata nel formato PDF o PS.

Organizzazione

Per la realizzazione delle esercitazioni e del progetto è consentito lavorare in gruppi di massimo 3 elementi. E' opportuno che la formazione dei gruppi avvenga il prima possibile. Per la tale scopo dovete inviare agli esercitatori (vedi sotto!) una mail per gruppo con soggetto: [LASD06] Richiesta gruppo nella quale indicate in maniera chiara i vostri nomi, cognomi, ed indirizzi email. Riceverete come risposta una mail di accettazione con la quale vi sarà assegnato un codice di gruppo, nel seguito ogni comunicazione email dovrà contenere nell'oggetto la stringa [LASD06#codice]  seguita poi dall'oggetto della mail.

Gli esercitatori sono:

  • Francesco De Angelis per la sede di Ascoli Piceno (francesco.deangelis [AT] unicam.it)
  • Ezio Bartocci per la sede di Camerino (ezio.bartocci [AT] unicam.it)

Dovete inviare le email all'esercitatore della vostra sede ed in "cc:" all'altro esercitatore.

ezio - default - / No trackbacks - §

Linkdump