
Programmazione Corso di Laurea in Biologia sperimentale e bioinformatica
Programma
Esami

Principi generali della Teoria dell’Informazione. Il sistema di comunicazione. Alfabeti e rappresentazione dell'informazione nei sistemi digitali. Codifiche economiche e compressione di dati. Rappresentazione numerica. I numeri e la loro rappresentazione. I numeri e loro rappresentazione negli elaboratori elettronici: il sistema binario. Naturali: rappresentazione e tecniche di conversione in sistemi in base b; intervalli di rappresentazione; operazione di somma. Interi: rappresentazione e tecniche di conversione in sistemi in base b; intervalli di rappresentazione; operazioni di somma, sottrazione e moltiplicazione; overflow e trabocco. Reali: rappresentazione standard IEEE 754; operazioni di somma e moltiplicazione.
Elaboratori elettronico. Elaboratori di Ia generazione: il modello della Macchina di Von Neumann (Unità di controllo. Unità di calcolo. Memoria Centrale. Organizzazione fisica e logica dei dati. Recupero delle informazioni. Memoria Cache. significato ed utilità. Dispositivi di I/O. Protocollo di lettura e di scrittura. Interconnessione con bus). Elaboratore di IIa generazione (Macchine RISC. Architettura dell'elaboratore MIPS. Esecuzione di una istruzione in un colpo di clock. Canalizzazione). Elaboratori di IIIa generazione. Sistemi paralleli (Tipi di parallelismo. La nozione di thread. Architettura Multicore- Multiprocessore). Scheda madre.
Fondamenti di programmazione. Ideazione e scrittura di un algoritmo. Teorema Böhm-Jacopini. Programma strutturato. Diagramma di flusso: simboli e regole di composizione. Linguaggi di modellazione. Programma: variabile, tipo della variabile, un insieme di istruzioni logiche aritmetiche, interazione con dispositivi di Input/Output; selezione (IF), ripetizione (WHILE), iterazione (FOR). Dal codice sorgente al codice eseguibile: linguaggio ad alto livello, compilatore, assemblatore, linker e eseguibile.
Il Sistema Operativo. Firmware. Strutture e servizi del sistema operativo (Gestione dei Processi, Gestione della Memoria Centrale, Gestione della Memoria Ausiliaria, Gestione del sistema di I/O, Gestione dei File, Sistemi di protezione, Reti, Interprete dei comandi). Interruzione. Gestore di interruzione, commutazione del contesto, riconoscimento delle interruzioni con sistema di interrupt vettorizzato, espletamento del servizio di interruzione. Processo (definizione, tempi di impiego della CPU e dei dispositivi di I/O). Multiprogrammazione. Multiutenza. Memoria Centrale (Allocazione e problema della frammentazione). Paginazione. memoria Virtuale. File System: file e cartelle. Allocazione delle risorse (contigua, a lista concatenata, indicizzata). Linux. Uso della bash e principali comandi di Linux.
Linguaggio R. Installazione di R. Installazione dell’ambiente di sviluppo (R-Studio). La nozione di Oggetto. Il set delle Istruzioni. Strutture di controllo (condizionale, IF; Selezione Doppia, IF .. ELSE; annidamento, Ripetizione, WHILE; Ripetizione Forzata REPEAT...IF; iterazione, FOR) Funzioni. La nozione di funzione. Funzioni definite dall’utente. Funzioni integrate Strutture dati. Vettore (Vector); Matrice (Matrix); Vettore multi dimensionale (Array); Lista (List); Fattore (Factor); Segmento di dati (Data Frames) Pacchetti in R Gestione File in R. File di tipo testuale (CVS, XML, JSON XLSX) File di tipo binario. Prelievo di file da remoto. Grafici in R. Grafici a barre (ortogrammi); Grafici circolari (aerogrammi); Istogramma; Diagramma a scatola; Diagramma a nuvola di punti Machine Learning con R. L’apprendimento automatico Machine Learning e Linguaggio R. Regressione lineare.
Linguaggio Python. Installazione di Python. La nozione di Oggetto. Il set delle Istruzioni. Strutture di controllo (condizionale, IF; Selezione Doppia, IF .. ELSE; annidamento IF ELIF ELSE, Ripetizione, WHILE; iterazione, FOR) Strutture dati (Liste, Tuple, Dizionari , Set, Frozenset) e principali funzioni predefinite. Funzioni. La nozione di funzione. Funzioni definite dall’utente. Librerie, importazione e loro uso