Sequence Alignment Algorithms

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sequence Alignment Algorithms"

Transcript

1 Sequence Alignment Algorithms Algoritmi per l Allineamento di Sequenze Relatore: Prof. Giancarlo Mauri Correlatore: Prof. Gianluca Della Vedova Tesi di Laurea di: Mauro Baluda Matricola Part of ALiBio project

2 1 Obiettivi dello stage Scopo di questo stage è stata la realizzazione di un implementazione efficiente degli algoritmi per L Allineamento di Sequenze, un problema che riveste un grande interesse in ambito biologico essendo un metodo chiave per cercare aree importanti all interno del genoma, determinare la loro funzione e scoprirne l origine evoluzionistica. Lo stage è parte del progetto ALiBio che si propone di formire una raccolta di librerie per lo sviluppo di programmi di bioinformatica con particolare riguardo all efficenza dell implementazione. Quando ho incominciato lo stage, le strutture dati necessarie per rappresentare informazioni biologiche quali le sequenze di DNA, RNA e proteine erano già state implementate. Ho costruito le mie funzioni sulla base di queste strutture dati. 2 Allineamento di Sequenze Gli algoritmi implementati sono quelli per l allineamento globale, locale e semiglobale. Il codice prodotto segue le specifiche generali del progetto. Gli algoritmi di allineamento sono utilizzati per misurare la similitudine tra sequenze di proteine o DNA e per trovarne l allineamento migliore anche inserendo dei gaps nelle sequenze che migliorino il risultato finale. Gli algoritmi di allineamento globale cercano di far combaciare le due sequenze dall inizio alla fine ottenendo a volte allineamenti non molto convincenti tra sottosezioni delle sequenze originali, per esempio: CATTTAGATT-C X X X --GTT-GTTTAT D altro canto gli algoritmi per l allineamento locale cercano dei segmenti delle sequenze di partenza che coincidano al meglio. Utilizzando le sequenze già viste otterremmo: catttagattc gttgtttat L Allineamento semiglobale invece allinea un prefisso di una delle due sequenze con un suffisso dell altra e darebbe: CATttagattc gttgttt-at 2

3 3 Specifiche del progetto Nello sviluppo della libreria ho seguito le linee guida definite dal progetto ALiBio. Literate Programming Il primo requisito è di produrre il lavoro utilizzando uno strumento per il Literate Programming che si chiama noweb. Il Literate Programming è una metodologia di sviluppo che combina un linguaggio di programmazione con un linguaggio per la documentazione con l obiettivo di produrre lavori meglio documentati e perciò più robusti, portabili, facili da manutenere e probabilmente anche più divertenti da scrivere. L idea principale è quella di trattare un programma come un testo letterario, facile da leggere dagli uomini oltre che dai computers. Il prodotto finale è un documento ipertestuale, nello stile del World Wide Web. Linguaggi Come linguaggio per la documentazione ALiBio adotta il sistema di scrittura L A TEXche produce documentazione scientifica e matematica di grande qualità tipografica. L intero progetto è sviluppato con il linguaggio C++ che, assieme a C, è probabilmente il più usato dai programmatori di applicazioni scientifiche in tutto il mondo. Questa scelta garantisce la portabilità del codice verso tutti i compilatori che reispettino lo standard ISO e quindi la sua compatibilità con tutte le piattaforme hardware. Paradigmi di Programmazione Oltre ad utilizzare le caratteristiche del linguaggio C++ come l orientamento agli oggetti, il progetto adotta anche il concetto di Programmazione Generica come proposto dalla Standard Template Library che viene usata intensivamente in tutto il progetto. La Programmazione Generica è una tecnica che permette di implementare algoritmi in modo per quanto possibile indipendente dalle strutture dati sottostante. Questo significa che lo stesso codice sorgente può essere usato indipendentemente dal tipo di dato con il quale viene istanziato o che viene passato come parametro. Licenza Da un punto di vista legale e di distribuzione, ALiBio adotta una licenza libera che si chiama LGPL, permettendo a chiunque di accedere al codice ed alla documentazione. 3

