bioinformatica - Laboratorio di Bionanotecnologie

BIOINFORMATICA
La Bioinformatica si occupa, dell acquisizione,
memorizzazione, distribuzione, analisi e interpretazione dei
dati prevalentemente nell ambito della biologia.
Questa nuova disciplina scientifica utilizza metodi di
matematica, informatica, biologia, medicina, fisica allo scopo
di migliorare la comprensione dei fenomeni biologici. Di
seguito, si elenca a titolo alcuni dei principali obiettivi della
Bioinformatica:
• Sviluppo
di strumenti per la generazione ed il
mantenimento dell informazione proveniente alle varie
fonti: mappa fisica, mappa genetica, mappa cromosomica,
mappa citogenetica, polimorfismi, e l informazione relativa
alle sequenze genomiche e proteiche etc.;
• Raccolta e organizzazione delle informazioni genetiche
associate alle patologie mediche;
• Sviluppo di programmi di calcolo per l'analisi delle
sequenze;
• Sviluppo d interfacce grafiche in grado di visualizzare in
maniera efficace l informazione richiesta;
• Sviluppo di metodi software che consentano di agevolare
tutte le fasi dei progetti;
• Sviluppo di strutture per database specializzate ed
integrate;
Realizzazione di standard per lo scambio e la descrizione
dei dati;
•  Realizzazione di una rete dati per la raccolta la
distribuzione e l aggiornamento costante di tutta
informazione prodotta;
•  Raccolta della bibliografia, brevetti e altri database di
supporto all informazione specifica;
•  • Predizione dei geni nelle sequenze di DNA;
•  • Predizione delle strutture tridimensionali delle proteine
partendo dalle sequenze primarie;
•  • Predizione delle funzioni biologiche e biofisiche sia
dalle sequenze e sia dalle strutture;
•  • Simulazione dei processi metabolici e cellulari basati su
queste funzioni.
•  • Realizzazioni di sistemi per la correlazione
dell informazione in sistemi biologici complessi.
DOVE ANDIAMO
•  Nel settore dell'elaborazione le aree di interesse
comune fra informatica e Biotech sono tante e
possono essere raggruppate in modi diversi. In
particolare, suddividendo queste aree secondo
un criterio legato al tipo di dati che vengono
trattati, si possono individuare tre filoni principali:
•  elaborazione immagini
•  elaborazione dati
•  elaborazione biosegnali
CLASSIFICAZIONE DEGLI STUDI
Distinguiamo due principali tipi di studi: gli studi osservazionali e gli studi
sperimentali.
Gli studi osservazionali si caratterizzano per il fatto che il ricercatore non
interferisce in nessun modo sulle unità dello studio (animali, gruppi di animali,
allevamenti) ma si limita a osservare determinati fenomeni e a registrarne in
modo opportuno le manifestazioni in genere nell ambiente naturale dei
soggetti, si tratta quindi di studi che non vengono condotti nell ambito di
ambienti controllati quali i laboratori.
Gli studi sperimentali, al contrario, sono condotti in laboratorio e in condizioni
particolarmente controllate al fine di ridurre gli errori dovuti alle molteplici
variabili biologiche che possono influenzare i risultati di una ricerca. In genere
sono studi condotti su un numero relativamente piccolo di soggetti.
Popolazione di riferimento, popolazione target, popolazione di studio.
COME PROCEDERE
I. Oggetto o ipotesi.
•  A. Quali sono gli obiettivi dello studio e le ipotesi cui bisogna
rispondere?
•  B. Qual'é la popolazione cui i ricercatori intendono riferire i risultati
del loro studio?
II. Disegno della ricerca.
•  A. Lo studio era un esperimento, un'osservazione pianificata o
un'analisi di dati registrati in precedenza?
•  B. Come è stato selezionato il campione? Ci sono possibili sorgenti
di selezione che potrebbero rendere il campione atipico o non
rappresentativo? Se così è, quale accorgimento fu preso per evitare
questo vizio?
•  C. Qual è la natura del gruppo di controllo o del gruppo standard di
confronto?
III. Osservazioni.
•  Vi sono definizioni chiare dei termini usati, inclusi i criteri diagnostici,
le misure eseguite ed i risultati?
•  Il metodo di classificazione o di misura era coerentemente adottato
su tutti i soggetti e rilevante ai fini che si propongono i ricercatori? Ci
sono possibili vizi di misura ed in tal caso quali accorgimenti si
utilizzano per eliminarli?
•  Le osservazioni sono attendibili e riproducibili?
IV. Presentazione dei risultati.
•  A. I risultati sono presentati in modo chiaro, oggettivamente, e con
dettagli sufficienti a consentire al lettore di giudicarli personalmente?
•  B. I risultati sono internamente consistenti, in altri termini, sono
corrette le operazioni di calcolo?
V. Analisi.
•  A. I dati meritano un'analisi statistica? Se sì, i metodi
dell'analisi statistica sono appropriati alla sorgente e alla
natura dei dati e l'analisi è eseguita ed i risultati sono
interpretati in modo corretto?
•  L'analisi è sufficiente a determinare se le differenze
significative possono essere attribuite a mancanza di
confrontabilità tra i gruppi per quanto riguarda il sesso, la
distribuzione per età, le caratteristiche cliniche, o altre
variabili rilevanti?
VI. Conclusioni.
•  Quali sono le conclusioni giustificate dai risultati? Quali
non lo sono? Le conclusioni sono pertinenti alle
domande poste dai ricercatori?
I DATI
Precisione: accordo tra le misure replicate; non possiede un valore numerico,, è la
qualità di una misura per cui essa è definita esattamente nel minimo dettaglio. In
alcuni casi questo termine viene impiegato come sinonimo di validità.
Imprecisione: deviazione standard dei risultati in una serie di misure ripetute.
Riproducibilità: reliability nella terminologia anglosassone, indica la precisione tra le
serie o tra giorni, ossia la stabilità di una osservazione
Accuratezza: l accuratezza rappresenta l accordo tra la stima del parametro ed il vero
valore. Esistono due tipi di validità: quella interna che rappresenta il grado di
conformità con il campione della popolazione studiata, mentre quella esterna
rappresenta la possibilità di generalizzare i dati su altre realtà non prese in
considerazione.
Inaccuratezza: differenza tra la media di una serie di misure ed il valore vero. La
differenza viene espressa solitamente in %.
Bias: errore sistematico, rappresenta una distorsione dei risultati.
Attendibilità: è una caratteristica delle misurazioni ripetute.
Validità: esprime il grado di corrispondenza o di approssimazione del risultato di una
misura.
LINGUAGGIO
•  Il linguaggio viene definito in un dizionario come
"l'insieme di parole e metodi di combinazione di
parole usate e comprese da una comunità di
persone".
•  L oggetto della rappresentazione della
conoscenza è l espressione della conoscenza
espressa in forma trattabile automaticamente.
•  Alla base di tutta l informatica vi sono due
concetti fondamentali, che risultano strettamente
interconnessi tra loro: quello di automa e quello
di linguaggio.
LINGUAGGIO BINARIO
•  Il linguaggio binario è dunque il linguaggio che consente
il funzionamento dei computer.
•  Il bit significa binary digit, vale a dire 0 o 1.
•  Quindi la più piccola unità informativa manipolabile.
•  Con un solo bit possiamo avere sia 1 che 0.
•  Con due bit possiamo avere una combinazione di (2*2).
Con tre bit 3 bits possiamo avere otto situazioni differenti
(2*2*2).
•  Un ottetto è una unità di informazione composta da 8
bits, e permette di rappresentare caratteri, intesi come
numeri o lettere
La base di conoscenza
•  La base di conoscenza o KB (Knowledge Base)
è un insieme di rappresentazioni del mondo,
ogni singola rappresentazione viene denominata
formula, le formule a loro volta sono espresse in
un linguaggio denominato linguaggio di
rappresentazione della conoscenza.
•  L oggetto della rappresentazione della
conoscenza è l espressione della conoscenza
espressa in forma trattabile automaticamente.
Un linguaggio di rappresentazione della
conoscenza è definito da due aspetti:
regola: soggetto + verbo + complemento
•  Disporre le parole rispettando una regola non è
sufficiente per dare loro un significato:
•  es. 1: Il mio cane corre sul prato (sintassi corretta, significato valido)
•  es. 2: Il tuo gatto salta sulla macchina (sintassi corretta, significato
valido)
•  es. 3: Il fiume beve sul mio cane (sintassi corretta ma priva di
significato)
•  es. 4: Il prato corre nella mia macchina (sintassi corretta ma priva di
significato)
•  Le regole per la costruzione delle frasi di un linguaggio sono
espresse come produzioni di un sistema formale denominato
grammatica.
•  In ambito più strettamente linguistico si intende per
significato il contenuto semantico o senso di un segno
linguistico.
•  Il termine semantica (che indicava anticamente, in
medicina, la scienza che valuta i sintomi delle malattie)
fu introdotto da Locke in filosofia per indicare lo studio
dei segni linguistici.
•  Morris (1938 e 1946) ha introdotto la distinzione in:
sintattica che studia le relazioni dei segni tra di loro;
semantica, che studia le relazioni dei segni con gli
oggetti cui sono applicabili.
•  Le regole per la costruzione delle frasi di un linguaggio
sono espresse come produzioni di un sistema formale
denominato grammatica.
Linguaggio
•  Per poter elaborare le informazioni, ovvero per eseguire
tutte le operazioni che possono essere effettuate sulle
informazioni (inserimento, archiviazione, modifica,
ordinamento, calcolo, ecc.) è necessario definire un
linguaggio, ossia uno strumento che sostituisca dei
simboli particolari agli oggetti ed ai concetti.
•  Esistono diversi tipi di linguaggi, in particolare si
distinguono tra:
•  NATURALI
•  FORMALI
ALFABETO
•  Un modo più tecnico per definire il concetto di linguaggio
è introdurre un insieme di simboli (detto alfabeto) e dire
che "un linguaggio è un particolare insieme di frasi
formate dai simboli dell alfabeto".
•  possiamo pensare di usare il linguaggio naturale.
•  Ad esempio, detto A l'insieme {0,1}, diciamo che L1 è il
linguaggio le cui frasi sono formate da n simboli 0 seguiti
da n simboli 1, con n che denota un qualunque numero
intero positivo. In base a questa definizione,
•  sono frasi di L1: 0011, 01, 000111
•  non appartengono a L1: 011, cane, a+b, etc.
LINGUAGGI NATURALI
•  I linguaggi naturali sono quelli utilizzati
quotidianamente dagli uomini per comunicare tra
loro (italiano, inglese, francese, ecc.); sono
dotati in una notevole ricchezza espressiva e
semantica, ma possono dar luogo ad ambiguità,
imprecisione e difficoltà di interpretazione.
•  I linguaggi formali sono quelli artificiali, creati
dall uomo secondo regole ben definite e prive di
eccezioni e di ambiguità (Pascal, Cobol, ecc.);
sono dedicati a scopi precisi e circoscritti.
ALFABETI
•  Ogni tipo di linguaggio, in ogni caso, è costruito su un
alfabeto.
•  Un alfabeto è definito come un insieme finito e non
vuoto di simboli convenzionali.
•  Una stringa è costituita da una sequenza qualsiasi di
simboli.
•  La stringa vuota è una stringa priva di simboli, indicata
con λ.
•  La lunghezza di una stringa è il numero di simboli nella
stringa, per esempio |abc| = 3.
•  Un linguaggio su un alfabeto I è un insieme di stringhe
costruite su I.
•  Con I* si indica l insieme di tutte le stringhe su I, inclusa
la stringa vuota.
•  Con I+ si indica l insieme di tutte le stringhe su I,
esclusa la stringa vuota.
•  Per esempio, se I = {0,1}, allora I+ =
{0,1,00,10,01,11,000,111,..}.
•  Esempi di alfabeti per i linguaggi naturali possono
essere:
•  italiano, composto da 21 lettere;
•  inglese, composto da 26 lettere.
•  Esempi di alfabeti per i linguaggi artificiali possono
essere:
•  insieme {linea, punto} del linguaggio telegrafico;
•  insieme dei colori {rosso,giallo,verde} del
linguaggio semaforico;
•  insieme delle cifre {0,1} utilizzato per il sistema
di numerazione binaria.
AUTOMA
•  Il concetto di automa può essere introdotto come segue:
per automa si intende un dispositivo che stabilisce una
precisa relazione tra un dato di ingresso e un dato di
uscita,
•  vincoli di realizzabilità fisica: se l'automa è fatto di parti,
queste sono in numero finito; l'ingresso e l'uscita sono
denotabili attraverso un insieme finito di simboli.
•  L'automa potrebbe essere realizzato da un insieme di
dispositivi elettronici digitali, oppure da dispositivi
meccanici o biologici.
•  L'obiettivo è di astrarre dai singoli, specifici casi concreti
enucleando le caratteristiche ritenute essenziali.
AUTOMA
•  In pratica, l automa accetta in input una
qualsiasi stringa e risponde SI se la
stringa appartiene al linguaggio associato,
NO altrimenti.
•  Il linguaggio riconosciuto dall automa A si
indica con L(A) e rappresenta l insieme
delle stringhe riconosciute da A.
AUTOMA
In generale, un automa è un dispositivo in grado di eseguire da solo,
cioè in modo automatico, senza l intervento di una persona, una
sequenza di azioni stabilite in precedenza.
Gli aspetti che caratterizzano il funzionamento di un automa sono:
•  i simboli forniti dall esterno, che l automa sa riconoscere nel loro
significato;
•  i simboli prodotti all esterno come risultato del lavoro svolto;
•  l insieme di tutti i possibili stati che l automa può assumere;
•  l insieme di tutte le possibili transizioni di uno stato all altro.
•  Il comportamento di un automa può essere
descritto da un algoritmo che specifica le azioni
da compiere e del quale l automa è l esecutore.
•  Un automa è definito come una quintupla di
elementi A = (I,S,s0,F,T):
•  alfabeto dei simboli input I = (i1, i2,…,in), cioè
l insieme finito dei simboli che l automa è in
grado di ricevere dall esterno, riconoscendoli;
•  insieme dei possibili stati S = (s1, s2,…,sn)
che l automa può assumere durante il suo
funzionamento;
•  stato iniziale s0∈S di partenza del
funzionamento dell automa;
•  insieme degli stati finali F⊆S;
•  funzione di transizione T: (it, st-1) → (st,ot)
cioè la funzione che indica lo stato successivo di
transizione all istante t e il simbolo che viene
emesso verso l esterno, in relazione di un
determinato stato precedente all istante t-1 e di
un determinato simbolo input.
•  In generale, il funzionamento di un automa
consiste nell accettare un simbolo dall esterno
ed emettere un simbolo in uscita, producendo un
cambiamento di stato.
•  Una stringa sarà riconosciuta dall automa se,
partendo dallo stato iniziale s0 e avendo come
input la stringa, esso dopo un certo numero di
transizioni di stato si troverà in uno stato finale di
F; se alla fine l automa non si trova in uno stato
finale, allora la stringa sarà rifiutata.
•  Il funzionamento di un automa può essere
descritto mediante un algoritmo, mediante un
grafo di transizione oppure mediante la tabella
della sua funzione.
DAL PROBLEMA ALL ALGORITMO
•  Problema – Qualunque problema che ci troviamo a dover
risolvere genera delle domande a cui dobbiamo trovare una
risposta.
•  Per la risoluzione di un problema si devono affrontare
alcune fasi: la prima fase consiste nell individuare con
precisione la domanda a cui rispondere e le risposte da
ottenere (dati del problema).
•  La seconda fase consiste nella costruzione di uno schema
che tenga conto solo degli aspetti importanti al fine della
risoluzione del problema (modello del problema).
•  La terza fase è quella più creativa e consiste
nell individuare le operazioni da compiere per raggiungere il
risultato stabilito del problema (algoritmo).
Dati e Azioni
•  Nella descrizione del problema occorre anzitutto definire
i dati iniziali (dati di input) sui quali basare la soluzione
del problema; essi non devono essere né
sovrabbondanti né troppo ridotti.
•  Poi bisogna definire i risultati che si vogliono ottenere
(dati di output). In un problema i dati possono essere di
tipo diverso: numerico (solo cifre: stipendio, importo,
ecc.), alfabetico (solo lettere: nome, cognome, ecc.) o
alfanumerico (insieme di cifre e lettere: codice fiscale,
targa, ecc.).
•  Le azioni rappresentano le attività che si compiono in un
intervallo
•  operazioni di tipo aritmetico quali i calcoli
(somma, IVA 20%, ecc.) o di tipo logico
(confronto tra due valori A>B, controllo per
stabilire se è stata raggiunta la fine di un elenco,
ecc.).
•  Per descrivere le azioni è necessario disporre di
un linguaggio; le descrizioni delle azioni sono
dette istruzioni.
•  Una regola pratica per individuare quali sono i
dati e quali le azioni di un problema, consiste nel
trattare i sostantivi come dati e i verbi come
azioni.
•  Modello: è una forma semplificata di rappresentazione della
realtà che tiene conto di tutti e solo gli elementi determinanti
per la risoluzione di un problema (per esempio, la carta
stradale per la risoluzione del problema della determinazione
del percorso più breve tra varie città).
•  Algoritmo: successione ordinata e finita di tutte le operazioni
che devono essere eseguite per raggiungere il risultato del
problema stabilito in precedenza.
•  Implementazione – Per implementazione di un problema si
intende il suo trasferimento su un sistema di elaborazione.
•  Risolutore – Il risolutore è colui che progetta prima il
percorso di risoluzione di un problema e successivamente
l algoritmo.
•  Esecutore – L esecutore è l ente, nel senso generico di
umano o automatico, che esegue le azioni secondo le
istruzioni dell algoritmo.
•  Rappresentazione degli algoritmi – Per rappresentare
un algoritmo occorre seguire delle modalità e regole
precise. Per quanto riguarda le modalità, possiamo
dividere la sua rappresentazione in tre parti:
•  1) riga di intestazione: la prima riga contenente il nome
che il risolutore decide di dare all algoritmo per ricordare
l obiettivo del problema (Algoritmo Media, Algoritmo
Ordina, ecc.);
•  2) sezione dichiarativa: una o più righe contenente la
descrizione degli oggetti che vengono usati
dall algoritmo, cioè nome e tipo di dati (base, altezza:
numeri reali; pigreco:costante 3,14; ecc.);
•  3) sezione esecutiva: inizia con la parola begin (o inizio)
e termina con end (o fine), e contiene l elenco ordinato
delle istruzioni dell algoritmo che l esecutore deve
eseguire.
Vi sono poi delle regole per comunicare le istruzioni all esecutore:
a) per indicare l istruzione di acquisizione di dati si usa il comando
input (o leggi) seguito dal nome della variabile da leggere, messo fra
parentesi; se le istruzioni di lettura sono più di una, si può utilizzare
un elenco di variabili separandole con una virgola:
input (base)
input (altezza)
oppure
input (base, altezza);
b) per indicare l istruzione di comunicazione di dati si usa il comando
output (o scrivi);
output (A)
output (B)
oppure
output (A, B);
c) per indicare l attribuzione di un valore ad una variabile si usa
l istruzione di assegnamento:
•  A := B+C oppure A ß B+C.
•  Esempio 1 – Calcoliamo la media di tre numeri
reali assegnati.
algoritmo MEDIA;
variabili
A,B,C,M : numeri reali;
begin
input (A,B,C);
M ß (A+B+C) / 3;
output (M)
end
Esempio 2 – Dato un numero intero, calcolare il
precedente e il successivo.
algoritmo PREC_SUCC;
variabili
N,P,S : numeri interi;
begin
input (N);
P ß N – 1;
S ß N + 1;
output (P,S)
end
Esempio 3 – Calcolare il punteggio totale attribuito da una
giuria di 10 elementi ad un iscritto ad una gara.
algoritmo SOMMA;
variabili
C,S,N : numeri interi;
begin
C ß 0;
S ß 0;
repeat
input (N);
S ß S + N;
C ß C + 1;
until C <= 10
output (S)
end
INFERENZA
•  La proprietà che un fatto segue altri fatti è rispecchiata
dalla proprietà di una formula di essere derivata da
un altra formula.
•  L inferenza logica genera nuove formule che sono
derivate da formule esistenti. A noi in generale interessa
generare nuove formule che siano necessariamente
vere, nel caso in cui le vecchie formule siano vere;
questa relazione viene chiamata implicazione.
•  Il termine di ragionamento ed inferenza sono solitamente
sinonimi se usati per descrivere un procedimento che
porta al raggiungimento di conclusioni.
INFERENZA
•  L inferenza logica è quindi un processo che realizza la
relazione di implicazione fra formule.
•  Una formula è valida o necessariamente vera se e solo
se è vera secondo tutte le possibili interpretazioni in tutti i
mondi possibili. C è un muro davanti a me e non c è un
muro davanti a me è una formula insoddisfacibile.
Un sistema formale di logica per la descrizione di cose
consiste quindi in:
•  sintassi
•  semantica
•  una teoria della dimostrazione.
Esistono due tipi di logica
•  logica proposizionale o logica booleana
•  logica del primo ordine.
Nella logica proposizionale i simboli rappresentano intere
proposizioni e le proposizioni possono essere combinate
usando i connettivi booleani.
La logica di primo ordine affida la rappresentazione dei
mondi in termini di oggetti e predicati su oggetti, cioè
proprietà degli oggetti o relazione tra oggetti.
Si utilizzano connettivi e quantificatori che consentono di
scrivere in una unica formula asserzioni riguardanti tutti
gli elementi dell universo.
•  Logiche speciali assumono assunzioni
logiche superiori, ad esempio la logica
temporale considera che il mondo sia
ordinato da un insieme di punti di tempo.
•  i sistemi che usano la teoria della
probabilità possono avere gradi di
credenza che possono variare da 0
(credenza nulla) a 1 (certezza).
•  I sistemi basati sulla logica fuzzy possono
avere gradi di credenza secondo gradi di
verità. Un fatto non deve essere vero o
falso, ma può essere vero fino ad un certo
grado. Ad esempio l affermazione La
Juventus è una grande squadra può
essere vera con un certo grado di verità.
LINGUAGGIO
Assunzioni Ontologiche
Assunzioni Epistemologiche
Logica preposizionale
Fatti
vero/falso/ignoto
Logica del primo ordine
Fatti, oggetti, relazioni
vero/falso/ignoto
Logica temporale
Fatti, oggetti, relazioni, tempo
vero/falso/ignoto
Teoria della probabilità
Fatti
gradi di credenza (0….1)
Logica fuzzy
Gradi di verità
gradi di credenza (0….1)
LA LOGICA PROPOSIZIONALE
•  La sintassi della logica è molto semplice in
quanto utilizza le costanti logiche, vero-falso, i
simboli preposizionali P e Q e i connettivi logici.
Tutte le formule sono costruite utilizzando i
simboli secondo alcune regole
•  Le costanti logiche Vero o Falso sono formule
•  Un simbolo preposizionale come P o Q è una
formula
•  Mettere delle parentesi determina una formula
⇔
•  Una formula può essere ottenuta combinando formule
semplici con i connettivi logici.
•  ∧ (and). Una frase in cui il connettivo principale è ∧
(P∧Q) è chiamata congiunzione
•  ∨ (or). Una formula che usa ∨, A ∨ (P∧Q) è una
disgiunzione dei disgiunti (il simbolo ∨ deriva dal latino
vel che significa o).
• 
Una formula come (P∧Q) R è chiamata implicazione.
•  La parte (P∧Q) rappresenta la premessa o antecedente,
mentre R costituisce la conclusione.
•  La formula (P∧Q)
(Q∧P) è una equivalenza
•  chiamata anche bicondizionale.
•  (not). Una formula come P è chiamata negazione.
•  In molti casi la logica preposizionale non necessita di
alcuna relazione per la rilevanza tra P e Q. Ad esempio
la frase 5 è dispari implica Parigi è una capitale è un
poco strana, ma corretta.
•  Una confusione inoltre deriva dal fatto che qualsiasi
implicazione è vera quando il suo antecedente è falso.
Ad esempio posso avere 5 è pari (Falso) Giovanni è
stupido (vero). In realtà dovrei dire P e Q se P è vero,
allora Q è vero, altrimenti non sostengo nulla.
•  Qualsiasi mondo in cui una formula sia vera secondo
una particolare interpretazione è chiamato modello
Le grammatiche.
•  Il mondo è costituito da oggetti, cioè identità
individuali con proprietà e relazioni, se le
relazioni sono tali per cui esiste un solo ingresso
si parla di funzioni.
•  Un linguaggio formale è definito come un
insieme di stringhe in cui ogni stringa è una
sequenza di simboli. Tutti i linguaggi sono quindi
un insieme infinito di simboli che ha bisogno di
un modo conciso di rappresentazione che è dato
dalla grammatica.
OGGETTI
Persone, animali, numeri ……
RELAZIONI
Fratello di, più piccolo di, possiede..
PROPRIETÀ
Rosso, primo, quadrato
FUNZIONI
Padre di, secondo tempo di, uno più di
MODELLO
•  La conoscenza e la comprensione di fenomeni
complessi in ambito della ricerca sono
rappresentate come modello. Il metodo
scientifico è basato sulla creazione, verifica,
modifica del modello di rappresentazione del
mondo. La finalità del modello è quella di
semplificare e di spiegare la complessità dei
diversi fenomeni. Le scienze applicate usano i
modelli per predire, controllare e comprendere la
realtà del mondo.
Il modello è una rappresentazione che contiene gli
elementi essenziali degli oggetti o degli eventi
che si realizzano nel mondo reale.
La rappresentazione di un modello può avvenire
secondo due modalità.
•  FISICA. Come un modello di aeroplano o il
modello di una costruzione.
•  SIMBOLICA. Come nel linguaggio naturale, un
programma al computer o una serie di equazioni
matematiche.
•  I modelli possono essere facilmente
cambiati o manipolati: il cambiamento di
un modello simbolico è certamente più
facile rispetto al cambiamento in un
modello fisico. I valori che si modificano in
un modello sono chiamati parametri.
•  La costruzione del modello passa attraverso quattro fasi:
•  SEMPLIFICAZIONE e IDEALIZZAZIONE si identificano
gli elementi essenziali della struttura (oggetti ed eventi).
•  MANIPOLAZIONE e TRASFORMAZIONE
rappresentano le implicazioni derivate dal modello.
•  RAPPRESENTAZIONE e MISURA sono il formalismo
che descrive gli oggetti, gli eventi e le loro relazioni.
Questo è il processo di traduzione dalle parole
all espressione algebrica; in statistica utilizziamo i
simboli dell algebra (misure) per dare significato al
processo chiamato misura.
•  VERIFICA. Le implicazioni derivate sono confrontate con
i risultati o le osservazioni nel mondo reale
interpre ta
Mond o rea le
Mo de llo
o sse rvazione
mo difica
v erific a
Mond o rea le
Mo de llo
Rappresentazione attraverso un modello generico
COSA SI VEDE
Caus a
Effe tto
TEORIA
Pro gramm a
Osse rvazioni
Si c re de
Si ved e
COSA SI CREDE
Rappresentazione di un modello statistico
...dal bit al linguaggio R
In principio era il bit… …Per intenderci 0 e 1, il linguaggio macchina.
§  Tra gli anni '40 e gli anni '50, la programmazione
degli elaboratori elettronici era destinata solamente
a una ristrettissima cerchia di esperti. §  Progenitore di tutti i
computer è l'ENIAC
(Electronic Numerical
Integrator And
Calculator ), al cui
progetto partecipò J.
von Neumann. EVOLUZIONE STORICA DEL
CALCOLO
• 
ABACO
• 
1642 Blaise Pascal
• 
1822 C. Babbage
Linguaggio Assembly PRIMO VERO LINGUAGGIO DI PROGRAMMAZIONE FORTRAN (FORmula TRANslation) §  L'ideatore fu John Backus. §  Lo scopo principale era quello di automatizzare calcoli matematici e scientifici. §  Sulla sua scia vennero progettati moltissimi altri linguaggi di alto livello. Linguaggio di programmazione di secondo livello: Algol §  Progettato da un comitato internazionale con l'obiettivo di creare un linguaggio universale. §  La sua indipendenza dalla macchina concedeva maggiore creatività ai progettisti. Aree di applicazione §  ALGOL è stato utilizzato in particolare da scienziati europei e americani interessati a ricerche sui computer. §  La sua applicazione in ambito commerciale è stata interdetta. §  ALGOL 60 divenne comunque lo standard per la pubblicazione di algoritmi. 1960:COBOL COmmon Business Oriented Language §  Utilizzato per sviluppare programmi gestionali. §  La sua diffusione è dovuta alla facilità della sue istruzioni, molto simili a frasi inglesi. §  Trovando una grandissima applicazione nelle aziende, ebbe molto successo. Per i programmatori pricipianti:BASIC Beginner's All purpose Symbolic Instruction Code §  Sviluppato a Dartmouth College, grazie al progetto di J. Kemeny e T. Kurtz (1964). §  E tra i migliori linguaggi utilizzati nelle scuole a scopo didattico. §  Realizza un'ampia gamma di applicazioni e dispone di molte versioni. §  Dal BASIC discende il filone dei vari Visual BASIC, linguaggi visuali orientati agli oggetti, con l'interfaccia grafica (bottoni, finestre etc.). Chi è Pascal? §  Sviluppato da Niklaus Wirth, membro dell'International Federation of Information Processing (IFIP). §  La pubblicazione originale del linguaggio avvenne nel 1971, ma fu scelto per l insegnamento dagli anni 60 alla fine degli anni 80. §  Consente lo sviluppo di programmi ben strutturati e ben organizzati. §  E diretto discendente di ALGOL 60. Il più basso tra i più alti: il linguaggio C definito come il §  Linguaggio ad alto livello linguaggio di piu' basso livello tra i linguaggi ad alto livello . §  Dennis Ritchie realizzò la prima versione nel 1972 a Bell Laboratories. §  I suoi principi erano presi dal precedente linguaggio B e il B aveva ereditato certe caratteristiche da BCPL e CPL. §  Nasce per lo sviluppo di sistemi operativi, quindi per software di basso livello. …Combined Programming Language (CPL) Problema: §  occupava troppo spazio per poter girare in molte applicazioni. Soluzione: §  1967 venne creato il BCPL (Basic CPL), versione ridotta che non perde le sue funzioni di base. §  La potenza e flessibilità del C apparve subito evidente e per questo il sistema operativo di Unix, scritto in assembly, venne riscritto immediatamente in C. §  Riesce a mantenere semplicita' d'uso ma… …C è un trucco… §  Affida le funzioni più complesse a un'insieme di librerie esterne, esattamente come il MacOS. C++ §  E' un'estensione del C. §  Fornisce una serie di funzioni che potenziano il C. §  Software Engineering §  Grafica §  Sviluppato nei primi anni '90 alla Sun Microsystem. §  E' orientato agli oggetti. §  E' indipendente dalla piattaforma. §  Contiene strumenti per il networking. §  E' progettato per eseguire codici in modo sicuro. §  Il bytecode viene eseguito dalla JVM (Java Virtual Machine). LINGUAGGIO R §  Nasce in Nuova Zelanda. §  Basato sulla probabilità e la statistica. §  Usato per la progettazione di software di biologia molecolare §  Esistono diverse versioni. §  Progetto Bionconductor. Però….. •  I linguaggi si dividono infine in base alla
modalità di esecuzione:
•  Un file.exe è un file che è stato scritto in un certo
linguaggio X e poi è stato tradotto nel linguaggio
macchina (il linguaggio X è compilato).
•  Un file.bat è un file che viene eseguito senza
dover essere compilato di volta in volta
(linguaggio interpretato).
…Ora,resta solo un'ultima,fondamentale e importante domanda… Perchè tutti questi linguaggi?
• 
• 
• 
• 
• 
• 
Perchè col tempo sono cambiate le esigenze:
Negli anni '60 tutto era molto sperimentale;
Gli anni '70 hanno portato alla diffusione dei linguaggi procedurali.
Il software è artigianato;
Gli anni '80 portano alla diffusione dei primi pc e alla
pragrammazione ad oggetti. Il software è manifattura seriale;
Gli anni '90 portano alla programmazione ad aspetti. Il software è
commerciale;
Gli anni 2000 portano allo sviluppo complesso. Non esiste più il
concetto di software ma di servizio.
Conclusioni… §  Ciascun programmatore sceglierà sempre e comunque uno specifico linguaggio da utilizzare in base al problema da risolvere.