Informazioni Generali

Risultati dell'apprendimento

CFU

9 CFU, 90 ore di didattica frontale distribuite in 6 ore a settimana (lezioni da 105 minuti).

Prerequisiti

Si consiglia vivamente che lo studente abbia seguito e superato il corso di Fondamenti di Informatica.

Orario delle lezioni

Orario valido dal 23/9/2018 al 17/1/2019 (primo semestre)
  • Martedì dalle 11:30 alle 13:15, aula 3 edificio didattica
  • Mercoledì dalle 11:30 alle 13:15, aula 3 edificio didattica
  • Venerdì dalle 11:30 alle 13:15, aula 1 edificio didattica

Piattaforma di Q&A

https://piazza.com/uniroma2.it/fall2019/ce1920/
Piazza è una piattaforma di question-and-answer (Q&A), che è adatta per ottenere un aiuto veloce ed efficiente dai colleghi di corso e dai docenti.
Per registrarsi, è necessario usare l'indirizzo di email fornito dall'Ateneo e disponibile tramite Delphi (vedi istruzioni). A registrazione effettuata, è possibile modificare l'indirizzo di email sul quale ricevere le eventuali notifiche.


Docenti

Francesco Lo Presti
Tel.: 067259 7725
E-mail: img (è necessario specificare [CE1920] nell'oggetto della mail)
Ufficio: stanza D1-12, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento:
  • martedì dalle 10:00 alle 11:00 in ufficio.

Valeria Cardellini
Tel.: 067259 7388
E-mail: img (è necessario specificare [CE1920] nell'oggetto della mail)
Ufficio: stanza D1-17, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento:

  • martedì dalle 10:00 alle 11:30 in ufficio.

Tutor: Gabriele Russo Russo
E-mail: (è necessario specificare [CE1920] nell'oggetto della mail)


Avvisi

  • new 8 agosto 2020 - Causa Covid-19 gli appelli della sessione autunnale dell’esame di Calcolatori Elettronici si svolgeranno esclusivamente a distanza. In particolare, ciascun appello sarà suddiviso in una prova scritta di programmazione (Assembler e C) secondo il calendario sotto riportato e un esame orale (sull’intero programma) che verrà programmato successivamente alla prova scritta. Accedono alla prova orale solo coloro che hanno svolto in modo sufficiente la prova scritta. Le prove scritte e orali si svolgeranno sulla piattaforma Microsoft Teams con modalità che verranno comunicate successivamente. Si ricorda che la registrazione all’esame è obbligatoria.
  • 24 maggio 2020 - Causa Covid-19 gli appelli della sessione estiva dell’esame di Calcolatori Elettronici si svolgeranno esclusivamente a distanza con modalità diverse rispetto a quanto previsto nella precedente sessione. In particolare, ciascun appello sarà suddiviso in una prova scritta di programmazione (Assembler e C) secondo il calendario sotto riportato e un esame orale (sull’intero programma) che verrà programmato successivamente alla prova scritta. Accedono alla prova orale solo coloro che hanno svolto in modo sufficiente la prova scritta. Le prove scritte e orali si svolgeranno sulla piattaforma Microsoft Teams con modalità che verranno comunicate successivamente.
    Si ricorda che la registrazione all’esame è obbligatoria (entro il 10 giugno per il primo appello, entro il 4 luglio per il secondo). Non saranno accettate registrazioni oltre le date indicate. All’atto della registrazione, siete tenuti a comunicare per posta elettronica al Prof. Lo Presti il vostro indirizzo di email uniroma2.eu necessario per l’organizzazione delle prove sulla piattaforma MS Teams.
    Vista la necessità di dover organizzare le prove scritte a piccoli gruppi su più turni per poter permettere lo svolgimento a distanza su MS Teams, gli studenti sono invitati a prenotarsi solo se seriamente intenzionati a partecipare alla prova scritta.
  • 24 marzo 2020 - Sono disponibili i risultati della prova di laboratorio del secondo appello (vedi Appelli).
    Coloro che non intendono verbalizzare il voto conseguito devono comunicarlo al prof. Lo Presti entro il 25 marzo.
  • 17 febbraio 2020 - Sono disponibili i risultati della prova di laboratorio del primo appello (vedi Appelli).
  • 16 febbraio 2020 - Verbalizzazione sul libretto/visione  delle prove del primo appello martedì 25 febbraio ore 10:00 lettere A-I e ore 11:30 lettere L-Z presso lo studio del Prof. Lo Presti.  Per gli studenti impossibilitati a presentarsi nella data indicata si procederà comunque alla verbalizzazione elettronica su Delphi entro la fine della sessione di esami.
  • 15 febbraio 2020 - Sono disponibili il testo e la soluzione della prova di laboratorio del 13 febbraio (vedi Appelli).
  • 15 febbraio 2020 - Sono disponibili i risultati del secondo esonero del 28 gennaio ed i risultati finali degli esoneri (vedi Appelli).
  • 11 febbraio 2020 - Sono disponibili i risultati dell'appello del 28 gennaio ed il testo della prova scritta (vedi Appelli).
    Si ricorda che per la prova di laboratorio di giovedì 13 febbraio è obbligatoria la prenotazione su Delphi.
  • 23 gennaio 2020 - Sono disponibili gli esercizi sulla gerarchia di memorie (es_GerarchiaMemorie_2019-2020.pdf).
  • 22 gennaio 2020 - Nelle slide GerarchiaMemoria.pdf aggiunta la slide 35 e modificate leggermente le slide da 30 a 59.
  • 21 gennaio 2020 - Sono disponibili gli esercizi sulla rappresentazione dei numeri in floating point (es_FloatingPoint_2019-2020.pdf).
  • 21 gennaio 2020 - Sono disponibili i risultati ed il testo della prova di laboratorio del 19 dicembre (vedi Appelli).
  • 16 dicembre 2019 - Il ricevimento di martedì 17 dicembre non si terrà.
  • 16 dicembre 2019 - Per la prova di laboratorio di giovedì 19 dicembre è obbligatoria la prenotazione su Delphi (vedi Appelli).
  • 16 dicembre 2019 - Sono disponibili i risultati ed il testo della prova di esonero del 2 dicembre (vedi Appelli).
  • 6 dicembre 2019 - Martedì 10 dicembre si terrà una lezione di tutoraggio sulla programmazione in C (Aula B1, ore 9:30).
  • 28 novembre 2019 - Sono disponibili le date degli appelli della sessione invernale (vedi Appelli).
  • 19 novembre 2019 - Modificate le slide 36 e 37 (puntatori a void) ed aggiunte le slide 39 e 40 (array di puntatori) in C_puntatori.pdf.
  • 16 novembre 2019 - La prova di laboratorio si terrà giovedì 19 dicembre, Laboratorio di Informatica a partire dalle 10:00.
  • 16 novembre 2019 - La prova in itinere si terrà lunedì 2 dicembre, aule 3 e 4 alle 16:00.
  • 17 ottobre 2019 - Si ricorda che per la registrazione su Piazza è necessario usare l'indirizzo di email fornito dall'Ateneo e disponibile tramite Delphi (vedi istruzioni).
  • 9 ottobre 2019 - Martedì 15 ottobre alle 9:30 in Aula B1 si terrà la prima lezione di tutoraggio.
  • 17 settembre 2019 - Per la discussione relativa al corso, useremo Piazza (istruzioni per la registrazione)
  • 17 settembre 2019 - Per l'iscrizione al corso, usare Delphi.

Materiale Didattico

Testo consigliato

Calendario e lucidi delle lezioni


Giorno Argomento Lucidi Ultima modifica
24/9/2019 Organizzazione del corso
Introduzione
Organizz.pdf
Introduzione.pdf
26/9/2019
26/9/2019
25/9/2019 Introduzione
Codifica Binaria
Vedi lezione del 24/9
Codifica.pdf
 
26/9/2019
27/9/2019 Codifica Binaria Vedi lezione del 25/9
1/10/2019 Aritmetica Binaria Vedi lezione del 25/9
2/10/2019 Reti Combinatorie RetiLogiche.pdf 7/10/2019
4/10/2019 Reti Combinatorie Vedi lezione del 2/10
8/10/2019 Linguaggio C: Introduzione
C_intro.pdf
C_intro_esempi.zip
8/10/2019
8/10/2019
9/10/2019 Linguaggio C: Variabili
 
Linguaggio C: Controllo
 
C_variabili.pdf
C_variabili_esempi.zip
C_control.pdf
C_control_esempi.zip
9/10/2019
9/10/2019
17/10/2019
17/10/2019
11/10/2019 Set di Istruzioni MIPS Set_Istruzioni.pdf 11/10/2019
15/10/2019 Linguaggio C: Controllo Vedi lezione del 9/10
17/10/2019 Set di Istruzioni MIPS Vedi lezione dell'11/10
18/10/2019 Set di Istruzioni MIPS Vedi lezione dell'11/10
22/10/2019 Linguaggio C: funzioni
C_funzioni.pdf
C_funzioni_esempi.zip
24/10/2019
24/10/2019
23/10/2019 SPIM SPIM.pdf 29/10/2019
25/10/2019 Linguaggio C: array
 
Linguaggio C: puntatori
 
C_array.pdf
C_array_esempi.zip
C_puntatori.pdf
C_puntatori_esempi.zip
28/10/2019
28/10/2019
19/11/2019
19/11/2019
29/10/2019 Procedure in Assembler Procedure.pdf 30/10/2019
5/11/2019 Linguaggio C: puntatori vedi lezione del 25/10
6/11/2019 Assemblatore, Linker e Loader Assemblatore.pdf 8/11/2019
8/11/2019 Reti Logiche RetiLogiche2.pdf 8/11/2019
12/11/2019 Reti Logiche Vedi lezione dell'8/11  
13/11/2019 Linguaggio C: allocazione dinamica della memoria, allocazione statica e dinamica di matrici Vedi lezione del 25/10  
15/11/2019 Flip Flop RetiSeq.pdf 17/11/2019
19/11/2019 Linguaggio C: esempi su allocazione di matrici e passaggio di matrici
Linguaggio C: stringhe
 
Vedi C_puntatori_esempi.zip
C_stringhe.pdf
C_stringhe_esempi.zip
 
19/11/2019
19/11/2019
20/11/2019 Automi a Stati Finiti Vedi lezione dell'8/11
22/11/2019 ALU e Registri ALU_Reg.pdf 29/11/2018
26/11/2019 Linguaggio C: struct
 
Esercizi
Linguaggio C: Liste
 
C_struct.pdf
C_struct_esempi.zip
Esercizi_26-11-2019.pdf
C_liste.pdf
C_liste_esempi.zip
26/11/2019
26/11/2019
26/11/2019
18/12/2019
18/12/2019
27/11/2019 Processore a Ciclo Singolo - Datapath CPU_Monociclo.pdf 9/12/2019
3/12/2019 Processore a Ciclo Singolo - Controllo Vedi lezione del 27/11
3/12/2019 Linguaggio C: liste
Soluzione degli esercizi in C della prova in itinere
Vedi lezione del 26/11
itinere1920.c
 
16/12/2019
4/12/2019 Pipeline Pipeline_Intro.pdf 3/1/2020
6/12/2019 Pipeline Vedi lezione del 4/12
11/12/2019 Pipeline - Criticità Vedi lezione del 4/12
17/12/2019 Rappresentazione dei numeri in virgola mobile
Soluzione della prova di laboratorio del 24/6/2019
Floating.pdf
testo, soluzione
17/12/2019
17/12/2019
18/12/2019 Esercizio su liste semplici
Rappresentazione dei numeri in virgola mobile
Esercizi sulla rappresentazione dei numeri in virgola mobile
es_pari.c
vedi lezione del 17/12
es_FloatingPoint_2019-2020.pdf
18/12/2019
 
21/1/2020
20/12/2019 Pipeline - Criticità Vedi lezione del 4/12
7/1/2020 Gerarchia di memorie: introduzione, località e migrazione tra livelli GerarchiaMemoria.pdf 21/1/2020
8/1/2020 Introduzione I/O Dispositivi-Short.pdf
DispositiviIO.pdf (dalla terza edizione)

9/1/2020
10/1/2020 Gerarchia di memorie: cache ad indirizzamento diretto Vedi lezione del 7/1  
14/1/2020 Gerarchia di memorie: cache completamente associative e set-associative, politiche di sostituzione, strategie di scrittura
Esercizi sulle gerarchie di memoria
Vedi lezione del 7/1
 
 
15/1/2020 Gerarchia di memorie: migliorare le prestazioni
Esercizi sulla rappresentazione dei numeri in virgola mobile
Vedi lezione del 7/1
Vedi lezione del 18/12
 
 
17/1/2020 Esercizi sulla rappresentazione dei numeri in virgola mobile
Esercizi sulle gerarchie di memoria
 
es_GerarchiaMemorie_2019-2020.pdf
 
23/1/2020

Tutoraggio

Esercizi programmazione in C: [1-4], [5-8], [9-13], [14-16], [17-22], [23-25]

Esercizi programmazione in Assembly: [1-2], [3-4], [5-7], [8-10]

Lezioni di tutoraggio
Giorno Argomento Materiale
15/10/2019 Installazione ed uso di GCC,
primi esempi in C
slides
esempi (.zip)
22/10/2019 Programmazione in C slides
esempi (.zip)
29/10/2019 Introduzione all'uso di QtSpim, soluzione es. assembly; uso di GCC (parte 2) scaletta (.txt)
esempi (.zip)
05/11/2019 Esercizi C e Assembly scaletta (.txt)
esempi (.zip)
12/11/2019 Esercizi C e Assembly scaletta (.txt)
esempi (.zip)
19/11/2019 Discussione esercizi parziale 2018/19 esempi (.zip)
26/11/2019 Esercizi C e Assembly scaletta (.txt)
slides (.pdf)
esempi (.zip)
29/11/2019 Esercizi C scaletta (.txt)
esempi (.zip)
10/12/2019 Liste collegate in C scaletta (.txt)
esempi (.zip)


Altri link utili

I seguenti link forniscono delle fonti per approfondimenti.


Programma preliminare

Introduzione. Organizzazione ed architettura di un calcolatore. Struttura e funzionalità. Livelli di astrazione. Tecnologia costruttiva. Breve rassegna storica.
Rappresentazione dell'informazione. Rappresentazione degli interi. Aritmetica degli interi. Rappresentazione in virgola mobile (formato IEEE 754). Aritmetica in virgola mobile. Codifica dei caratteri.
Reti logiche.
Programmazione in C.
Il set delle istruzioni. Le istruzioni. Le operazioni svolte dall'hardware. Gli operandi dell'hardware. Rappresentazione delle istruzioni all'interno del calcolatore. Modi di indirizzamento. Istruzioni aritmetiche. Istruzioni di load/store. Istruzioni di salto. Istruzioni logiche. Pseudo-istruzioni. Direttive. Chiamate di sistema. Dalla compilazione all'esecuzione di un programma: assemblatore, linker e loader. Confronto tra architetture RISC e CISC.
Unità logico-aritmetica. La costruzione di una ALU. Memoria. I sistemi di memorizzazione e le tecnologie di memorizzazione. Memoria principale. Lettura e scrittura di una RAM. Gli elementi di memoria.
Il processore: unità di elaborazione dati e unità di controllo. Introduzione. Progetto dell'unità di elaborazione dati: unità a ciclo singolo. L'unità di controllo per l'ALU. Unità di controllo.
Pipelining. Introduzione. L'unità di elaborazione pipelined. Il controllo. Introduzione alle criticità.
La gerarchia di memorie. Introduzione. Memorie cache.

Esami

Modalità di esame

L'esame si compone di:

  • Prova scritta;
  • Prova di laboratorio.

Tali prove si terranno nelle sessioni di esami previste.
Non ci sono vincoli sulla partecipazione alle prove (eccetto la prenotazione obbligatoria per le prove scritte).
Tuttavia, la partecipazione ad una prova scritta (anche in caso di ritiro dalla prova) comporta la rinuncia automatica ad un voto sufficiente conseguito in una prova scritta precedente.
L'esame orale è solo su eventuale richiesta dei docenti.

Prova scritta

La prova scritta verte sugli argomenti dell'intero corso e prevede domande a risposta aperta ed esercizi.

E' prevista una prova in itinere durante il mese di novembre sulla prima parte del programma.
Il superamento con esito positivo della prova in itinere esonera lo studente - per la sola sessione invernale - dal dover svolgere la parte di prova scritta che verte sulla prima parte del programma.

Prova di laboratorio

Per accedere alla prova di laboratorio occorre aver superato la prova scritta (o la prova in itinere, per la sola prova di laboratorio che si terrà a dicembre).

Prove scritte di anni precedenti

Appelli

  • Prova in itinere Lunedì 2 dicembre 2019, ore 16:00 aule 3 e 4 edificio Didattica.
  • Prova di laboratorio in itinere (riservata agli studenti che hanno superato la prova in itinere) Giovedì 19 dicembre 2019, aula Laboratorio Informatica, dalle ore 9:00.
    • Cognomi A-CI ore 9:00
    • Cognomi CO-O ore 10:30
    • Cognomi P-Z ore 12:00
    E' obbligatoria la prenotazione su Delphi (contattare il Prof. Lo Presti in caso di problemi entro il pomeriggio del 18 dicembre).

  • I appello sessione invernale
    • Prova Scritta Martedì 28 gennaio 2020, ore 10:00 aule 3 e 4.
    • Prova in Laboratorio Giovedì 13 febbraio 2020, ore 9:30 aula Laboratorio di Informatica.
      E' obbligatoria la prenotazione su Delphi (contattare il Prof. Lo Presti in caso di problemi entro il pomeriggio del 12 febbraio).

  • II appello sessione invernale
    • Prova Scritta Martedì 18 febbraio 2020, ore 10:00 aule 3 e 4.
    • Prova in Laboratorio Giovedì 27 febbraio 2020, ore 9:30 aula Laboratorio di Informatica.
    • E' obbligatoria la prenotazione su Delphi (contattare il Prof. Lo Presti in caso di problemi entro il pomeriggio del 26 febbraio).

  • I appello sessione estiva
    • Prova Scritta Mercoledì 17 giugno 2020, ore 10:00 (su piattaforma Microsoft Teams).

  • II appello sessione estiva
    • Prova Scritta Giovedì 9 luglio 2020, ore 15:00 (su piattaforma Microsoft Teams).

  • I appello sessione autunnale
    • Prova Scritta Lunedì 31 agosto 2020, ore 10:00 (su piattaforma Microsoft Teams).

  • II appello sessione autunnale
    • Prova Scritta Lunedì 14 settembre 2020, ore 10:00 (su piattaforma Microsoft Teams).