Introduzione

Download Report

Transcript Introduzione

Metodi Informa?ci per la Biologia Fabrizio Ferrè [email protected] Tel: 06 72594320 Dipar?mento di Biologia, Dente di Gene?ca, stanza 320 Orario: martedi 11-­‐13 Aula T7 giovedi 14-­‐16 Aula L3 due turni: A-­‐L dalle 14 alle 15 M-­‐Z dalle 15 alle 16 (poi si inverte) 3 credi?, 12 lezioni (6 lezioni + 6 esercitazioni)
Cosa imparerete in questo corso Impareremo a programmare, in un linguaggio di programmazione “semplice”: -­‐  Python (www.python.org oppure www.python.it) Perchè imparare a programmare? Come si svolgerà il corso -­‐  Sarà il più possibile intera_vo -­‐  Portate il vostro computer, oppure condividetelo con qualcuno -­‐  Provate a fare le cose man mano che le spiego (ma non distraetevi troppo) -­‐  Venite alle esercitazioni! Come sarà l’esame -­‐  Solo scrico -­‐  Dovrete scrivere dei programmi semplici, o rispondere a domande -­‐  Si potrebbero fare due esoneri, uno a metà corso e uno alla fine, se c’è un numero sufficiente di persone interessate C’è un libro di testo? -­‐  Non esacamente. Ci sono tan?ssimi libri e tutorial online, vi segnalerò i migliori -­‐  Mecerò online quanto mostrato a lezione qui: hcp://160.80.34.123/MIB2014 -­‐  Ad es. il materiale della lezione di oggi si trova: hcp://160.80.34.123/MIB2014/Lezione1/ -­‐  Per accedere: Username: MIB2014 Password: MIB2014! Com’è faco un computer Com’è faco un computer Immagazzinamento dell’informazione In un computer ogni dato è conver?to in forma binaria (sistema a due sta?) Ad esempio, l’informazione immagazzinata nella RAM è conver?ta in una combinazione di sta? accesso o spento Bit Byte 8 bits on Oppure
off Immagazzinamento dell’informazione Nella RAM, ai da? sono assegnate locazioni della memoria caracerizzate da un indirizzo. Assegnando un nuovo contenuto a una locazione gia occupata sovrascrive il vecchio contenuto. L’informazione rimane nella RAM fino a che il programma che l’ha generata rimane in esecuzione. Immagazzinamento dell’informazione Come si converte un numero in binario: 0 0 0 0 1 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 27 26 25 24 23 22 21 20 (27*0)+(26*0)+(25*0)+(24*0)+(23*1)+(22*1)+(21*0)
+(20*1) = 8+4+1 = 13 13 Immagazzinamento dell’informazione Il segno di un numero è rappresentato dal primo bit: 1 o acceso = posi?vo; 0 o spento = nega?vo Numero
positivo
Resto del numero
Numero
negativo
Numero
positivo
Valore del numero, in questo caso 13 0 0 0 0 1 1 0 1 Immagazzinamento dell’informazione Numeri reali: Segno 1 bit Man?ssa Vari bits Esponente Vari bits –  Man?ssa: cifre del numero che si vuole rappresentare –  Esponente: la direzione e il numero di cifre che il punto decimale deve spostarsi (“float”) per rappresentare il numero reale (“floa?ng point”) Esempi, u?lizzando 5 cifre per rappresentare la man?ssa: 123.45 12345 * 10-­‐2 0.12 12000 * 10-­‐5 123456 12345 * 101 Immagazzinamento dell’informazione Caraceri alfanumerici e simboli sono rappresenta? secondo la codifica ASCII: Ogni caracere è associato a un valore numerico – Ad es., A = 65, B = 66, a = 97, 2 = 50 Ques? valori numerici sono poi immagazzina? in forma binaria Carattere
Codice numerico
ASCII
Codice
binario
A
65
01000001
B
66
01000010
a
97
01100001
2
50
00110010
Il primo personal computer 1975 Cos’è un linguaggio di programmazione -­‐  E’ un linguaggio che consente di comunicare istruzioni ad un computer, per fargli svolgere un compito -­‐  In realtà, la macchina può capire solo istruzioni di livello molto “basso”, cioè molto vicine al funzionamento del computer stesso -­‐  Nella pra?ca, i linguaggi moderni forniscono un’insieme di regole che specificano come scrivere le istruzioni, e un programma che le traduce in qualcosa che la macchina può capire La generazione di un programma Traduzione • Un altro programma (compilatore, o interprete) traduce il programma scrico dal programmatore nella forma che la macchina può capire (linguaggio macchina/binario) Scri%ura del programma • Una persona (il programmatore) scrive una serie di istruzioni rispecando le regole del linguaggio scelto • Le istruzioni sono di “alto” livello, cioè simili a un linguaggio “umano”, con delle regole speciali Esecuzione • Le istruzioni in linguaggio macchina possono essere eseguite, eventualmente generando un output Traduzione del codice Codice sorgente Codice sorgente Interprete Compilatore Codice oggeco Strucura di un programma Input x Funzione o programma f(x,v) v Controllo Output y Perchè Python -­‐  Semplice e leggibile -­‐  Include strucure da? complesse -­‐  Include mol?ssime librerie che rendono disponibili funzioni u?li -­‐  Linguaggio general purpose e mul2paradigma -­‐  Estensibile -­‐  Open source -­‐  Mul?piacaforma -­‐  Molto diffuso -­‐  Scrico da Guido van Rossum nel 1989 -­‐  La versione 2.0 è stata rilasciata nel 2000 -­‐  Nel 2008 è stata rilasciata la versione 3.0, che non è compa?bile con le preceden? (e NON la useremo) -­‐ Il nome è un omaggio al gruppo comico Monthy Python Python ha la sintassi più semplice Come installare Python -­‐  Python è normalmente gia installato su Linux e MacOS X -­‐  Per Windows sono disponibili delle versioni precompilate che vanno installate -­‐  Scaricate la versione 2.7 a 32bit o 64bit a hcp://www.python.org/download/ -­‐  Eseguite il file scaricato e seguite le istruzioni, accecando le impostazioni di default Installare Python su Windows Installare Python su Windows Installare Python su Windows Installare Python su Windows Installare Python su Windows Installare Python su Windows Come lanciare Python -­‐  Su Linux: aprite una shell, e digitate python (e invio) per lanciare una sessione intera_va -­‐  Su MacOS X: aprite terminal in Applica?ons -­‐> U?li?es, digitate python (e invio) -­‐  Su Windows: cliccate Start -­‐> All Programs > Python > Python (command line) Shell intera_va su MacOS X Shell intera_va su Windows 7 Shell intera_va su Windows 7 Per la prossima volta (giovedi): Installate Python se non l’avete, e verificate di poter lanciare la shell intera_va. Se avete problemi scrivetemi o passate da me Un po’ di link u?li Sito ufficiale: hcp://www.python.org hcp://www.python.it Installazione: hcp://docs.python.org/using/windows.html hcp://docs.python.org/using/unix.html hcp://docs.python.org/using/mac.html Manuali e documentazione: hcp://www.python.it/doc/ hcp://www.python.it/doc/ar?coli/instpy-­‐0.html hcp://docs.python.it/html/tut/tut.html hcp://www.python.it/doc/Howtothink/HowToThink_ITA.pdf hcp://it.diveintopython.net/