4 4 Fasi dello sviluppo Conoscere gli strumenti di lavoro Prima di poter procedere con la fase di codifica vera e propria, ho dedicato un periodo di studio all apprendimento degli strumenti necessari per la realizzazione del progetto. Tutti i software utilizzati (noweb, L A TEX, Gnu C++ Compiler, CVS, GAWK) sono liberamente disponibili per il sistema operativo GNU/Linux, in questo modo ho avuto la possibilità di approfondire la mia conoscenza di questo sistema come piattaforma di sviluppo nonchè della suite di strumenti messi a disposizione dal progetto GNU e in particolare del programma make. Sebbene conoscessi già L A TEX, non avevo mai utilizzato il sistema noweb o più in generale il Literate Programming. Ho anche dovuto approfondire il mio livello di conoscenza del sistema di versioning CVS. Nel mio lavoro ho utilizzato alcune funzioni prese dalla Boost Library, la loro documentazione on-line è molto curata ed esaustiva. Studio ed implementazione degli algoritmi Una volta acquisiti gli strumenti necessari per la realizzazione del progetto, ho incominciato a studiare gli algoritmi che avrei dovuto implementare usando gli articoli originali scritti dai loro autori nonchè una moltitudine di altra documentazione ricavata dal World Wide Web. Nel progetto ho implementato le librerie che si occupano dell allineamento di sequenze con costo lineare ed affine per i gap, ho anche implementato una versione spazio-lineare dei medesimi algoritmi. Per ognuno dei possibili tipi di allineamento ho incluso una funzione per l allineamento globale, locale e semiglobale. Testing La fase di test ha un importanza fondamentale in questo progetto. Una volta che il codice è stato scritto, è necessario scrivere alcuni tests specifici per verificarne la correttezza. La tecnica adottata è chiamata automatic regression tests e permette di confrontare l effettivo output del test con quello atteso o con quello di versioni precedenti della funzione in esame. Sono state preparate due classi di test: uno per testare la correttezza e le funzionalità della classe score matrix e l altra per verificare l esecuzione della classe seq alignment che è quella che si occupa dell effettivo allineamento delle sequenze. Gli algoritmi sono stati implementati facendo largo uso di accessi diretti alla memoria, C++ non offre protezione automatica contro i memory leaks quindi abbiamo utilizzato uno strumento specifico chiamato Valgrind per riconoscere eventuali errori di lettura o scrittura in memoria. 4

5 Per essere certi che l algoritmo funzionasse correttamente su un grande numero di possibili inputs, abbiamo sviluppato un test randomizzato che utilizza le funzioni in esame su input casuali e ne verifica l output. Questo test ha rivelato alcuni errori nel codice che non era stato possibile notare precedentemente. La fase di test della libreria ha richiesto una quantità di lavoro notevole, paragonabile a quella dedicata all effettiva implementazione. Analisi delle performances Altri gruppi di lavoro negli scorsi anni hanno sviluppato altre librerie per risolvere il problema dell allineamento di sequenze, abbiamo pensato di confrontare i risultati e le performances della nostra implementazione con quelli di EMBOSS, uno dei pacchetti liberi più usati. Abbiamo notato che la nostra implementazione è paragonabile a quella di EMBOSS dal punto di vista dell utilizzo delle risorse della macchina tranne nel caso dell allineamento in spazio lineare che viene portato a termine da EMBOSS in un tempo significativamente minore. 5 Conclusioni Terminato il periodo di stage, gli obiettivi che ci eravamo posti sono stati raggiunti. Gli algoritmi richiesti sono stati implementati assieme alla loro documentazione come da specifiche di progetto, inoltre le performance della libreria sono in linea con quelle attese. La natura libera del progetto ALiBio è un incentivo per il suo ulteriore sviluppo, infatti i programmatori di software per la bioinformatica possono utilizzare liberamente ALiBio all interno dei loro programmi ma anche contribuire alla sua espansione ed al suo miglioramento. Possibili miglioramenti futuri Dal punto di vista delle performances è certamente possibile migliorare ancora il codice, in particolare per ridurne l utilizzo di memoria. Aggiunta di ulteriori algoritmi per l allineamento di sequenze, in particolare per la ricerca di allineamenti sub ottimali. ALiBio è un progetto rivolto agli sviluppatori per la creazione di applicazioni di bioinformatica, ad ogni modo le librerie presentate in questo lavoro potrebbero essere usate facilmente dagli utenti finali programmando un interfacca utente a linea di comando. A partire da quest interfaccia, con l aiuto di software specifici come Pise e Kaptain, sarebbe possibile sviluppare velocemente un interfaccia web ed una grafica. 5

Tesi di Laurea di Mauro Baluda matr. 038208

