SCIENZE BIOMEDICHE E BIOTECNOLOGICHEBiotecnologieAnno accademico 2025/2026
9796072 - PRINCIPI DI BIOINFORMATICA 3
Modulo PRINCIPI DI INFORMATICA
Docente: LORENZO FEDERICO SIGNORINI
Risultati di apprendimento attesi
Al termine del corso lo studente sarà in grado di comprendere i principi
fondamentali della programmazione e la distinzione tra linguaggi
compilati e interpretati, riconoscendo i principali costrutti logici
(sequenza, selezione e iterazione) e la loro rappresentazione mediante
diagrammi di flusso.
Acquisirà familiarità con i linguaggi R e Python,
conoscendone la struttura, la sintassi e i principali tipi di dato, sia
primitivi che strutturati. Sarà in grado di tradurre semplici algoritmi
in codice funzionante, utilizzare costrutti di controllo (if, for,
while), creare e gestire strutture dati come liste, matrici e data
frame, leggere e scrivere file e rappresentare graficamente i dati.
Lo
studente svilupperà inoltre la capacità di installare e utilizzare
pacchetti esterni, applicare i principi della programmazione per
risolvere problemi di base e selezionare l’ambiente di sviluppo più
adatto al tipo di attività.
Al termine del percorso formativo sarà in
grado di lavorare in modo autonomo nella scrittura, esecuzione e
verifica di script elementari, comprendendo la logica che guida la
progettazione e l’implementazione degli algoritmi.
Prerequisiti richiesti
Contenuti del corso
Parte I - Introduzione alla programmazione.
Definizione di algoritmo e di linguaggio di programmazione.
Descrizione dei traduttori e distinzione tra linguaggi compilati e interpretati.
Concetti
di base della programmazione: variabili, assegnamento, tipi di dato e
tipi di operatori (aritmetici, relazionali e booleani).
Introduzione ai costrutti fondamentali della programmazione (sequenza, selezione e iterazione).
I diagrammi di flusso e la Notazione Lineare Strutturata.
Esercitazioni su algoritmi e diagrammi di flusso.
Quiz di verifica.
Parte II - Introduzione al linguaggio R.
Istallazione e introduzione a R e all'ambiente di sviluppo Rstudio.
Basi
del linguaggio: commenti, assegnazione di valori a variabili, valori
speciali, tipi di dato primitivi e avanzati, controllo e conversione del
tipo di dato.
Sintassi degli operatori aritmetici, relazionali e booleani.
Sintassi dei costrutti fondamentali (if-else, while, for) e implementazione di semplici diagrammi di flusso.
Definizione di funzione e relative esercitazioni.
Introduzione
del tipo di dato vettoriale (funzione di concatenazione, funzione
seq(), rep() e altre funzioni di utilità sui vettori).
Introduzione al tipo di dato matriciale e relative funzioni (estrazione di elementi, filtri, gestione di righe e colonne).
Esercitazioni su vettori e matrici.
Introduziona al tipo di dato lista (la funzione list() e le funzioni di utilità, estrazioni di elementi).
Introduziona
al tipo di dato dataframe (funzioni di utilità, estrazione di elementi,
aggiunta/rimozione di righe e colonne, gestione dei valori NA).
Esercitazioni su liste e dataframes.
Lettura e scrittura files.
Grafici in R (line plots, bar plots, pie charts e parametri estetici).
Istallazione di librerie in R da CRAN e Bioconductor.
Quiz di verifica.
Parte III - Introduzione a Python
Istallazione e introduzione a Python e all'ambiente di sviluppo Spyder.
Basi
del linguaggio: commenti, assegnazione di valori a variabili, valori
speciali, tipi di dato primitivi e avanzati, controllo e conversione del
tipo di dato, stringhe e relative operazioni.
Sintassi degli operatori aritmetici, relazionali e booleani.
Sintassi dei costrutti fondamentali (if-else, while, for) e implementazione di semplici diagrammi di flusso.
Definizione di funzioni e docstrings e relative esercitazioni.
La standard library di Python.
Introduziona al tipo di dato lista (creazione di una lista, estrazione di elementi e metodi relativi).
Tuple e set (definizione e metodi relativi).
Dizionari (definizione e metodi relativi).
Istallazione di moduli esterni tramite pip e installazione di pandas e numpy.
Introduzione alle matrici di numpy e relative operazioni. Esercitazioni su matrici.
Introduzione alle series di pandas e relative operazioni.
Introduzione ai dataframes di pandas e relative operazioni.
Esercitazioni su series e dataframes.
Grafici in Python con matplotlib (line plots, bar plots e parametri estetici).
Quiz di verifica.
Testi di riferimento
Il docente fornirà nella pagina Studium del corso il materiale didattico
sottoforma di:
- Slides discusse a lezione
- Scripts R e Python contenenti il codice delle esercitazioni svolte a
lezione
Tale materiale rappresenta il principale supporto per lo studio alla
materia, tuttavia i seguenti testi di approdondimento sono consigliati:
R in Action: data analysis and graphics with R - Robert I. KabacoffPython
for beginners: an essential guide to learn with basic exercises: Python
programming crash course for data analysis and for beginners - Conley
Walsh
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Prova scritta con domande a risposta multipla e un esercizio.
Colloquio orale facoltativo.
Informazioni per studenti con disabilità e/o DSA
A
garanzia di pari opportunità e nel rispetto delle leggi vigenti, gli
studenti interessati possono chiedere un colloquio personale in modo da
programmare eventuali misure compensative e/o dispensative, in base agli
obiettivi didattici ed alle specifiche esigenze. E' possibile
rivolgersi anche al referente CInAP (Centro per l’integrazione Attiva e
Partecipata - Servizi per le Disabilità e/o i DSA) del Dipartimento di
Scienze Biomediche e Biotecnologiche.
Esempi di domande e/o esercizi frequenti
Quali dei seguenti tipi di dato può contenere elementi di tipo diverso?
a. Vettore
b. Matrice
c. Lista
d. Nessuna delle precedenti
Quale è il modo corretto di assegnare una matrice alla variabile my_matrix in R?
a. my_matrix = array([ [1,2], [5,3], [7,8] ])
b. my_matrix = [ [1,2], [5,3], [7,8] ]
c. my_matrix = matrix(c(1,2, 5,3, 7,8), nrow=3, ncol=2)
d. my_matrix = m(c(1,2, 5,3, 7,8), nrow=3, ncol=2)
Quale è il simbolo di assegnazione in R?
a. =
b. <-
c. <=
d. ==
In
RStudio, quale finestra viene utilizzata per visualizzare il contenuto
delle variabili e gli oggetti caricati nell’ambiente di lavoro?
a. Console
b. Plots
c. Editor per gli script
d. Environment
ESERCIZIO
Utilizzare
un linguaggio a scelta tra R e Python per creare una funzione che, dati
due numeri in input, restituisce il massimo dei due.
Indicare un esempio di chiamata della funzione con numeri in input scelti dallo studente.
English version