Corso IN110 Algoritmi e Strutture Dati

Le lezioni

Diario delle lezioni dell'anno accademico 2026/2027

L'attività didattica del corso IN110 Algoritmi e Strutture Dati per l'anno accademico 2026/2027 inizierà lunedì 21 settembre 2026; la prima lezione del corso si terrà in aula M1 dalle ore 14:00 alle ore 16:00.

Le lezioni del corso IN110 Algoritmi e Strutture Dati si tengono nel primo semestre (settembre 2026 - gennaio 2027) con il seguente orario:

Nella prime settimana del corso si terranno lezioni a cura del prof. Marco Liverani in aula M1 anche negli orari del tutorato e delle esercitazioni. Sarà comunicato successivamente l'avvio effettivo delle attività di tutorato e delle esercitazioni.

Di seguito si riporta una sintesi degli argomenti trattati nel corso delle lezioni in aula e delle esercitazioni di laboratorio.

Lezione n. 1 - lunedì 21 settembre 2026
  • Presentazione del corso: argomenti che tratteremo, orario delle lezioni, orario delle esercitazioni, orario di ricevimento, modalità di esame (scarica il documento: “Presentazione del corso di Algoritmi e Strutture Dati”Scarica il documento in formato PDF).
  • Introduzione alla progettazione di algoritmi: un approccio intuitivo mediante alcuni esempi elementari.
Lezione n. 2 - martedì 22 settembre 2026
  • Esecutore e algoritmi: problema e istanza di un problema, caratteristiche dell'esecutore, compiti del progettista degli algoritmi, capacità del calcolatore/esecutore; algoritmi; esempi di pseudo-codifica di algoritmi per la soluzione di problemi elementari (primi k multipli di n, sommatoria dei primi n naturali, fattoriale di un numero naturale, verifica dell'ordinamento crescente di una sequenza di numeri). Linguaggi imperativi, istruzioni fondamentali di in linguaggio imperativo.
Lezione n. 3 - giovedì 24 settembre 2026
  • Algoritmi, diagrammi di flusso, programmazione strutturata: linguaggi imperativi, istruzioni fondamentali di un linguaggio imperativo, rappresentazione di algoritmi mediante diagrammi di flusso, strutture algoritmiche di tipo sequenziale, iterativa, condizionale; regole della programmazione strutturata, cenni sul Teorema Fondamentale della Programmazione Strutturata di Giuseppe Jacopini e Corrado Böhm; esempi: ricerca del massimo fra 2, 3 e n numeri, verifica dell'ordinamento di una sequenza, verifica della divisibilità di un numero naturale per un altro, calcolo del quoziente e del resto nella divisione di due numeri naturali (scarica il documento: “Algoritmi e diagrammi di flusso”Scarica il documento in formato PDF).
Lezione n. 4 - venerdì 25 settembre 2026
  • Algoritmi, diagrammi di flusso, programmazione strutturata: esercizi per la pseudo-codifica di un algoritmo e la rappresentazione di un diagramma di flusso per la risoluzione dei seguenti problemi: verifica della primalità di un numero naturale, minimo comune multiplo tra due numeri naturali; un algoritmo sbagliato per il calcolo della radice quadrata di un numero naturale.
  • Cenni sulla calcolabilità: alcuni problemi non risolubili per via algoritmica: esempi basati sulla congettura di Goldbach e la congettura di Collatz / Ulam.
Lezione n. 5 - martedì 29 settembre 2026
  • La Macchina di Turing: definizione della MdT come modello di calcolo astratto; esempio di MdT per il calcolo del successore di un numero naturale espresso in base 2; funzioni, macchine di Turing, algoritmi, calcolabilità delle funzioni elementari, composizione di funzioni e ricorsione come operazioni che preservano la calcolabilità; codifica di una macchina di Turing e del suo input come numeri naturali.
  • Calcolabilità e modelli di calcolo: problemi calcolabili e non calcolabili, alcuni esempi; modelli di calcolo astratti: la macchina di Turing.
  • Calcolabilità e modelli di calcolo: il modello di Von Neumann; cenni sul problema della fermata, cenni sulla Tesi di Church-Turing (scarica il documento: “Appunti sui modelli di calcolo”Scarica il documento in formato PDF).
Lezione n. 6 - venerdì 2 ottobre 2026
  • Linguaggi di programmazione: classificazion dei linguaggi in base al paradigma di programmazione, alcuni esempi. Linguaggi di programmazione di basso livello e di alto livello, linguaggio macchina; processo di traduzione del codice da linguaggio di programmazione di alto livello (codice sorgente) a linguaggio macchina (codice binario eseguibile), esecuzione del programma (scarica il documento: “Appunti sui linguaggi di programmazione”Scarica il documento in formato PDF).
  • Rappresentazione delle informazioni: codifica decimale e binaria di numeri interi positivi; struttura della memoria, bit, byte; rappresentazione di numeri interi “grandi”, mediante parole ottenute concatenando più byte. Rappresentazione di numeri interi relativi, rappresentazione di numeri razionali (floating point), rappresentazione di caratteri alfanumerici (scarica il documento: “Appunti sulla rappresentazione delle informazioni in memoria”Scarica il documento in formato PDF).

Università degli Studi Roma Tre - Dipartimento di Matematica e Fisica - Corso di laurea in Matematica - Corso IN110 Algoritmi e Strutture Dati

Author: Marco Liverani - Last modified: Friday October 02, 2026 - URI: http://193.204.165.209/users/liverani/IN110/lezioni.shtml