Tesi di Laurea di Mauro Baluda matr. 038208 Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Algoritmi per l'allineamento di Sequenze Tesi di Laurea di matr. 038208 Relatore:

Dettagli

Tesi di Laurea Specialistica. Elaborazione di dati bioinformatici attraverso l uso di Particle Swarm Optimization

Tesi di Laurea Specialistica. Elaborazione di dati bioinformatici attraverso l uso di Particle Swarm Optimization Università degli Studi di Genova Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Anno Accademico 2009/2010 Tesi di Laurea Specialistica Elaborazione di dati

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Gli elaboratori utilizzano memoria per Dati da elaborare Istruzioni eseguite dall elaboratore software differenti risoluzione problemi differenti Algoritmo

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1

Anno di corso: 2004/2005. Istruzioni. Istruzioni per lo svolgimento dei progetti didattici. versione 1.1 versione 1.1 per lo svolgimento dei progetti didattici Corso di Laboratorio di Programmazione II Prof. Luca Forlizzi Anno Accademico 2004-2005 GENERALITÀ...3 Scopo del documento...3 Struttura del documento...3

Dettagli

Informatica e biotecnologie II parte

Informatica e biotecnologie II parte Informatica e biotecnologie II parte Analisi di sequenze: allineamenti CGCTTCGGACGAAATCGCATCAGCATACGATCGCATGCCGGGCGGGATAAC CGAAATCGCATCAGCATACGATCGCATGC Bioinformatica La Bioinformatica è una disciplina

Dettagli

Laboratorio Matematico Informatico 2

Laboratorio Matematico Informatico 2 Laboratorio Matematico Informatico 2 (Matematica specialistica) A.A. 2006/07 Pierluigi Amodio Dipartimento di Matematica Università di Bari Laboratorio Matematico Informatico 2 p. 1/1 Informazioni Orario

Dettagli

Realizzazione di un applicazione per la stesura di un Business Plan

Realizzazione di un applicazione per la stesura di un Business Plan tesi di laurea Anno Accademico 2006/2007 relatore Ch.mo prof. Porfirio Tramontana candidato Vincenzo Malzone Matr. 534/1173 Obiettivi Realizzare un applicazione desktop per la stesura di un documento di

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

Appunti del corso di Informatica Generale 1 (IN110 Fondamenti) 1 Presentazione del corso

Appunti del corso di Informatica Generale 1 (IN110 Fondamenti) 1 Presentazione del corso Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica Generale 1 (IN110 Fondamenti) 1 Presentazione del corso Prof. Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO CLASSE DISCIPLINA MODULO Conoscenze Abilità e competenze Argomento 1 Concetti di base Argomento 2 Sistema di elaborazione Significato dei termini informazione, elaborazione, comunicazione, interfaccia,

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

Durata in ore 1 Concetti di base e architettura di un computer 16

Durata in ore 1 Concetti di base e architettura di un computer 16 ISTITUTO DI ISTRUZIONE SUPERIORE STATALE IRIS VERSARI - Cesano Maderno (MB) PIANO DI LAVORO DEL PROFESSORE Indirizzo ISTITUTO TECNICO SISTEMI INFORMATIVI AZIENDALI MATERIA: Informatica PROF. C. Vassallo,

Dettagli

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale tesi di laurea inventario comunale Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo Ing. Luigi Pontillo candidato Michele Vitelli Matr. 534 2170 Redazione dell Inventario

Dettagli

Tecniche di Clustering basate sul Machine Learning

Tecniche di Clustering basate sul Machine Learning UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II Scuola Politecnica e delle Scienze di base Area didattica Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tecniche di Clustering basate

Dettagli

Uno strumento per il deployment automatico di performance test su piattaforme per la distribuzione di dati

Uno strumento per il deployment automatico di performance test su piattaforme per la distribuzione di dati tesi di laurea Anno Accademico 2006/2007 relatore Ch.mo prof. Domenico Controneo correlatore Ing. Christiancarmine Esposito candidato Antonella Niola Matr. 534/158 .:: Contesto ::. www.cosmiclab.it Il

Dettagli

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso Informazioni generali Docente: Prof.ssa Dora Giammarresi: giammarr@mat.uniroma2.it Tutor:??? Informazioni generali

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

Breve introduzione al Calcolo Evoluzionistico

