Biologia Computazionale

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

I Linguaggi di programmazione
Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Il Software.
Software di base: Linguaggi di Programmazione
Evoluzione dei linguaggi di programmazione
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
I linguaggi di programmazione
Definizione e tipi di implementazione
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Fondamenti di Informatica
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Reti Logiche e Architettura dei Calcolatori Luciano Gualà home page
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione lll
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Il Linguaggio Macchina
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Primi Elementi di Programmazione in C++
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Elementi di Informatica
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
CODIFICA Da flow-chart a C++.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Architettura del calcolatore
Il Sistema Operativo (1)
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
ECDL Patente europea del computer
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
A.A CORSO INTEGRATO DI INFORMATICA E BIOINFORMATICA per il CLT in BIOLOGIA MOLECOLARE Scuola di Scienze, Università di Padova Docenti: Dr.
Biologia Computazionale
DIVERTIRSI CON SCRATCH
Dal problema all’ algoritmo
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Corsi di Laurea in Biotecnologie
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma “La Sapienza”
Scrivere e compilare programmi
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Interpreti e compilatori
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Il software Claudia Raibulet
Esercizi.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Informazione e Informatica - presentazione dei concetti di base -
Programmazione dei Calcolatori Elettronici
Biologia Computazionale Giulio Pavesi
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
Unità di apprendimento 6
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
A.A CORSO INTEGRATO DI INFORMATICA E BIOINFORMATICA per il CLT in BIOLOGIA MOLECOLARE Scuola di Scienze, Università di Padova Docenti: Proff.
Transcript della presentazione:

Biologia Computazionale Giulio Pavesi giulio.pavesi@unimi.it

Biologia Computazionale? Computational Biology, sometimes referred to as bioinformatics, is the science of using biological data to develop algorithms and relations among various biological systems. Prior to the advent of computational biology, biologists were unable to have access to large amounts of data. Researchers were able to develop analytical methods for interpreting biological information, but were unable to share them quickly among colleagues (Wikipedia)

Biologia Computazionale? Bioinformatics: Research, development, or application of computational tools and approaches for expanding the use of biological, medical, behavioral or health data, including those to acquire, store, organize, analyze, or visualize such data. Computational Biology: The development and application of data-analytical and theoretical methods, mathematical modeling and computational simulation techniques to the study of biological, behavioral, and social systems.

Programmare? Algoritmo: sequenza di operazioni che a partire da un insieme di dati iniziali (input) produce un insieme di dati finali (output) Un algoritmo “descrive” il procedimento per risolvere un problema, e può essere scritto in linguaggio “naturale” o con apposite rappresentazioni (“pseudocodici”, diagrammi di flusso) ma NON dipende da linguaggi di programmazione Programmazione: implementazione di uno o più algoritmi in un dato linguaggio di programmazione  descrivo le operazioni con comandi che possono essere eseguiti da un computer

Il primo algoritmo della storia "If some one say: "You divide ten into two parts: multiply the one by itself; it will be equal to the other taken eighty-one times." Computation: You say, ten less thing, multiplied by itself, is a hundred plus a square less twenty things, and this is equal to eighty-one things. Separate the twenty things from a hundred and a square, and add them to eighty-one. It will then be a hundred plus a square, which is equal to a hundred and one roots. Halve the roots; the moiety is fifty and a half. Multiply this by itself, it is two thousand five hundred and fifty and a quarter. Subtract from this one hundred; the remainder i s two thousand four hundred and fifty and a quarter. Extract the root from this; it is forty-nine and a half. Subtract this from the moiety of the roots, which is fifty and a half. There remains one, and this is one of the two parts.” [Risolveva: (10-x)2=81x]

Questo è un diagramma di flusso. Come input, abbiamo due interi, A e B Questo è un diagramma di flusso. Come input, abbiamo due interi, A e B. Dopo un po’ di calcoli, l’algoritmo stampa in output il valore di A (che è stato modificato durante l’esecuzione dell’algoritmo). Che cosa calcola questo algoritmo?

