![]() |
Informatica, terzo canale (cognomi da Pb* a Z*),
|
Obiettivi | Programma | Materiale didattico |
Orario delle lezioni | Ricevimento studenti | Modalità d'esame |
Diario delle lezioni |
Per commenti e segnalazioni,
contatta il docente all'indirizzo
paoloQUIUNPUNTOfranciosaQUIUNACHIOCCIOLAuniroma1QUIUNPUNTOit
Vengono presentati alcuni algoritmi fondamentali per problemi di ordinamento, ricerca e selezione, alcuni problemi numerici, evidenziandone le caratteristiche di efficienza attraverso l'analisi di complessità asintotica.
Vengono descritti i principali metodi di codifica dell'informazione.
Alla fine del corso lo studente sarà in grado di:
Componenti di un sistema di elaborazione: hardware, software, principali unità periferiche. Interazione con un sistema operativo basato su finestre. Il sistema operativo: funzioni principali, gestione dei processi, gestione della memoria, file system. Concetto di cartella, documento, applicazione/programma.
Rappresentazione dell'informazione: codifica di informazioni numeriche - sistemi di numerazione posizionali, codifica binaria, ottale, esadecimale, conversioni di base. Rappresentazione di numeri interi negativi. Rappresentazione in virgola mobile. Codifica di caratteri.
Concetto di algoritmo. Esempi di algoritmi in linguaggio naturale. Generalità sui linguaggi di programmazione, compilatori.
Programmazione in linguaggio Python: uso dell'interprete interattivo, ambienti di programmazione, preparazione di script in linguaggio Python. Costrutti essenziali del linguaggio: variabili, espressioni. Assegnazioni, metodi di input/output, istruzioni di selezione, ed iterazione. Sequenze, slicing di sequenze. Definizione di funzioni, parametri. Accesso a file e scrittura su file. Consultazione della documentazione Python. Principi di programmazione orientata agli oggetti.
Algoritmi fondamentali: Ricerca sequenziale, ricerca dicotomica su un vettore ordinato. Ordinamento: selection sort, merge sort, quick sort, bubble sort. Algoritmo di Euclide per la ricerca del Massimo Comun Divisore (MCD). Algoritmo per la ricerca del k-esimo elemento. Algoritmi di base su matrici.
Introduzione alla complessità computazionale: concetto di complessità di un algoritmo, notazioni asintotiche. Equazioni di ricorrenza e metodi per la loro soluzione. Complessità computazionale degli algoritmi studiati.
La votazione deriva dalla media dei voti riportati nella prova di programmazione e nella prova scritta, integrata eventualmente dall'esito del colloquio. È necessario riportare la sufficienza sia nella prova di programmazione che nella prova scritta. Il colloquio è richiesto a discrezione del docente.
È possibile sostenere le prove di teoria e di programmazione in appelli diversi. Il risultato di ciascuna delle prove viene mantenuto valido per tutto l'anno accademico (per il 2021-2022, fino all'appello di Gennaio 2023 compreso).
Se uno studente si presenta a un appello per sostenere una prova perde comunque il voto eventualmente conseguito in un appello precedente per la stessa prova, anche se decide di non consegnare l'elaborato.
Per commenti e segnalazioni,
contatta il docente all'indirizzo
paoloQUIUNPUNTOfranciosaQUIUNACHIOCCIOLAuniroma1QUIUNPUNTOit
20 Settembre 2021 | |
---|---|
Argomenti |
|
Materiale | La registrazione della lezione del 20 Settembre 2021 è disponibile a
questo link Zoom,
Passcode di accesso: #c4PS8z0 visualizzare la seconda registrazione
È proibito qualunque uso non personale del video e non è consentita la diffusione del link a persone estranee ai corsi di laurea del DSS. |
torna all'elenco delle lezioni
21 Settembre 2021 | |
---|---|
Argomenti |
|
Materiale | La registrazione della lezione del 21 Settembre 2021 è disponibile a
questo link Zoom
Passcode di accesso: V8XiS4&0
È proibito qualunque uso non personale del video e non è consentita la diffusione del link a persone estranee ai corsi di laurea del DSS. |
torna all'elenco delle lezioni
23 Settembre 2021 - lab | |
---|---|
Argomenti |
Cenni sulla struttura di un file system gerarchico: dischi logici, files, cartelle
Uso della shell Linux (o Terminale in Mac OS, o Prompt dei comandi in Windows) Navigazione nel file system: comando Uso dell'interprete Python 3 in modalità interattiva Operatori aritmetici, espressioni, variabili, assegnazioni Esempi di semplici problemi risolubili in modalità interattiva La funzione |
Materiale |
La registrazione della lezione del 23 Settembre 2021 è disponibile a
questo link Zoom Passcode di accesso: Kdk&DV33 |
torna all'elenco delle lezioni
27 Settembre 2021 | |
---|---|
Argomenti |
Script vs. modalità interattiva, uso dell'ambiente Thonny, uso del debugger Funzioni Espressioni, precedenza tra operatori, valutazione di una espressione: albero sintattico Istruzione di assegnazione, binding nome - valore Regole per la definizione di identificatori, parole riservate Funzioni di conversione Stringhe, operatori su stringhe Errori sintattici, errori semantici, eccezioni Uso di funzioni matematiche con |
Materiale |
La registrazione della lezione del 27 Settembre 2021 è disponibile a
questo link Zoom Passcode di accesso: mbKG6K^S Un tutorial per l'installazione di Python3 in ambiente Windows è disponibile su https://www.youtube.com/watch?v=ij1HTDpVTBI (a cura del prof Massimo Lauria) |
Esercizi proposti |
Verificare, utilizzando l'interprete Python 3, qual è il massimo valore Verificare, utilizzando l'interprete Python 3, qual è il massimo valore Sperimentare la differenza tra l'operatore Esprimere 8430 secondi in ore, minuti e secondi. Generalizzare il problema precedente immettendo da tastiera il numero di secondi. Calcolare quanti secondi sono 3 ore, 5 minuti e 18 secondi Generalizzare il problema precedente immettendo da tastiera il numero di ore, minuti e secondi. Trovare la lunghezza dell'ipotenusa di un triangolo rettangolo i cui cateti misurano rispettivamente 18.6 metri e 15 metri |
torna all'elenco delle lezioni
28 Settembre 2021 | |
---|---|
Argomenti |
Istruzione Espressioni boolean, le costanti Indentazione del codice Istruzione Istruzione |
Materiale |
La registrazione della lezione del 28 Settembre 2021 è disponibile a
questo link Zoom Passcode di accesso: ?ldr48Sn |
Listati ed esercizi proposti |
|
torna all'elenco delle lezioni
30 Settembre 2021 | |
---|---|
Argomenti |
Operatori logici Invocazione di metodi e uso del valore restituito Generazione di numeri pseudocasuali con Semplici programmi con l'istruzione |
Esercizi proposti | |
Materiale |
La registrazione della lezione del 30 Settembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: ya7B.+dN |
torna all'elenco delle lezioni
4 Ottobre 2021 | |
---|---|
Argomenti |
Il problema dell'ordinamento per confronti: numero minimo di confronti per ordinare n numeri Esempi di programmi con istruzioni condizionali, anche nidificate, ed espressioni booleane complesse |
Listati ed esercizi proposti |
|
Materiale |
La registrazione della lezione del 4 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: O0T=8s@B |
torna all'elenco delle lezioni
5 Ottobre 2021 | |
---|---|
Argomenti |
Chiamata di funzioni. Significato in una espressione.
Funzioni vuote, funzioni che restituiscono valori. Parametri ed argomenti. Funzioni di conversione. Definizione di funzioni con |
Listati ed esercizi proposti |
|
Materiale |
La registrazione della lezione del 5 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: V.S!x91q |
torna all'elenco delle lezioni
7 Ottobre 2021 (lab) | |
---|---|
Argomenti |
Passaggio dei parametri con nome, parametri opzionali Esercizi sulla definizione di funzioni |
Esercizi proposti | |
Materiale |
La registrazione della lezione del 7 Ottobre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: C3v!a7qz |
torna all'elenco delle lezioni
11 Ottobre 2021 | |
---|---|
Argomenti |
Stack di attivazione delle funzioni. Variabili locali.
Passaggio dei parametri. Assenza di effetti collaterali su parametri semplici. L'istruzione di ciclo Esercizi sull'uso di cicli e istruzioni condizionali |
Listati ed esercizi proposti |
|
Materiale |
La registrazione della lezione dell'11 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: ^Sf02xSK |
torna all'elenco delle lezioni
12 Ottobre 2021 | |
---|---|
Argomenti |
Esempi di definizione di funzioni con cicli. |
Materiale |
La registrazione della lezione dell'11 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: RJ6!@V71 |
torna all'elenco delle lezioni
14 Ottobre 2021 (lab) | |
---|---|
Argomenti |
Uso di variabili boolean per il controllo di cicli Istruzione Esercizi sull'uso di cicli e istruzioni condizionali |
Esercizi proposti | |
Materiale |
La registrazione della lezione del 14 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: *Jp32=X! |
torna all'elenco delle lezioni
18 Ottobre 2021 | |
---|---|
Argomenti |
Istruzioni di assegnazione con modifica Istruzione Uso del Semplici programmi con cicli Esempi di programmi con cicli e istruzioni di selezione |
Listati ed esercizi proposti |
Somme di quadratiScrivere un programma che, dato in input un numero naturale n, stampa tutte le coppie di naturali x, y tali che x^2 + y^2 = z^2, con x, y, z ≤ n. Per n = 20 le soluzioni dovrebbero essere le seguenti: 3^2 + 4^2 = 5^2 5^2 + 12^2 = 13^2 6^2 + 8^2 = 10^2 8^2 + 15^2 = 17^2 9^2 + 12^2 = 15^2 12^2 + 16^2 = 20^2 Soluzione: cercaTernePitagoriche.py |
Materiale |
La registrazione della lezione del 18 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: RTn*ZW0M |
torna all'elenco delle lezioni
19 Ottobre 2021 | |
---|---|
Argomenti |
Algoritmo per approssimare uno zero di una funzione continua ricercaZero.py Esempi di programmi con cicli multipli e istruzioni di selezione Introduzione alle stringhe. Indicizzazione, slicing, funzione |
Listati ed esercizi proposti |
|
Materiale |
La registrazione della lezione del 26 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: #1M9Ax@2 |
torna all'elenco delle lezioni
21 Ottobre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercizi su stringhe, cicli. Istruzione Differenza tra:
di una sequenza
|
Listati ed esercizi proposti |
Una soluzione del problema sulla stampa delle stringhe in colonna è in stampaColonna.py |
Materiale |
La registrazione della lezione del 21 Ottobre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: mqw+?3t. |
torna all'elenco delle lezioni
25 Ottobre 2021 | |
---|---|
Argomenti |
Esercizi su cicli, istruzioni condizionali, stringhe Commento della funzione di ricerca binaria ricercaZero.py Liste Accesso e modifica di elementi di una lista. Scansione di liste con I metodi Costruzione di liste |
Listati ed esercizi proposti |
|
Materiale |
La prossima esercitazione si svolgerà secondo le modalità descritte nel video del prof. Massimo Lauria disponibile a questo link La registrazione della lezione del 25 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: @i=RXSz6 |
torna all'elenco delle lezioni
26 Ottobre 2021 | |
---|---|
Argomenti |
Esercizi su liste I metodi Implementazione della ricerca sequenziale su lista Liste disomogenee. Verifica del tipo degli elementi di una lista con la funzione |
Listati ed esercizi proposti |
Esercizi di base su liste:
Data in input una sequenza di interi che rappresentano frequenze:
Soluzione: frequenze.py |
Materiale |
La registrazione della lezione del 26 Ottobre 2021 è disponibile a
questo link Zoom Passcode di accesso: UAUW=*v3 |
torna all'elenco delle lezioni
28 Ottobre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercizi su liste. |
Listati ed esercizi proposti | Esercitazione 6 (soluzioni in soluzioni6.zip) |
Materiale |
La registrazione della lezione del 28 Ottobre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: I^0G^M&9 |
torna all'elenco delle lezioni
02 Novembre 2021 | |
---|---|
Argomenti |
Ricerca di massimo valore o della sua posizione in una lista non ordinata. Ricerca binaria su liste ordinate. Complessità della ricerca binaria |
Listati ed esercizi proposti |
|
Materiale |
La registrazione della lezione del 2 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: .r$64sFG |
torna all'elenco delle lezioni
4 Novembre 2021 (laboratorio) | |
---|---|
Argomenti |
Funzioni che creano liste Funzioni che modificano liste Esercizi su liste |
Listati ed esercizi proposti | Esercitazione 7 (soluzioni in soluzioni7.zip) |
Materiale |
La registrazione della lezione del 4 Novembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: q^$^bH1y |
torna all'elenco delle lezioni
9 Novembre 2021 | |
---|---|
Argomenti |
Liste di liste per la rappresentazione di matrici. Esercizi su liste di liste:
|
Materiale |
La registrazione della lezione del 9 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: Pa+W@&t8 |
torna all'elenco delle lezioni
11 Novembre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercizi su liste bidimensionali. |
Listati ed esercizi proposti | Esercitazione 8 (soluzioni in soluzioni8.zip) |
Materiale |
La registrazione della lezione dell'11 Novembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: yU!b=f22 |
torna all'elenco delle lezioni
15 Novembre 2021 | |
---|---|
Argomenti |
Algoritmo di ordinamento insertion sort insertionSort.py Introduzione alla ricorsione. Esempio di algoritmo ricorsivo per il calcolo del fattoriale
Esempio di algoritmo iterativo per il calcolo del fattoriale
|
Riferimenti al testo | Cormen, Leiserson, Rivest oppure dispense a cura del prof. Massimo Lauria |
Listati proposti |
|
Materiale |
La registrazione della lezione del 15 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: 2V?Q5WCM |
torna all'elenco delle lezioni
16 Novembre 2021 | |
---|---|
Argomenti |
Algoritmo di ordinamento a bolle - Bubble Sort (codice Bubble sort semplice) e suoi miglioramenti (codice Bubble sort migliorato) Analisi della prestazioni del bubble sort Introduzione alla complessità computazionale La notazione asintotica O() Esempi di classi di funzioni |
Link utili |
|
Materiale |
La registrazione della lezione del 16 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: n8ec9V*G |
torna all'elenco delle lezioni
18 Novembre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercizi su liste e liste bidimensionali. |
Listati ed esercizi proposti | Esercitazione 9 (soluzioni in soluzioni9.zip) |
Materiale |
La registrazione della lezione del 18 Novembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: H4@8Ea.P |
torna all'elenco delle lezioni
22 Novembre 2021 | |
---|---|
Argomenti |
Le notazioni asintotiche O(), Ω(), Θ() Esempi di classi di funzioni Uso delle notazioni asintotiche per esprimere limitazioni superiori e inferiori della complessità di algoritmi Complessità computazionale di semplici algoritmi: insertion sort, bubble sort, ricerca sequenziale e ricerca binaria Esercizio: calcolo dei numeri primi con il crivello di Eratostene Il paradigma divide et impera. Somma di una sequenza applicando il paradigma divide et impera
Introduzione all'algoritmo di ordinamento per fusione (merge sort) |
Riferimenti al testo |
dispense del corso, oppure Cormen, Leiserson, Rivest |
Materiale |
La registrazione della lezione del 22 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: %8EgsI01 |
torna all'elenco delle lezioni
23 Novembre 2021 | |
---|---|
Argomenti |
Algoritmo di ordinamento per fusione - Merge Sort (codice merge sort) Analisi della prestazioni del merge sort Dimostrazione della complessità minima possibile (lower bound) per il problema dell'ordinamento basato su confronti |
Link utili | Animazione di algoritmi di ordinamento https://www.toptal.com/developers/sorting-algorithms |
Materiale |
La registrazione della lezione del 23 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: 8N*3#Am1 |
torna all'elenco delle lezioni
25 Novembre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercizi su stringhe di caratteri e liste. |
Listati ed esercizi proposti | Esercitazione 10 (soluzioni in soluzioni10.zip) |
Materiale |
La registrazione della lezione del 25 Novembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: R2bVjy.* |
torna all'elenco delle lezioni
29 Novembre 2021 | |
---|---|
Argomenti |
Algoritmo di ordinamento Quick Sort (codice quick sort) Analisi della prestazioni del quick sort nel caso migliore e nel caso peggiore. |
Riferimenti al testo |
dispense del corso, oppure Cormen, Leiserson, Rivest |
Link utili | Aminazione di algoritmi di ordinamento https://www.toptal.com/developers/sorting-algorithms |
Materiale |
La registrazione della lezione del 29 Novembre 2021 è disponibile a
questo link Zoom Passcode di accesso: .!82b!T@ |
torna all'elenco delle lezioni
30 Novembre 2021 | |
---|---|
Argomenti |
Analisi della complessità computazionale di algoritmi ricorsivi.
|
Listati ed esercizi proposti | Un elenco di esercizi di programmazione è disponible qui |
Riferimenti al testo |
dispense del corso, oppure Cormen, Leiserson, Rivest |
Materiale |
La registrazione della lezione del 30 Novembre 2021 non è disponibile.
Una lezione sugli stessi argomenti è visibile, a partire dal minuto 23 circa, a
questo link Zoom Passcode di accesso: #5kdB^+R |
torna all'elenco delle lezioni
2 Dicembre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercitazione su algoritmi di ordinamento. |
Listati ed esercizi proposti | Esercitazione 11 (bozza di soluzione in provaSort.py) |
Materiale |
La registrazione della lezione del 2 Dicembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: R%5g3y$S |
torna all'elenco delle lezioni
6 Dicembre 2021 | |
---|---|
Argomenti |
Lettura e scrittura di file di testo. L'algoritmo di Euclide per il calcolo del Massimo Comun Divisore. |
Listati ed esercizi proposti |
|
Materiale |
La registrazione della lezione del 6 Dicembre 2021 è disponibile a
questo link Zoom Passcode di accesso: uQx.%9eq |
torna all'elenco delle lezioni
7 Dicembre 2021 | |
---|---|
Argomenti |
Dizionari: definizione, scansione, indicizzazione, funzione Algoritmo per il calcolo del k-esimo elemento: selection.py Analisi di complessità dell'algoritmo per il k-esimo elemento |
Listati ed esercizi proposti |
|
Riferimenti al testo |
dispense del corso, oppure Cormen, Leiserson, Rivest |
Materiale |
La registrazione della lezione del 7 Dicembre 2021 è disponibile a
questo link Zoom Passcode di accesso: Xc%@6sKz |
torna all'elenco delle lezioni
9 Dicembre 2021 (laboratorio) | |
---|---|
Argomenti |
Esercitazione su files e dizionari. |
Listati ed esercizi proposti | Esercitazione 12 |
Materiale |
La registrazione della lezione del 9 Dicembre 2021 (laboratorio) è disponibile a
questo link Zoom Passcode di accesso: 07@bGpB. |
torna all'elenco delle lezioni
16 Dicembre 2021, ore 12 | |
---|---|
Argomenti |
Codifica dell'informazione:
|
Materiale |
La registrazione della lezione del 16 Dicembre 2021, ore 12, è disponibile a
questo link Zoom Passcode di accesso: ^gzX1$bI |
torna all'elenco delle lezioni
16 Dicembre 2020, ore 16 | |
---|---|
Argomenti |
|
Materiale |
La registrazione della lezione del 16 Dicembre 2021, opre 16, è disponibile a
questo link Zoom Passcode di accesso: $21r9jtF |