Breve introduzione al Calcolo Evoluzionistico Breve introduzione al Calcolo Evoluzionistico Stefano Cagnoni Dipartimento di Ingegneria dell Informazione, Università di Parma cagnoni@ce.unipr.it 1 Introduzione Il mondo fisico ed i fenomeni naturali

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea Università degli studi Roma Tre Dipartimento di informatica ed automazione Tesi di laurea Reingegnerizzazione ed estensione di uno strumento per la generazione di siti Web Relatore Prof. P.Atzeni Università

Dettagli

Curriculum di GEMME Luciano

Curriculum di GEMME Luciano Curriculum di GEMME Luciano Dati anagrafici: Nome: GEMME Luciano data di nascita: 14 agosto 1964 luogo di nascita: Serravalle Scrivia (AL) Telefono: 0143-65947 Cellulare: 392-0398907 E-mail: luciano@gemmeinformatica.it

Dettagli

Università degli studi di Messina

Università degli studi di Messina Università degli studi di Messina Facoltà di Ingegneria Corso di laurea in Ingegneria Elettronica Tesina di Sistemi di Telecomunicazione Prenotazione Esami con CSLU Speech - toolkit Docente: Prof. Salvatore

Dettagli

L informatica comprende:

L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Buona Programmazione in C

Buona Programmazione in C Più lo sviluppo di un prodotto software prosegue e più le modifiche che devono essere apportate divengono complicate e dispendiose; portando, così, ad un aumento difficilmente accettabile dei suoi costi

Dettagli

LINEE GENERALI E COMPETENZE

LINEE GENERALI E COMPETENZE Programmazione disciplinare: INFORMATICA (Liceo Scientifico - Opzione Scienze applicate BIENNIO) ( Anno scolastico 2012/2013) Direttore di Dipartimento: prof.ssa Adriani Emanuela LINEE GENERALI E COMPETENZE

Dettagli

RoboWave hyprogram Descrizione Prodotto

RoboWave hyprogram Descrizione Prodotto Versione: 1.0 Ultimo aggiornamento: Luglio 2014 RoboWave hyprogram Descrizione Prodotto I. LA PROGRAMMAZIONE IBRIDA 8 II. CARATTERISTICHE E FUNZIONALITÀ TECNICHE 10 II. STRUTTURA ED AMBIENTI DEL PRODOTTO

Dettagli

Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID

Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID Anno Accademico 2011/2012 Relatore Prof. Porfirio Tramontana Candidato Pasquale Giacomino Matr. 885/349

Dettagli

Crittografia. Appunti a cura del prof. Ing. Mario Catalano

Crittografia. Appunti a cura del prof. Ing. Mario Catalano Crittografia Appunti a cura del prof. Ing. Mario Catalano La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice. Solitamente, i meccanismi crittografici

Dettagli

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe: terza. Disciplina: Informatica. prof. Silvia Tondo

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe: terza. Disciplina: Informatica. prof. Silvia Tondo Istituto Tecnico Internazionale Economico E. Tosi Anno Scolastico: 2014/2015 Indirizzo: Sistemi informativi aziendali Classe: terza Disciplina: Informatica prof. Silvia Tondo Competenze disciplinari: 1.

Dettagli

Introduzione al Calcolo Scientifico

Introduzione al Calcolo Scientifico Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2008/2009 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico

Dettagli

Macchine a stati finiti sincrone

Macchine a stati finiti sincrone Macchine a stati finiti sincrone Modulo 6 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) Macchine a stati finiti Dall

Dettagli

Un sistema di sviluppo aziendale

Un sistema di sviluppo aziendale Un sistema di sviluppo aziendale Ing. Davide Bolcioni Amministratore di Sistema 3D Informatica Srl Scalare il processo di sviluppo Scalare in quantità Aumentano gli sviluppatori Rif. The Mythical Man-Month.

Dettagli

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software.

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Test Giulio Destri Ing. del Software: Test - 1 Scopo del modulo Definire

Dettagli

Introduzione al Calcolo Scientifico

Introduzione al Calcolo Scientifico Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2010/2011 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico

Dettagli

Linux?!? A cura di: Carmine Stolfi Roberto Lacava

Linux?!? A cura di: Carmine Stolfi Roberto Lacava Linux?!? A cura di: Carmine Stolfi Roberto Lacava Panoramica su Linux Cosè Linux Perchè Linux è libero Cosè Linux? Linux è un Sistema Operativo Agisce da interfaccia tra l' uomo e la macchina fornendo

