en
Politecnico di Torino
Anno Accademico 2012/13
01MNNNX
Algoritmi e calcolatori
Corso di Laurea in Ingegneria Elettronica - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Prinetto Paolo Ernesto ORARIO RICEVIMENTO     80 0 20 0 10
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05
ING-INF/05
2
8
F - Altre attività (art. 10)
B - Caratterizzanti
Abilità informatiche e telematiche
Ingegneria informatica
Presentazione
Insegnamento obbligatorio per la laurea triennale in Ingegneria Elettronica, collocato al secondo periodo didattico del secondo anno.
Gli argomenti principali dell’insegnamento sono: gli aspetti architetturali e i principi di funzionamento dei Sistemi di Elaborazione; le tecniche e i linguaggi di programmazione, sia C sia Assembler e le metodologie di progettazione manuale di sistemi digitali.
L’insegnamento fornirà una visione comprensiva e integrata dei vari argomenti, evidenziandone le interazioni.
Risultati di apprendimento attesi
• Conoscenza di tecniche e metodologie di programmazione avanzata, quali puntatori, ricorsione e strutture di dati complesse
• Capacità di programmazione avanzata in linguaggio C
• Conoscenza di base dei linguaggi di programmazione a oggetti, con particolare rifermento al linguaggio C++
• Capacità di scrittura di programmi in linguaggio C++
• Conoscenza di programmazione in linguaggio Assembler dei processori Intel x86
• Capacità di scrittura di programmi in linguaggio Assembler x86
• Conoscenza dei componenti elementari costituenti un sistema digitale
• Conoscenza di metodologie per la progettazione manuale di sistemi digitali
• Capacità di analisi e progetto di semplici sistemi digitali combinatori e sequenziali
• Conoscenza delle principali architetture di Sistemi di Elaborazione e il relativo funzionamento
• Conoscenza basilare dei Sistemi Operativi
Prerequisiti / Conoscenze pregresse
• Conoscenze dell’algebra booleana
• Conoscenze di programmazione di base in linguaggio C e in particolare di strutture di controllo, tipi e operatori
• Conoscenze di rappresentazione dei dati e in particolare dei sistemi di numerazione e dei codici
Programma
• Introduzione e consolidamento prerequisiti (4 h)
o Presentazione del corso
o Rappresentazione dei dati
o Algebre booleane
o Modellizzazione di sistemi digitali

• Programmazione avanzata (26 h)
o Puntatori
o Tipi di dato astratto
o Ricorsione
o Alberi e Grafi
o Introduzione ai linguaggi di programmazione a oggetti

• Sintesi manuale di sistemi digitali (18 h)
o Ciclo di progetto di sistemi digitali
o Sintesi manuale di circuiti combinatori e sequenziali

• Architetture dei Sistemi di Elaborazione (27 h)
o Componenti elementari
o Tipi di architetture di un processore
o Sistemi di interconnessione e relativi protocolli
o Sistemi di memoria
o Gestione delle interruzioni e delle eccezioni
o Sistemi di Input/Output
o Sistemi Operativi

• Linguaggio Assembler (6 h)
o Introduzione ai linguaggi Assembler
o Programmazione in linguaggio Assembler Intel x86
Organizzazione dell'insegnamento
Per ogni settimana del corso è previsto lo svolgimento di un’esercitazione di laboratorio della durata di circa 1.5 ore, durante la quale gli studenti potranno verificare la comprensione dei concetti introdotti a lezione e metterli in atto.

I laboratori, in totale 13, tratteranno i seguenti temi:
• Programmazione avanzata in C (7.5 h)
• Programmazione in C++ (3 h)
• Programmazione in Assembler x86 (7 h)
• Integrazione C/Assembler (1.5 h)
Durante le lezioni in aula saranno inoltre condotte delle esercitazioni riguardanti la progettazione manuale di sistemi digitali.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
• Lucidi delle lezioni (scaricabile dal sito http://www.testgroup.polito.it).

• Libri di riferimento (Non richiesti. Il materiale fornito e le esercitazioni sono sufficienti):
o B.W. Kernighan, D.M. Ritchie, "The C Programming Language", Prentice Hall
o P.Deitel, H.Deitel, "C : How to Program (6th Edition)", Prentice Hall, 2009
o P.Deitel, H.Deitel, "C++ : How to Program (8th Edition)", Prentice Hall, 2011

• Libri di testo:
o G. Conte, A. Mazzeo, N. Mazzocca, P. Prinetto, "Architettura dei Sistemi di Elaborazione",
Utet, 2013.
o M. Grosso, P. Prinetto, M. Rebaudengo, M. Sonza Reorda, "La programmazione in Assembler x86", Ebook, 2012
Criteri, regole e procedure per l'esame
L’esame sarà composto di 2 parti:
• prova scritta finale
• realizzazione di due progetti

PROVA SCRITTA
La prova scritta verterà sulle tematiche svolte a lezione e sarà costituito dei seguenti punti:
• uno o più esercizi di programmazione avanzata in C
• uno o più esercizi di programmazione in C++
• uno o più esercizi di programmazione in Assembler x86
• uno o più esercizi sul progetto di circuiti digitali semplici
• uno o più domande sugli aspetti teorici trattati dal corso.

La prova scritta avrà durata complessiva di 3 ore e durante il suo svolgimento non sarà possibile consultare né libri, né appunti, né utilizzare dispositivi elettronici.

Il voto della prova scritta avrà un peso pari a 2/3 sul voto finale, ovvero 20/30.

REALIZZAZIONE DI DUE PROGETTI
I due progetti consisteranno in un programma in linguaggio C e uno in linguaggio Assembler x86 in grado di risolvere due differenti problemi.
Per il programma in C dovrà essere consegnato il codice sorgente e l’eseguibile, mentre per il programma Assembler dovrà essere consegnato solamente il codice sorgente. Inoltre, per ogni progetto, dovrà essere consegnata una relazione in formato pdf di massimo 2 pagine ciascuna.
I progetti dovranno essere consegnati in formato elettronico tramite la funzione consegna elaborati del portale della didattica. I file dei due progetti, organizzati in cartelle, dovranno essere inseriti all’interno di un unico archivio nominato secondo il seguente formato:

Cognome_Nome_Matricola.rar

Il voto dei due progetti avrà un peso pari a 1/3 sul voto finale, ovvero 10/30.
I progetti potranno essere consegnati entro una delle seguenti date, subendo le seguenti penalizzazioni.

• 21/06/2013 : i progetti non verranno penalizzati (votazione massima di 10/30).
• 12/07/2013 : i progetti verranno penalizzati del 30% (votazione massima di 7/30).
• 20/09/2013 : i progetti verranno penalizzati del 70% (votazione massima di 3/30).
• Oltre : i progetti non verranno valutati (votazione pari a 0/30).

Alla consegna seguirà, nei giorni successivi, una breve discussione orale in cui verrà accertato il funzionamento dei progetti e verranno analizzati i codici consegnati.
NB: Sarà possibile sostenere la prova scritta finale in accordo con gli appelli pianificati dalle segreterie didattiche, mentre i progetti potranno essere consegnati in un’unica data, senza possibilità di risottometterli.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2012/13
Indietro