Le leggi fondamentali dell’informatica e della programmazione Un computer fa quello che gli dici di fare, non quello che vuole. ... anche se, alle volte, interpreta il tutto in modo molto personale. Se qualcosa può andar male, lo farà. Se qualcosa può andar male, lo farà nel peggior modo possibile. Errare è umano, ma per incasinare tutto veramente ci vuole un computer.

Linguaggi di programmazione I computer “capiscono” soltanto il proprio linguaggio macchina Insieme di istruzioni di “basso livello” che consentono di leggere/scrivere nella memoria eseguire operazioni sul contenuto dei registri (tipo somma e operazioni logiche) “saltare” da una parte all’altra del programma controllare se una data condizione è verificata Quindi, il linguaggio utilizzato varia a seconda dell’ “architettura” e del sistema operativo (PC vs Mac, PC Windows vs PC Linux etc...)

Linguaggio “macchina” Esempio di istruzioni in linguaggio macchina Leggi il contenuto della cella di memoria 1058382 Leggi il contenuto della cella di memoria 1058843 Somma i due valori letti Scrivi il risultato della somma nella cella di memoria 1751511 (più, ovviamente, possibilità di condizioni e cicli)

Linguaggio “macchina” Esempio di istruzioni in linguaggio macchina, lettura di un file da disco Fai partire il motore che fa ruotare il disco Cerca sul disco la posizione dell’inizio del file Copia il contenuto di una parte del file in memoria RAM (di solito, operazioni di questo tipo sono gestite dal sistema operativo, che fa da “interfaccia” per tutto quello che riguarda l’utilizzo dell’hardware della macchina)

Linguaggi di Programmazione Scrivere un programma in linguaggio macchina è un incubo (detto da uno che l’ha fatto!) Esistono linguaggi di programmazione di “alto livello” Per poter essere compresi dal programma devono prima essere tradotti da programmi appositi, ovvero, trasformati nel “linguaggio macchina” della macchina che stiamo usando La traduzione dipende dall’architettura del computer (ovvero il processore) e dal sistema operativo in cui il programma viene tradotto Il computer “capisce” un linguaggio di programmazione se è installato un apposito “traduttore” specifico del linguaggio

Linguaggi di Programmazione Il programma può essere tradotto in linguaggio macchina prima dell’esecuzione, o durante l’esecuzione Linguaggi compilati Il traduttore (compilatore) traduce tutto il programma in una volta sola, producendo un programma in linguaggio macchina (eseguibile) Esempio: C, C++ Linguaggi interpretati Il traduttore (interprete) traduce un’istruzione alla volta, mano a mano che il programma viene eseguito Esempio: Perl, Python I linguaggi “compilati” sono in genere molto più veloci degli “interpretati” (c’è in meno il tempo di traduzione) Java: prima compilato in un linguaggio macchina “virtuale” (byte code) che viene poi interpretato quando il programma viene eseguito  “portabile” su diversi computer, indipendentemente da CPU e SO

Linguaggi di Programmazione Linguaggi compilati, vantaggi Più veloce l’esecuzione Più flessibili e più maneggiabili dal programmatore esperto Una volta compilato, se si ha lo stesso computer/SO è sufficiente avere l’eseguibile Linguaggi interpretati, vantaggi Più semplici da utilizzare per il programmatore inesperto Il programma può essere eseguito su qualsiasi computer/SO, a patto che sia installato il traduttore/interprete per il linguaggio Perl: vedi appunti del corso, è un linguaggio interpretato e non tipizzato

Linguaggi di programmazione Un qualsiasi linguaggio di programmazione ha una sua precisa sintassi Interpreti e compilatori verificano innanzitutto che la sintassi sia corretta Un qualsiasi linguaggio di programmazione ha un insieme di “comandi” o comunque parole chiave che sono interpretate come istruzioni da eseguire Interpreti e compilatori verificano anche che i “comandi” del programma siano effettivamente riconosciuti come istruzioni del linguaggio

Linguaggi di programmazione Regole di sintassi (esempi) Ogni comando deve essere seguito da ; (esempio print”Ciao”;) Per ogni parentesi aperta (tonda, quadra o graffa) deve esserci la corrispondente parentesi chiusa