Ingegneria Biomedica L-9
Fondamenti di informatica
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| ING-INF/05 | 9 | Ala Arman |
Obiettivi
L’insegnamento si propone di far acquisire agli studenti le conoscenze sulle nozioni di base dell’informatica ed in particolare i principi, le tecniche e gli strumenti fondamentali relativi al trattamento automatico dell’informazione. Più specificatamente, l’insegnamento si propone di fornire conoscenze e capacità di comprensione in tre ambiti importanti dell’informatica di base:
a) architettura dei calcolatori elettronici;
b) rappresentazione digitale dell’informazione;
c) risoluzione di problemi mediante un approccio algoritmico.
Risorse
Il docente consiglia l’integrazione del materiale fornito (videolezioni, slides, esercitazioni) con i seguenti testi, a cui il docente può fare riferimento durante le lezioni:
- C. Horstmann, R. D. Necaise, Concetti di Informatica e fondamenti di Python. (Maggioli Editore)
- M.G. Schneider, J.L. Gersting, Informatica, Algoritmi, architetture, linguaggi, applicazioni (Maggioli Editore)
Risultati di apprendimento attesi
· Conoscenza e comprensione dei paradigmi della programmazione iterativa e ricorsiva
· Conoscenza e comprensione dei metodi per la programmazione procedurale e a oggetti
· Conoscenza e comprensione delle strutture fondamentali per la rappresentazione dei dati e per i modelli relazionali.
Conoscenza e capacità di comprensione
- Fondamenti dell’informatica: architettura dei calcolatori, rappresentazione digitale e basi dei sistemi operativi.
- Paradigmi di programmazione: approcci imperativo, iterativo, ricorsivo, procedurale e a oggetti.
- Strutture dati: conoscenza e comprensione di liste, tuple, insiemi, dizionari, matrici, alberi e grafi.
- Tecniche e strumenti: gestione dei file, basi dell’analisi dei dati e uso di librerie di visualizzazione.
Capacità di applicare conoscenza e comprensione
- Progettare e implementare algoritmi utilizzando strutture di controllo iterative e ricorsive.
- Sviluppare programmi in Python impiegando funzioni, oggetti e strutture dati adeguate al problema.
- Manipolare e organizzare dati tramite file, collezioni e strutture complesse come alberi e grafi.
- Applicare strumenti di analisi e visualizzazione per rappresentare dati e risultati in modo efficace.
Abilità di giudizio
- Valutare in modo autonomo la qualità e l’adeguatezza delle soluzioni proposte.
- Scegliere metodi e strategie appropriate per affrontare problemi diversi.
Abilità di comunicare
- Esprimere in modo chiaro e strutturato idee, procedure e risultati.
- Illustrare il funzionamento di programmi e processi spiegando flussi di controllo, input/output e gestione della memoria.
Capacità di apprendimento
Gli studenti svilupperanno la capacità di:
- aggiornarsi sugli sviluppi teorici e applicativi nel campo dell’informatica, della programmazione e delle tecnologie digitali, anche attraverso lo studio autonomo di materiali avanzati.
- affrontare nuove problematiche progettuali di livello introduttivo, analizzandole in modo sistematico e applicando metodi, modelli e strumenti appresi durante il corso.
PROGRAMMA DEL CORSO
- Fondamenti dell’informatica: architettura dei calcolatori, sistemi operativi, rappresentazione digitale dell’informazione e principi del trattamento automatico dei dati.
- Programmazione in Python: variabili, tipi di dato, strutture di controllo, funzioni, ricorsione, gestione della memoria e programmazione a oggetti.
- Strutture dati: liste, tuple, insiemi, dizionari, matrici, alberi, grafi e relativi algoritmi di visita e manipolazione.
- Attività di laboratorio finalizzata ad offrire agli studenti la possibilità di comprendere e mettere in pratica lo sviluppo di programmi funzionanti.
Modalità di accertamento dei risultati di apprendimento acquisiti dallo studente
L’accertamento dei risultati di apprendimento avviene attraverso una combinazione di metodi:
- Discussioni svolte durante le lezioni interattive, utili a verificare la capacità degli studenti di argomentare, confrontarsi e applicare i concetti affrontati.
- Valutazione dei risultati dell’esame finale, che misura il raggiungimento complessivo dei risultati di apprendimento attesi, sia in termini di conoscenza teorica che di capacità applicative.
Modalità di esame
Per gli studenti che intendono sostenere l’esame prima del 13 febbraio 2026:
L’esame finale si svolge in forma scritta e consiste in un test a risposta multipla con 31 domande, così da garantire la possibilità di conseguire la lode. I quesiti sono formulati per valutare il livello di raggiungimento dei risultati di apprendimento attesi. Il voto finale tiene conto del voto ottenuto dallo studente attraverso la partecipazione alla didattica interattiva e del voto ottenuto nell’esame finale ed è determinato, quindi, dalla somma delle due valutazioni. Il voto finale è espresso in trentesimi.
Per gli studenti che intendono sostenere l’esame successivamente al 13 febbraio 2026, la prova d’esame comprenderà anche un progetto di programmazione. La descrizione del progetto è disponibile in Home del corso → Elaborati.
Propedeuticità
Prerequisiti
- Conoscenze di base di matematica delle scuole superiori (algebra elementare, logica, calcolo numerico semplice).
- Familiarità con l’uso del computer e dei principali strumenti informatici (file, cartelle, applicazioni).
- Capacità di comprendere testi tecnici e seguire procedure passo-passo.
- Non è richiesta alcuna conoscenza pregressa di programmazione.
Modalità di erogazione del corso
Attività didattiche previste
Attività didattica erogativa
Attività didattica interattiva
Attività di autoapprendimento
- Studio individuale dei materiali didattici (slide, dispense, videoregistrazioni, tesi consigliate).
- Svolgimento delle esercitazioni fornite dal docente durante il corso.
L'articolazione tra DE e DI, per ciascuna unità didattica, sarà organizzata coerentemente con gli obiettivi formativi specifici dell’insegnamento.
Ricevimento studenti
In merito all’appuntamento, può contattarmi tramite il seguente indirizzo email: ala.arman@uniroma5.it
Lezioni
Rappresentazione e codifica delle informazioni
Rappresentazione Digitale Binaria
Sistemi di numerazione posizionale
Codifica binaria di numeri decimali
Operazioni aritmetiche tra numeri binari
Codifica ottale
Codifica esadecimale
Codifica del testo
Codifica del suono
Codifica di immagini e video
Rappresentazione in segno e modulo
Rappresentazione in complementi a uno
Rappresentazione in complementi a due
Rappresentazione per eccesso
Rappresentazione dei numeri reali
Rappresentazione in virgola mobile
Concetti introduttivi
Assiomi e propriet
Operatori logici e operatori booleani
Funzioni ed Espressioni booleane
Caratteristiche e componenti fondamentali
Ciclo del processore
Tipologie di memorie
Trasferimento dati
Evoluzioni del modello di Von Neumann
Problemi, algoritmi, ed esecutori
Automi a stati finiti
La descrizione degli algoritmi
Diagrammi di flusso
Diagrammi di flusso: i Blocchi di iterazione
Esercizi di riepilogo
Linguaggi di Programmazione
La progettazione dei programmi
Struttura dei programmi in C
Tipi di dati e operatori
Strutture di controllo in C: sequenza e selezione
Strutture di controllo in C: selezione multipla
SQL come Data Definition Language
SQL per la definizione di valori null e vincoli
SQL per la creazione di oggetti nel DB
SQL come Data Manipulation Language
Le query SQL e le clausole fondamentali
Il Join tra tabelle