Dettagli

Esercitazioni di Programmazione I canale A-D. Alessio Malizia malizia@di.uniroma1.it

Esercitazioni di Programmazione I canale A-D. Alessio Malizia malizia@di.uniroma1.it Esercitazioni di Programmazione I canale A-D Alessio Malizia malizia@di.uniroma1.it I docenti Docente: T. Calamoneri Esercitatore: A. Malizia calamo@di.uniroma1.it Ricevimento: lun. 14.00-15.30 (mandando

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Problemi, Algoritmi e Programmi

Problemi, Algoritmi e Programmi MASTER Information Technology Excellence Road (I.T.E.R.) Problemi, Algoritmi e Programmi Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Introduzione

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

REFERENZIAZIONI 2001) NUP

REFERENZIAZIONI 2001) NUP Agenzia del Lavoro Provincia Autonoma di Trento PROFILO FORMATIVO Profilo professionale e percorso formativo DENOMINAZIONE FIGURA PROFESSIONALE - TECNICO INFORMATICO PROGRAMMATORE SOFTWARE E APPLICAZIONI

Dettagli

LINEE GUIDA PER LA STESURA DELLE SPECIFICHE TECNICO FUNZIONALI DEL SISTEMA DI GIOCO PER LE SCOMMESSE SU EVENTI SIMULATI

LINEE GUIDA PER LA STESURA DELLE SPECIFICHE TECNICO FUNZIONALI DEL SISTEMA DI GIOCO PER LE SCOMMESSE SU EVENTI SIMULATI LINEE GUIDA PER LA STESURA DELLE SPECIFICHE TECNICO FUNZIONALI DEL SISTEMA DI GIOCO PER LE SCOMMESSE SU EVENTI SIMULATI Premessa... 2 Percorso della verifica di conformità... 2 Documento specifiche tecnico-funzionali

Dettagli

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y

Dettagli

12. FONDAMENTI DI INGEGNERIA DEL SOFTWARE

12. FONDAMENTI DI INGEGNERIA DEL SOFTWARE 12. FONDAMENTI DI INGEGNERIA DEL SOFTWARE PREMESSA La produzione del software non può essere affidata all improvvisazione: sapere scrivere algoritmi e programmi non garantisce di per se l avere un software

Dettagli

IT Rossella Masi, insegnante Relazione sulla visita d insegnamento Vienna, Austria 15.12. - 19.12.2008

IT Rossella Masi, insegnante Relazione sulla visita d insegnamento Vienna, Austria 15.12. - 19.12.2008 IT Rossella Masi, insegnante Relazione sulla visita d insegnamento Vienna, Austria 15.12. - 19.12.2008 Prima della visita Ho iniziato la preparazione della mia visita partecipando a quattro sessioni di

Dettagli

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT TESI DI LAUREA REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT RELATORE: Prof. Michele Moro LAUREANDO: Marco Beggio Corso di laurea Specialistica in Ingegneria

Dettagli

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Revisione e implementazione di algoritmi di elaborazione delle immagini

Revisione e implementazione di algoritmi di elaborazione delle immagini Stagnaro Francesca Mat. 2543707 Relazione Finale di Tirocinio: Revisione e implementazione di algoritmi di elaborazione delle immagini Svolto presso l azienda Numensoft Snc di M. Peri & Soci III Anno di

Dettagli

COMMERCE: FORME DI TUTELA. Andrea L Episcopo Convitto Nazionale Mario Cutelli

COMMERCE: FORME DI TUTELA. Andrea L Episcopo Convitto Nazionale Mario Cutelli SOFTWARE, WEB, E- COMMERCE: FORME DI TUTELA Andrea L Episcopo Convitto Nazionale Mario Cutelli Sommario 1. Software a) Definizione b) Componenti c) Brevettabilità d) Licenze e) Open source vs proprietario

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Un corso (accessibile) sull accessibilità dei siti web. di Gianluca Affinito gianluca.affinito@gmail.com

Un corso (accessibile) sull accessibilità dei siti web. di Gianluca Affinito gianluca.affinito@gmail.com Un corso (accessibile) sull accessibilità dei siti web di Gianluca Affinito gianluca.affinito@gmail.com La conoscenza della Legge 4/2004 nella scuola italiana Un recente questionario, proposto dall'istituto

Dettagli

Analisi dei Requisiti

