Home Freccia destra Ingegneria Biomedica L-9 Freccia destra Fondamenti di informatica

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:

  1. Discussioni svolte durante le lezioni interattive, utili a verificare la capacità degli studenti di argomentare, confrontarsi e applicare i concetti affrontati.
  2. 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à

Nessuna propedeuticità obbligatoria.

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

Il corso prevede una combinazione di attività didattiche erogative e interattive, così da integrare lo studio individuale con momenti di confronto e chiarimento. Le lezioni videoregistrate permettono un apprendimento autonomo e flessibile, mentre le sessioni interattive online favoriscono la discussione e l’approfondimento dei contenuti.

Attività didattiche previste

Le attività di didattica, suddivise tra didattica erogativa (DE) e didattica interattiva (DI), saranno costituite da 7 ore per CFU e ripartite secondo una struttura di almeno 2,5 ore di DE (tenuta in considerazione la necessità di riascolto) e di 2 ore di DI sincrona per ciascun CFU.

Attività didattica erogativa

45 lezioni frontali videoregistrate, della durata di circa 30 minuti ciascuna (tenuta in considerazione la necessità di riascolto) sempre disponibili in piattaforma.

Attività didattica interattiva

9 ore di lezioni online interattive in diretta

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