Menù

Home
Publications
Research interests
Talks
Stages/Thesis
Developed Software
Teaching
Blog

Last papers                             

A Shape Calculus for Biological Processes


Model Checking Biological Oscillators


Learning and Detecting Emergent Behavior in Networks of Cardiac Myocytes


Modeling and Simulation of Cardiac Tissue using Hybrid I/O Automata


StonyCam: A Formal Framework for Modeling, Analyzing and Regulating Cardiac Myocytes


CellExcite: An Efficient Simulation Environment for Excitable Cells


Learning and Detecting Emergent Behavior in Networks of Cardiac Myocytes


BioWMS: a web-based Workflow Management System for bioinformatics


Biowep: a workflow enactment portal for bioinformatics applications


An Agent-based Multilayer Architecture for Bioinformatics Grids


Spatial Networks of Hybrid I/O Automata for Modeling Excitable Tissue


Links


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

Counter and browser compatibility



Get Firefox!


Get Thunderbird!


Valid XHTML 1.0 Transitional


Poca osservazione e molto ragionamento conducono all'errore.
Molta osservazione e poco ragionamento conducono alla verità.

Alexis Carrel (Premio Nobel 1912)

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)
  • 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 su grafi, String Matching


Testi Consigliati

Algoritmi in Java (terza edizione), Robert Sedgewick, Addison-Wesley, 2003, ISBN: 88-7192-169-0Algoritmi e Strutture Dati in Java, Adam Drozdek, Apogeo, 2001, 648 p., ISBN: 88-7303-895-6



Elenco delle lezioni

                                                                                                                                                                                                                                                    
DataAulaArgomentoMateriale Ore
Martedì  16/10/2007 15:00-17:00LA2Introduzione al  corso 2
Giovedì  18/10/2007 10:00-12:00LA1Strutture dati  elementariSlides2
Mercoledì  5/12/2007 11:00-13:00LA2Tipi di dati  astratti
Liste
Slides
Codice
2
Giovedì  6/12/2007 10:00-12:00LA1Code e Stack Codice2
Mercoledì  12/12/2007 11:00-13:00LA2 RicorsioneCodice2
Giovedì  13/12/2007 10:00-12:00AB3
Frattali
Codice2
Mercoledì  19/12/2007 11:00-13:00 Parziale di Algoritmi 2
Giovedì  20/12/2007 10:00-12:00LA1 Alberi BinariCodice2
Mercoledì  9/01/2008 11:00-13:00LA2
Alberi Binari di ricerca Codice
2
Giovedì  10/01/2008 10:00-12:00LA1
Alberi bilanciati
Codice
2
Mercoledì  16/12/2007 11:00-13:00LA2
Altri alberi
Codice 2
Giovedì  17/01/2008 10:00-12:00LA1
Heap e Code di Priorità
Codice
2
Martedì  22/01/2008 15:00-17:00 Ordinamento
Codice
2
Mercoledì  23/01/2008 11:00-13:00LA2Grafi I
Codice
2
Giovedì  24/01/2008 10:00-12:00LA1 Grafi II
Codice
2
Martedì  29/01/2008 15:00-17:00 Grafi III
Codice
2
Mercoledì  30/01/2008 11:00-13:00LA2HashingSlides
Codice
2
Giovedì 31/01/2008 10:00-12:00LA1String Matching
Codice
2
   Tot ore36



Applet Frattali - Curve di Sierpinski



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.


Consegna dei progetti

  • La consegna dei progetti deve avvenire almeno 5 giorni prima dell'esame. Tutti i file di progetto dovranno essere scaricati  nel sito del laboratorio. Per ottenere le credenziali  d'accesso  è necessario  fare richiesta del gruppo come scritto sotto nella voce  Organizzazione.



Calendario degli esami

  • Giovedì 21 Febbraio 2008 (Consegna progetti Sabato 16 Febbraio 2008).

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: [LASD07] 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 [LASD07#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 - §