Analisi dei Requisiti Analisi dei Requisiti Pagina 1 di 16 Analisi dei Requisiti Indice 1 - INTRODUZIONE... 4 1.1 - OBIETTIVO DEL DOCUMENTO...4 1.2 - STRUTTURA DEL DOCUMENTO...4 1.3 - RIFERIMENTI...4 1.4 - STORIA DEL DOCUMENTO...4

Dettagli

PROGRAMMA DI INFORMATICA

PROGRAMMA DI INFORMATICA LICEO SCIENTIFICO STATALE A. MESSEDAGLIA -VERONA Via Bertoni, 3b 37121 VERONA tel 045.596432-8034772 fax 045.8038213 Classe 2 Sezione G Anno scolastico 2014/2015 PROGRAMMA DI INFORMATICA docente: prof.

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

Analisi e sviluppo di un componente per un ESB open source

Analisi e sviluppo di un componente per un ESB open source tesi di laurea Anno Accademico 2010/2011 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Ciro Romano candidato Rosario Celotto Matr. 534/1459 Introduzione L attività svolta è stata l analisi

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

DNA sequence alignment

DNA sequence alignment DNA sequence alignment - Introduzione: un possibile modello per rappresentare il DNA. Il DNA (Acido desossiribonucleico) è una sostanza presente nei nuclei cellulari, sia vegetali che animali; a questo

Dettagli

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c) DESIGN PATTERN Barrare con una X la lettera del diagramma delle classi che fra i seguenti rappresenta in modo corretto il design pattern architetturale Model View Controller (MVC) ESERCITAZIONE PREPARAZIONE

Dettagli

UNIVERSITÀ DEGLI STUDI DI ROMA Tor Vergata

UNIVERSITÀ DEGLI STUDI DI ROMA Tor Vergata FACOLTÀ DI MEDICINA E DI SCIENZE MATEMATICHE FISICHE E NATURALI MASTER UNIVERSITARIO DI II LIVELLO IN STATISTICA PER LE SCIENZE BIO-MEDICHE A.A. 2008/2009 Nell'anno accademico 2008/2009 è attivato presso

Dettagli

Progettazione e sviluppo di un Network Management System per reti wireless in configurazione Mesh-AP

Progettazione e sviluppo di un Network Management System per reti wireless in configurazione Mesh-AP Progettazione e sviluppo di un per reti wireless in configurazione Mesh-AP Relatore: Ing. TOMMASO PECORELLA 11 aprile 2006 Correlatore: Ing. LEONARDO MACCARI UNIVERSITÀ DEGLI STUDI DI FIRENZE Facoltà di

Dettagli

Design patterns in Java

Design patterns in Java tesi di laurea Anno Accademico 2012/13 relatore Ch.mo prof. Porfirio Tramontana candidato Luciano Amitrano Matr. 534/2042 Progettare SW a oggetti è difficoltoso I progettisti devono cercare di far coesistere

Dettagli

Modulo 3. Rappresentazione di solidi mediante forntiera e strutture dati collegate.

Modulo 3. Rappresentazione di solidi mediante forntiera e strutture dati collegate. Modulo 3. Rappresentazione di solidi mediante forntiera e strutture dati collegate. Nel precedente modulo abbiamo presentato le modalità di rappresentazione di un solido mediante enumerazione o mediante

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

Dettagli

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 4 Codifica, Test e Collaudo. Al termine della fase di progettazione, a volte anche in parallelo, si passa alla fase di codifica e successivamente alla fase di test e collaudo. In questa parte viene approfondita

Dettagli

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica

PIANO DI LAVORO (a.s. 2014/2015) Prof.Andrea Luppichini Prof. Marco Fiorentinini DISCIPLINA Informatica Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) Via Firenze, 51 - Tel. 0587/213400 - Fax 0587/52742 http://www.itcgfermi.it E-mail: mail@itcgfermi.it PIANO DI LAVORO (a.s. 2014/2015)

Dettagli

Progettazione e realizzazione di una GUI multi-piattaforma per applicazioni mediche in 2D

Progettazione e realizzazione di una GUI multi-piattaforma per applicazioni mediche in 2D UNIVERSITÀ DEGLI STUDI DI BOLOGNA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Scienze dell Informazione Progettazione e realizzazione di una GUI multi-piattaforma per applicazioni

Dettagli

PIANO DI LAVORO DEL PROFESSORE

