ID:
500655
Durata (ore):
90
CFU:
9
SSD:
Sistemi di elaborazione delle informazioni
Anno:
2026
Dati Generali
Periodo di attività
Annualità Singola (28/09/2026 - 11/06/2027)
Syllabus
Obiettivi Formativi
L'insegnamento ha l'obiettivo di fornire agli studenti le conoscenze fondamentali dell'informatica e le competenze di base necessarie per affrontare problemi mediante un approccio algoritmico e computazionale.
L'insegnamento si articola in due parti complementari. La prima introduce i principi fondamentali dei sistemi informatici, con particolare attenzione alla rappresentazione dell'informazione, all'architettura dei calcolatori, ai sistemi operativi, agli algoritmi e alle strutture dati, fornendo inoltre una panoramica su alcuni dei principali ambiti dell'informatica moderna. La seconda parte è dedicata ai fondamenti della programmazione strutturata e alla loro applicazione mediante il linguaggio C.
Al termine dell'insegnamento, lo studente sarà in grado di:
a) comprendere i principi fondamentali della rappresentazione digitale dell'informazione e del funzionamento di un calcolatore;
b) descrivere i principali componenti di un sistema informatico e il ruolo del sistema operativo;
c) comprendere i principi di base dei sistemi Unix/Linux e utilizzare i relativi concetti fondamentali;
d) comprendere il concetto di algoritmo e rappresentare semplici algoritmi mediante pseudocodice o altre rappresentazioni appropriate;
e) riconoscere e utilizzare strutture dati e algoritmi elementari;
f) comprendere, a livello introduttivo, i principi fondamentali delle reti di calcolatori, delle basi di dati, della sicurezza informatica e dell'intelligenza artificiale;
g) progettare semplici soluzioni algoritmiche a partire dalla specifica di un problema;
h) implementare, compilare, eseguire e verificare programmi in linguaggio C;
i) utilizzare correttamente tipi di dato, operatori, strutture di controllo, cicli e funzioni;
l) utilizzare stringhe, puntatori, allocazione dinamica della memoria, strutture dati elementari e file;
m) implementare e analizzare semplici algoritmi, inclusi algoritmi elementari di ordinamento;
n) sviluppare programmi strutturati e modulari di complessità coerente con un insegnamento introduttivo.
Le conoscenze e le competenze acquisite costituiscono inoltre una base per l'apprendimento autonomo di ulteriori linguaggi di programmazione e strumenti informatici e per l'utilizzo consapevole dell'informatica nei successivi insegnamenti del percorso di studi.
L'insegnamento si articola in due parti complementari. La prima introduce i principi fondamentali dei sistemi informatici, con particolare attenzione alla rappresentazione dell'informazione, all'architettura dei calcolatori, ai sistemi operativi, agli algoritmi e alle strutture dati, fornendo inoltre una panoramica su alcuni dei principali ambiti dell'informatica moderna. La seconda parte è dedicata ai fondamenti della programmazione strutturata e alla loro applicazione mediante il linguaggio C.
Al termine dell'insegnamento, lo studente sarà in grado di:
a) comprendere i principi fondamentali della rappresentazione digitale dell'informazione e del funzionamento di un calcolatore;
b) descrivere i principali componenti di un sistema informatico e il ruolo del sistema operativo;
c) comprendere i principi di base dei sistemi Unix/Linux e utilizzare i relativi concetti fondamentali;
d) comprendere il concetto di algoritmo e rappresentare semplici algoritmi mediante pseudocodice o altre rappresentazioni appropriate;
e) riconoscere e utilizzare strutture dati e algoritmi elementari;
f) comprendere, a livello introduttivo, i principi fondamentali delle reti di calcolatori, delle basi di dati, della sicurezza informatica e dell'intelligenza artificiale;
g) progettare semplici soluzioni algoritmiche a partire dalla specifica di un problema;
h) implementare, compilare, eseguire e verificare programmi in linguaggio C;
i) utilizzare correttamente tipi di dato, operatori, strutture di controllo, cicli e funzioni;
l) utilizzare stringhe, puntatori, allocazione dinamica della memoria, strutture dati elementari e file;
m) implementare e analizzare semplici algoritmi, inclusi algoritmi elementari di ordinamento;
n) sviluppare programmi strutturati e modulari di complessità coerente con un insegnamento introduttivo.
Le conoscenze e le competenze acquisite costituiscono inoltre una base per l'apprendimento autonomo di ulteriori linguaggi di programmazione e strumenti informatici e per l'utilizzo consapevole dell'informatica nei successivi insegnamenti del percorso di studi.
Prerequisiti
L'insegnamento non richiede precedenti conoscenze di programmazione.
Sono richieste conoscenze matematiche di base, corrispondenti a quelle normalmente acquisite nella scuola secondaria superiore, e una familiarità di base con l'utilizzo del computer.
Sono richieste conoscenze matematiche di base, corrispondenti a quelle normalmente acquisite nella scuola secondaria superiore, e una familiarità di base con l'utilizzo del computer.
Metodi didattici
L'insegnamento prevede lezioni frontali dedicate alla presentazione dei concetti teorici, affiancate da esempi ed esercizi finalizzati alla loro applicazione.
La parte dedicata alla programmazione prevede un'importante componente pratica, nella quale gli studenti applicano progressivamente i concetti introdotti durante le lezioni attraverso la progettazione, l'implementazione e la verifica di programmi in linguaggio C.
Le attività didattiche sono integrate da esercitazioni e attività di tutorato dedicate alla programmazione, finalizzate al consolidamento delle capacità di problem solving e delle competenze operative nello sviluppo di programmi.
La parte dedicata alla programmazione prevede un'importante componente pratica, nella quale gli studenti applicano progressivamente i concetti introdotti durante le lezioni attraverso la progettazione, l'implementazione e la verifica di programmi in linguaggio C.
Le attività didattiche sono integrate da esercitazioni e attività di tutorato dedicate alla programmazione, finalizzate al consolidamento delle capacità di problem solving e delle competenze operative nello sviluppo di programmi.
Verifica Apprendimento
La verifica dell'apprendimento è articolata in due prove, corrispondenti alle due parti in cui è didatticamente diviso l'insegnamento.
La verifica relativa alla parte di Sistemi Informatici consiste in un questionario composto da domande a scelta multipla. La prova è finalizzata a verificare la conoscenza e la comprensione dei concetti fondamentali trattati durante la prima parte dell'insegnamento, tra cui rappresentazione dell'informazione, architettura dei calcolatori, sistemi operativi, algoritmi e strutture dati, nonché gli argomenti introduttivi relativi agli altri ambiti dell'informatica presentati durante il corso.
La verifica relativa alla parte di Programmazione in C consiste in una prova pratica, nella quale è richiesto lo sviluppo di un programma in linguaggio C. La prova è finalizzata a valutare la capacità dello studente di analizzare un problema, elaborare una soluzione algoritmica e implementarla correttamente utilizzando i costrutti e gli strumenti di programmazione presentati durante il corso.
Il superamento dell'esame richiede un esito positivo in entrambe le prove. Le due prove concorrono in misura sostanzialmente equivalente alla determinazione del voto finale.
Nella sessione di gennaio-febbraio è prevista una prova intermedia relativa alla parte di Sistemi Informatici. L'esito della prova intermedia concorre alla valutazione complessiva dell'esame.
La verifica relativa alla parte di Sistemi Informatici consiste in un questionario composto da domande a scelta multipla. La prova è finalizzata a verificare la conoscenza e la comprensione dei concetti fondamentali trattati durante la prima parte dell'insegnamento, tra cui rappresentazione dell'informazione, architettura dei calcolatori, sistemi operativi, algoritmi e strutture dati, nonché gli argomenti introduttivi relativi agli altri ambiti dell'informatica presentati durante il corso.
La verifica relativa alla parte di Programmazione in C consiste in una prova pratica, nella quale è richiesto lo sviluppo di un programma in linguaggio C. La prova è finalizzata a valutare la capacità dello studente di analizzare un problema, elaborare una soluzione algoritmica e implementarla correttamente utilizzando i costrutti e gli strumenti di programmazione presentati durante il corso.
Il superamento dell'esame richiede un esito positivo in entrambe le prove. Le due prove concorrono in misura sostanzialmente equivalente alla determinazione del voto finale.
Nella sessione di gennaio-febbraio è prevista una prova intermedia relativa alla parte di Sistemi Informatici. L'esito della prova intermedia concorre alla valutazione complessiva dell'esame.
Testi
Il principale materiale di riferimento è costituito dalle slide e dal materiale reso disponibile dal docente.
Per la parte relativa ai sistemi informatici:
J. Glenn Brookshear, Dennis Brylow, Informatica – Una panoramica generale, tredicesima edizione, Pearson, 2020.
ISBN edizione cartacea: 9788891906212.
Per la parte relativa alla programmazione in C:
Brian W. Kernighan, Dennis M. Ritchie, Il linguaggio C – Principi di programmazione e manuale di riferimento, seconda edizione, Pearson, 2018.
ISBN edizione cartacea: 9788891908230.
Eventuale ulteriore materiale integrativo ed esercizi saranno resi disponibili attraverso i canali istituzionali dell'insegnamento.
Per la parte relativa ai sistemi informatici:
J. Glenn Brookshear, Dennis Brylow, Informatica – Una panoramica generale, tredicesima edizione, Pearson, 2020.
ISBN edizione cartacea: 9788891906212.
Per la parte relativa alla programmazione in C:
Brian W. Kernighan, Dennis M. Ritchie, Il linguaggio C – Principi di programmazione e manuale di riferimento, seconda edizione, Pearson, 2018.
ISBN edizione cartacea: 9788891908230.
Eventuale ulteriore materiale integrativo ed esercizi saranno resi disponibili attraverso i canali istituzionali dell'insegnamento.
Contenuti
L'insegnamento è organizzato didatticamente in due parti.
Parte 1 – Sistemi informatici:
a) Introduzione all'informatica e al pensiero computazionale.
b) Rappresentazione digitale dell'informazione.
c) Architettura dei calcolatori e principi di funzionamento di un elaboratore.
d) Sistemi operativi.
e) Introduzione a Linux e alla filosofia Unix.
f) Algoritmi: definizione, rappresentazione e principi di base.
g) Strutture dati e loro utilizzo.
h) Cenni introduttivi a reti di calcolatori;
i) Cenni introduttivi a basi di dati;
l) Cenni introduttivi a sicurezza informatica;
m) Cenni introduttivi a intelligenza artificiale.
Parte 2 – Programmazione in C
a) Introduzione alla programmazione e al linguaggio C.
b) Struttura di un programma C e processo di compilazione ed esecuzione.
c) Variabili e tipi di dato fondamentali.
d) Operatori aritmetici, logici e relazionali.
e) Input e output.
f) Strutture di selezione: if, else e switch.
g) Strutture iterative: for, while e do-while.
h) Funzioni e modularizzazione dei programmi.
i) Array e stringhe.
l) Puntatori.
m) Gestione dinamica della memoria e utilizzo di malloc.
n) Algoritmi e strutture dati elementari.
o) Lettura e scrittura di file.
Parte 1 – Sistemi informatici:
a) Introduzione all'informatica e al pensiero computazionale.
b) Rappresentazione digitale dell'informazione.
c) Architettura dei calcolatori e principi di funzionamento di un elaboratore.
d) Sistemi operativi.
e) Introduzione a Linux e alla filosofia Unix.
f) Algoritmi: definizione, rappresentazione e principi di base.
g) Strutture dati e loro utilizzo.
h) Cenni introduttivi a reti di calcolatori;
i) Cenni introduttivi a basi di dati;
l) Cenni introduttivi a sicurezza informatica;
m) Cenni introduttivi a intelligenza artificiale.
Parte 2 – Programmazione in C
a) Introduzione alla programmazione e al linguaggio C.
b) Struttura di un programma C e processo di compilazione ed esecuzione.
c) Variabili e tipi di dato fondamentali.
d) Operatori aritmetici, logici e relazionali.
e) Input e output.
f) Strutture di selezione: if, else e switch.
g) Strutture iterative: for, while e do-while.
h) Funzioni e modularizzazione dei programmi.
i) Array e stringhe.
l) Puntatori.
m) Gestione dinamica della memoria e utilizzo di malloc.
n) Algoritmi e strutture dati elementari.
o) Lettura e scrittura di file.
Lingua Insegnamento
Italiano
Altre informazioni
Il ricevimento studenti si svolge in presenza o online, su appuntamento da concordare via e-mail con il docente all’indirizzo andrea.pozzi@unipv.it.
Corsi
Corsi
BIOINGEGNERIA
Laurea
3 anni
No Results Found