FONDAMENTI DI INFORMATICA

Anno accademico 2025/2026 - Docente: ALESSANDRO DI NUOVO

Risultati di apprendimento attesi

Obiettivi formativi del corso secondo i descrittori di Dublino:

  • Conoscenza e comprensione: Lo studente acquisirà una solida base di conoscenze sull'informatica come disciplina che analizza algoritmi, principi di funzionamento e organizzazione dei calcolatori, sistemi informativi e reti di computer, nonché le basi dei linguaggi di programmazione e dei fogli di calcolo.

  • Capacità di applicare conoscenza e comprensione: Lo studente sarà capace di comprendere la struttura e la logica di funzionamento dei moderni sistemi informativi, le metodologie statistiche, al calcolo delle probabilità, di progettare algoritmi per risolvere problemi di media complessità e di implementare questi algoritmi in un linguaggio di programmazione e/o con fogli di calcolo elettronico. 

  • Autonomia di giudizio: Lo studente svilupperà la capacità di valutare l'idoneità degli strumenti informatici nell'ambito professionale e di scegliere strutture dati e metodologie adeguate per risolvere problemi di elaborazione dati.

  • Abilità comunicative: Lo studente saprà interfacciarsi con esperti informatici riguardo l'organizzazione di sistemi informativi moderni e sarà in grado di descrivere dettagliatamente le soluzioni adottate per problemi di elaborazione dati.

  • Capacità di apprendimento: Lo studente avrà le competenze per apprendere metodologie avanzate e nuovi linguaggi di programmazione, applicando con flessibilità i concetti di base acquisiti nel corso.