PIANO DI LAVORO DEL PROFESSORE ISTITUTO DI ISTRUZIONE SUPERIORE STATALE IRIS VERSARI - Cesano Maderno (MB) PIANO DI LAVORO DEL PROFESSORE Indirizzo : LICEO SCIENTIFICO LICEO SCIENTIFICO Scienze Applicate LICEO TECNICO ISTITUTO TECNICO

Dettagli

Laboratorio di Progettazione di Sistemi Software Introduzione

Laboratorio di Progettazione di Sistemi Software Introduzione Laboratorio di Progettazione di Sistemi Software Introduzione Valentina Presutti (A-L) Riccardo Solmi (M-Z) Indice degli argomenti Introduzione all Ingegneria del Software UML Design Patterns Refactoring

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Simulazione di scenario urbano con molteplici nodi mobili su OmNet++

Simulazione di scenario urbano con molteplici nodi mobili su OmNet++ ALMA MATER STUDIORUM UNIVERSITÀ DI BOLOGNA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Simulazione di scenario urbano con molteplici nodi mobili su OmNet++ Relatore:

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY.

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Lezioni Lincee Palermo, 26 Febbraio 2015 Alla base della vita degli

Dettagli

La valutazione economico-tecnica del software contabile

La valutazione economico-tecnica del software contabile La valutazione economico-tecnica del software contabile fino a qualche tempo fa... hardware assorbe la maggiore quota dell investimento software predisposto internamente obiettivi nella valutazione degli

Dettagli

LPIC-1 Junior Level Linux Certification

LPIC-1 Junior Level Linux Certification Corso 2012/2013 Introduzione a GNU/Linux Obiettivi Il percorso formativo ha l obiettivo di fornire ai partecipanti le competenze basilari necessarie per installare, configurare e gestire un server/workstation

Dettagli

PAES. Laurea Specialistica in Informatica. Analisi e sviluppo di un implementazione parallela dell AES per. architetture eterogenee multi/many-core

PAES. Laurea Specialistica in Informatica. Analisi e sviluppo di un implementazione parallela dell AES per. architetture eterogenee multi/many-core PAES Analisi e sviluppo di un implementazione parallela dell AES per architetture eterogenee multi/many-core Candidato Paolo Bernardi Relatore Osvaldo Gervasi Laurea Specialistica in Informatica Contesto

Dettagli

Permutazione degli elementi di una lista

Permutazione degli elementi di una lista Permutazione degli elementi di una lista Luca Padovani padovani@sti.uniurb.it Sommario Prendiamo spunto da un esercizio non banale per fare alcune riflessioni su un approccio strutturato alla risoluzione

Dettagli

Indirizzo Grafica e Comunicazione

Indirizzo Grafica e Comunicazione Istituti tecnici Settore tecnologico Indirizzo Grafica e Comunicazione L indirizzo Grafica e Comunicazione ha lo scopo di far acquisire allo studente, a conclusione del percorso quinquennale, le competenze

Dettagli

PROGRAMMAZIONE DIDATTICA ANNUALE ANNO SCOLASTICO 2014/2015

PROGRAMMAZIONE DIDATTICA ANNUALE ANNO SCOLASTICO 2014/2015 PROGRAMMAZIONE DIDATTICA ANNUALE ANNO SCOLASTICO 2014/2015 DOCENTE PROF. LUCCHI ENEA MATERIA DI INSEGNAMENTO TECNOLOGIE DELL INFORMAZIONE E DELLA COMUNICAZIONE CLASSE 1 A - 1 B - 1 C Competenze di base

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

PROGRAMMARE AI TEMPI DEL DIRITTO

PROGRAMMARE AI TEMPI DEL DIRITTO ANDREA ANTONIAZZA PROGRAMMARE AI TEMPI DEL DIRITTO LA TUTELA GIURIDICA DEI PROGRAMMI PER ELABORATORE IN EUROPA E NEGLI STATI UNITI D AMERICA Andrea Antoniazza, Programmare ai tempi del diritto Copyright

Dettagli

Il sito Help-site.com fornisce un elenco di risorse sul Web inclusi tutorial e FAQ.

Il sito Help-site.com fornisce un elenco di risorse sul Web inclusi tutorial e FAQ. APPENDICE G Il C++ su Internet Questa appendice contiene una lista di risorse reperibili su Internet e il World Wide Web. Le risorse includono FAQ (Frequently Asked Questions, cioè le domande più comuni),

Dettagli