PRINCIPI DI BIOINFORMATICA 3Modulo PRINCIPI DI INFORMATICA
Anno accademico 2025/2026 - Docente: LORENZO FEDERICO SIGNORINIRisultati 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
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:
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
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.