In linea con gli obiettivi dell’Agenda 2030 per lo sviluppo sostenibile delle Nazioni Unite (https://www.un.org/sustainabledevelopment/), il corso promuove competenze digitali e analitiche che contribuiscono all’innovazione responsabile, all’inclusione digitale, alla qualità dell’istruzione (Obiettivo 4), alla crescita economica sostenibile (Obiettivo 8) e alla costruzione di infrastrutture resilienti e sostenibili (Obiettivo 9).

Modalità di svolgimento dell'insegnamento

Lezioni frontali alternate a esercitazioni al calcolatore da parte del docente. Il corso prevede anche esercitazioni pratiche svolte dagli studenti.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al ne di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Nessuno 

Frequenza lezioni

La frequenza è obbligatoria.

Contenuti del corso

Competenze Minime

  • Rappresentazione dell'informazione: Sistemi di numerazione e algoritmi di conversione. Aritmetica intera e in virgola mobile.

  • Struttura di un elaboratore: Architettura di base di un calcolatore, memoria centrale, unità centrale di elaborazione e funzionamento elementare.

  • Sistema Operativo: Traduzione ed esecuzione di programmi. Ambiente di sviluppo. Differenze tra compilatori e interpreti. Funzioni principali di un sistema operativo.

  • Algoritmi e Programmi: Concetti fondamentali di elaborazione automatica dell'informazione. Algoritmi e loro rappresentazione. Linguaggi di programmazione. Progettazione e sviluppo di programmi.

  • Reti di Calcolatori e Internet: Concetti di base delle reti di calcolatori, reti locali (LAN), reti geografiche (WAN), Internet e principali applicazioni di rete.

  • Programmazione in linguaggi moderni: Sintassi e semantica di un linguaggio di programmazione. Strutture di controllo: assegnazione, selezione, iterazione. Tipi di dato semplici (numerici, caratteri) e strutturati (array, stringhe, strutture). Concetto di riferimento/puntatore. Funzioni e modularità. Ambito degli identificatori. Variabili locali, globali e statiche. Tecniche di passaggio dei parametri. Ricorsione. Gestione dei file: file di testo e file binari. Operazioni di accesso ai file.

  • Algoritmi di ricerca: Ricerca sequenziale e binaria.

  • Allocazione dinamica della memoria

  • Gestione di documenti di testo

  • Progettazione e gestione di fogli di calcolo

  • Introduzione alla progettazione e gestione di basi di dati

Testi di riferimento

Materiale didattico


- Slide del docente
- Dispense del docente
- Libri di testo suggeriti per approfondimenti e migliore comprensione


Possibili libri di testo sulla parte teorica:
- Informatica arte e mestiere ( S. Ceri, D. Mandrioli, L. Sbattella - McGrawHill )
- Introduzione ai sistemi informatici ( D. Sciuto, G. Buonanno, L. Mari, 4^ Edizione - McGrawHill )

Fondamenti di informatica per ingegneri civili, ambientali e gestionali (Massimiliano Salfi, McGraw-Hill )

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione all’informaticadispense docente; testi consigliati
2La rappresentazione delle informazionidispense docente; testi consigliati
3Algebra Booleanadispense docente; testi consigliati
4Architettura dei calcolatoridispense docente; testi consigliati
5Sistema Operativo e applicativi softwaredispense docente; testi consigliati
6Reti di calcolatori ed Internetdispense docente; testi consigliati
7Algoritmi e strutture datidispense docente; testi consigliati
8I fogli di calcolo per metodologie statistiche e calcolo delle probabilità.dispense docente; testi consigliati
9Programmazione al calcolatore dispense docente; testi consigliati

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame di profitto include due parti:

  • Prova scritta o pratica al calcolatore: domande a risposta multipla e aperta; fogli di calcolo e base di dati, implementazione di un programma in C.
  • Prova orale: verifica della prova pratica e della conoscenza dei contenuti del corso  

La verifica dell'apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.

Esempi di domande e/o esercizi frequenti

La prova  consiste nella realizzazione di un programma in grado di gestire dati (inseriti dagli utenti o gia' memorizzati su file). La prova potrà includere inoltre esercizi riguardanti: La creazione di una base di dati e l'esecuzione di semplici query; Progettazione e gestione di fogli di calcolo.

Di seguito una lista (non esaustiva) di possibili domande teoriche - scritto a risposta multipla o aperta.

  • Convertire da binario a decimale il numero 101101
  • Convertire da decimale a binario il numero 58
  • Convertire da ottale a decimale il numero 375
  • Convertire da esadecimale a decimale il numero 8FD4
  • Cosa sono il campionamento e la quantizzazione?
  • Quali sono vantaggi e svantaggi delle rappresentazioni digitali e analogiche?
  • Quali sono i componenti di un diagramma di flusso?
  • Qual è la differenza tra linguaggio macchina, linguaggio assembly e linguaggio di programmazione?
  • Quali sono le differenze tra traduttori e interpreti, e i relativi vantaggi e svantaggi?
  • Cos'è una macchina di Turing e quale risultato fondamentale dimostra?
  • Quali sono gli operatori più comuni nell'algebra di Boole?
  • Calcolare la tabella di verità dell'espressione (a AND b) OR (NOT c)
  • Quali sono i bus nell'architettura di Von Neumann?
  • In cosa consiste il ciclo della CPU?
  • Quali sono i registri principali di un processore?
  • Come funziona un'architettura a pipeline?
  • Quali sono le caratteristiche delle memorie?
  • Cosa si intende per gerarchia di memoria?
  • Quali sono i principi di località e cosa dimostrano?
  • Cos'è una configurazione RAID e quali sono le più note?
  • Quali sono i compiti di un sistema operativo?
  • In quali stati può trovarsi un processo?
  • Come si gestisce il multitasking?
  • Cos'è lo swapping e quali sono i suoi vantaggi e svantaggi?
  • Cos'è la paginazione?
  • A cosa servono i driver e quale problema risolvono?
  • Come possiamo classificare le reti di calcolatori?
  • Cosa si intende per CSMA/CD?
  • Qual è la differenza tra un hub e uno switch?
  • Qual è la differenza tra uno switch e un router?
  • Di cosa si occupa il protocollo IP e quali vantaggi e svantaggi ha?
  • Che struttura hanno gli indirizzi IP?
  • Di cosa si occupa il protocollo TCP?
  • Che cos'è il DNS e quale problema risolve?
  • Qual è la differenza tra crittografia simmetrica e asimmetrica?