Dettagli sull'Insegnamento per l'A.A. 2017/2018
Nome:
Laboratorio di Architettura degli Elaboratori / Computer Architectures Lab
Informazioni
Crediti:
: Bachelor Degree in Computer Science 6 CFU (b)
Erogazione:
Bachelor Degree in Computer Science 1st anno curriculum General Compulsory
Lingua:
Italiano
Prerequisiti
Conoscenze: nozioni elementari di programmazione imperativa, nozioni di base sull'architettura degli elaboratori, nozioni matematiche elementari, lettura e comprensione in lingua inglese.
Capacità: saper implementare correttamente algoritmi elementari con un linguaggio di programmazione imperativo, essere in grado di utilizzare il calcolatore per compilare ed eseguire semplici programmi.
Obiettivi
Il corso fornisce agli studenti una conoscenza intermedia della programmazione imperativa, delle tecniche di gestione della memoria, della programmazione in linguaggio assembly e relative tecnologie, e di linguaggi macchina. Al termine del corso gli studenti capiranno programmi non elementari scritti con un linguaggio di programmazione imperativo, saranno in grado di realizzare costrutti di un linguaggio di programmazione di alto livello con istruzioni in linguaggio macchina, e di comprendere e utilizzare la tecnologia sottostante un linguaggio di programmazione. Ci si aspetta che gli studenti sviluppino attenzione ai dettagli di implementazione di algoritmi, alla portabilità dei programmi, al rispetto dei linguaggi di programmazione standard e regole, oltre che una propensione alla ricerca di implementazioni efficienti di algoritmi.
Sillabo
- Organizzazione strutturata degli elaboratori, modelli computazionali, linguaggi di programmazione e loro standard
- Programmazione imperativa con linguaggi ad alto livello orientati alla programmazione di sistema
- Tipi di dato base e derivati; rappresentazione dei dati
- Gestione della memoria; programmazione a basso livello
- Programmazione con linguaggi assembly; traduzione dei costrutti principali di un linguaggio di programmazione ad alto livello in un linguaggio assembly
- I linguaggi macchina; i processi di assemblaggio e disasseblaggio
Descrittori di Dublino
Alla fine del corso, lo studente dovrebbe
-
avere nozioni di livello intermedio sulla programmazione imperativa e conoscenze approfondite relative a tecniche di gestione della memoria, programmazione con linguaggi assembly e relative tecnologie, linguaggi macchina
-
saper comprendere il funzionamento di programmi non elementari scritti con un linguaggio di programmazione imperativo; saper implementare i costrutti di un linguaggio di programmazione ad alto livello mediante le istruzioni di un linguaggio macchina e di capire specifiche tecniche di linguaggi di programmazione di alto livello, di linguaggi assembly e di linguaggi macchina;
-
saper scegliere, tra modi diversi di realizzare programmi, quelli in grado di massimizzarne le prestazioni
-
essere in grado di descrivere, con proprietà di termini, linguaggi e architetture di elaboratori
-
essere in grado di utilizzare un linguaggio imperativo orientato alla programmazione di sistema nei successivi corsi di tipo architetturale; essere in grado di vedere il legame tra modelli di calcolo presentati in corsi di informatica teorica e i calcolatori reali
Testi di riferimento
- G. Conte, A. Mazzeo, N. Mazzocca, P. Prinetto, Architettura dei calcolatori , CittàStudiEdizioni. 2015 (prima edizione). Testo d riferimento
- Kim N. King, C Programming: a Modern Approach , W.W.Norton & Company. 2008 (second edition). Testo di riferimento http://knking.com/books/c2/index.html
- David A. Patterson, John L. Hennessy, Struttura e progetto dei calcolatori , Zanichelli. 2015 (quarta edizione, condotta sulla quinta edizione americana). Testo consigliato per approfondimenti
Modalità d'esame
Pre-Assessment:
Non è prevista nessuna valutazione preliminare. I prerequisiti del corso sono chiaramente descritti sulla relativa pagina web.
Formative Assessment:
Durante lo svolgimento delle lezioni gli studenti sono invitati ad interagire con la docente, a porre domande e a discutere su argomenti proposti in classe. Summative Assessment:
Il voto d’esame è determinato da una prova scritta seguita da una prova orale. Verrà inoltre svolta una prova parziale non obbligatoria, sugli argomenti svolti nella prima parte del corso, con l’intento di aiutare gli studenti a suddividere il carico di lavoro. Le prove scritte consistono in serie di esercizi e domande a risposta aperta, che hanno lo scopo di verificare le abilita pratiche e il livello di conoscenza acquisito. La prova orale sarà tenuta entro due settimane dalla prova scritta e tipicamente verterà sulle parti delle risposte scritte che è necessario chiarire e su ulteriori argomenti proposti dal docente. I criteri di valutazione saranno: livello di conoscenza e abilità pratiche; proprietà d’uso del linguaggio tecnico e matematico; chiarezza e completezza di esposizione; capacità di prendere decisioni sensate nella scrittura e traduzione dei programmi
Aggiornamenti alla pagina del corso
Le informazioni sulle editioni passate di questo corso sono disponibili per i seguenti anni accademici:
Per leggere le informazioni correnti sul corso, se ancora erogato, consulta il catalogo corsi di ateneo.
Ultimo aggiornamento delle informazioni sul corso: 17 febbraio 2016, 18:26