Bionformatica (parte generale) Corso di laurea in Biotecnologie Alberto Policriti alberto.policriti@uniud.it www.dimi.uniud.it/policriti ricevimento giovedì 14:30-16:30 o su appuntamento
Testi Gibas Jambeck Developing Bioinformatics Computer Skills.O Reilly G.Valle - M.Helmer Citterich - M.Attimonelli - G.Pesole Introduzione alla Bioinformatica Zanichelli appunti delle lezioni (vostri) slides (dalla mia pagina web... ricordatemelo!) pagina web: www.dimi.uniud.it/policriti
Obiettivi del corso introdurre dal basso agli strumenti informatici; fornire una conoscenza della terminologia utilizzata nel campo; introduzione alla programmazione mediante linguaggi moderni e importanti illustrare il potenziale della bioinformatica in termini di: potenza elaborativa facilità d uso creazione di specifici software di analisi, applicazioni ad hoc per risolvere specifici problemi biologici accesso on-line attraverso il World-Wide Web... piu idee che tecnologia
Lezioni ed esami 60 ore di lezioni in classe 30 ore di esercitazione in classe ed in laboratorio: Nicola Vitacolonna Esame finale: scritto con laboratorio e orale facoltativi. Progetti coordinati con le lezioni di laboratorio
Che cos è l Informatica Scienza dell elaborazione dell informazione non si riduce all utilizzo di strumenti (e.g. linguaggi di programmazione e basi di dati); si occupa del trattamento dell informazione in termini di rappresentazione e algoritmica; fondamentale è il concetto di algoritmo
Esempi di algoritmi somma di due numeri (in rappresentazione decimale o altro); calcolo della distanza di due nodi in un grafo; ricerca di un articolo in una banca dati; determinazione della presenza di un gene in un cromosoma; ecc.
Caratteristiche fondamentali degli algoritmi Correttezza e completezza (induzione) Complessità (analisi asintotica del caso pessimo)... Teoria degli algoritmi
Linguaggi di programmazione servono per fare eseguire algoritmi; ce ne sono tanti suddivisi in paradigmi: imperativo, logico, funzionale, object-oriented; esempi: Fortran (formula translator), Cobol (Common Business Oriented Language), Pascal (didattico), C (Unix), Java (Internet), Prolog (dichiarativo), Lisp (funzionale),...
Architettura dei sistemi informatici: introduzione Molte componenti eterogenee, prima suddivisione: hardware/software
Hardware: le componenti Unità di elaborazione, processore, CPU (Central Processing Unit) Memoria centrale, RAM (Random Access Memory) Memoria secondaria, memoria di massa Bus di sistema Periferiche di I/O (mouse, tastiera, terminali, stampanti, ecc.)
La memoria in un calcolatore serve perché deve contenere sia i dati che i programmi che operano su di essi (alla base della differenza tra i moderni calcolatori e le antiche macchine per eseguire calcoli) problema tecnologico: deve essere stabile Termini usati: disco rigido (fisso), CD-ROM (Compact Disk-Read Only Memory), DVD (Digital Versatile Disc)... FILE
.. idee molto belle: chi le ha avute? von Neumann Turing molti altri corso di storia dell Informatica
.. idee molto belle: chi le ha avute? von Neumann Turing molti altri corso di storia dell Informatica
L ENIAC lezione 01 14
Jon von Neumann
Alan Turing http://www.turing.org.uk/turing/
The Enigma
I have described, in some detail, the nature of modern computing machines It is now possible to pass on to the other term of the comparison, the uman nervous system. I will now discuss the points of similarity and dissimilarity of these two kinds of automata.. J. von Neumann The computer and the brain 1958 Pisa 21/6/02 A.Policriti: Tempo e Automi 1
Sistemi informatici dal punto di vista hw PC reti di calcolatori
Personal Computer Piccoli, tutte le componenti nello stesso posto, si suppone vengano utilizzati da una singola persona I sistemi operativi (software di base per l utilizzo dell elaboratore) per PC sono spesso disegnati per un singolo utente
Reti di calcolatori Molti elaboratori (magari PC) collegati tra loro (spesso si usa il termine workstation) Tra i calcolatori collegati ce ne possono essere di particolarmente grandi (si usa il termine mainframe) al quale vengono collegati i terminali (coppia di dispositivi di I/O)
Reti di calcolatori Due principali categorie di reti: LAN (Local Area Network) e WAN (Wide Area Network)
LAN Servono, essenzialmente, a condividere risorse e a comunicare in un stesso edificio (o poco più) Ex. Ethernet
pc pc pc pc stampante PC del capo bus lettore dat cd-drive stampante
WAN Collegano elaboratori molto distanti fra loro; funzionano usando reti locali come sottoreti e collegamenti tramite rete telefonica (o altro) permettono la computazione distribuita... sono piu complesse e problematiche delle LAN
rete locale router Host rete geografica Host termina remoti terminali locali terminali locali Host teminali remoti
I sistemi informatici dal punto di vista sw E la parte modificabile dei sistemi informatici (a parte il firmware che alcuni chiamano terra di nessuno ) Ci interessa di piu perche abbiamo modo di scriverlo (oltre che di usarlo) Spesso costa un mucchio di soldi e nasconde vari tipi di trappole
I sistemi informatici dal punto di vista sw E la parte modificabile dei sistemi informatici (a parte il firmware che alcuni chiamano terra di nessuno ) Ci interessa di più perche abbiamo modo di scriverlo (oltre che di usarlo) Spesso costa un mucchio di soldi e nasconde vari tipi di trappole
Classificazione del sw Software di base: opera al di sopra dell hw (e del fw) e di solito si compra Software applicativo: anche questo si compra ma e pensato per rispondere ad esigenze specifiche. Si puo anche implementare o personalizzare
SW di base Ex. Sistema operativo permette di usare il sistema fisico (esecuzione di programmi, memorie, periferiche,...) permette di utilizzare il sistema da parte di uno o piu utenti (mono-utente, multi-utente) garantisce la sicurezza Windows 7/8, Vista, XP, MacOS, Unix, Linux,...
SW applicativo Ex. Sistema di gestione di basi di dati (database) consente l organizzazione dei dati per l accesso in modo condiviso e una delle classi di programmi piu importanti per le moderne biotecnologie
... tantissimo software software per la comunicazione videoscrittura agende elettroniche ipertesti (e linguaggi per la loro gestione) fogli elettronici...
Programmazione ambienti per l utilizzo dei linguaggi di programmazione: editor: per comporre i programmi sorgente compilatori interpreti linker debugger
Le applicazioni dell Informatica applicazioni numeriche: i computer come number cruncher le applicazioni gestionali: office and lab automation i servizi telematici distribuiti (e.g. Bancomat) l automazione industriale CAD (Computer Aided Design), CAM (Computer Aided Manufacturing) applicazioni embedded (sistemi real time)
Le aree disciplinari dell Infomatica Algoritmi e strutture dati Architettura degli elaboratori Intelligenza artificiale Scienze computazionali Basi di dati Grafica Interazione uomo-macchina sistemi operativi e reti linguaggi di programmazione...