Diario delle lezioni + esercizi del giorno
Questa pagina riporta l'elenco delle lezioni svolte in aula. Per ogni lezione si fornisce un link a una pagina con il dettaglio degli argomenti svolti ed esercizi riepilogativi sugli argomenti del giorno che lo studente svolgerà a casa. Le soluzioni degli esercizi sono discusse sul
forum∞.
Parte I - Il linguaggio C
- Lezione 01 (01/03/2013): Panoramica su motivazioni e obiettivi del corso
- Lezione 02 (04/03/2013): Tipi primitivi, oggetti, valori, puntatori
- Lezione 03 (11/03/2013): Tipi array, stringhe, precedenza degli operatori
- Lezione 04 (15/03/2013): Tipi struttura, typedef, modularizzazione di programmi
- Lezione 05 (18/03/2013): Espressioni che denotano tipi, puntatori a funzione, preprocessore C, tipi di dato astratti
- Lezione 06 (22/03/2013): Compilazione incrementale (makefile), esercizi C
Parte II - Analisi e ottimizzazione delle prestazioni dei programmi
- Lezione 07 (25/03/2013): Programmazione sistemi x64-64, registri, assembly, modi di indirizzamento
- Lezione 08 (05/04/2013): System V AMD64 ABI (stack frame, convenzioni chiamate a subroutine)
- Lezione 09 (08/04/2013): Tecniche di ottimizzazione prestazioni programmi, ridurre il numero di istruzioni (logica di calcolo e cicli)
- Lezione 10 (12/04/2013): Ridurre il numero di istruzioni (inlining)
- Lezione 11 (15/04/2013): Ridurre il numero di istruzioni (funzioni e strutture dati), ridurre il costo delle operazioni (branch mispredictions)
- Lezione 12 (19/04/2013): Ridurre il costo delle operazioni (caching, allineamento)
- Lezione 13 (22/04/2013): Tecniche per ridurre lo spazio, tecniche per sfruttare il parallelismo, legge di Amdahl, profiling delle prestazioni (parte I)
- Lezione 14 (29/04/2013): Profiling delle prestazioni (parte II), caso di studio: prodotto di matrice
- Lezione 15 (03/05/2013): Caso di studio: prodotto di matrice (parte II), seminario su performance profiling
- Lezione 16 (06/05/2013): Allocazione dinamica della memoria
- Lezione 17 (10/05/2013): Misurazione dello spazio, seminario su map-reduce
Parte III - Programmazione parallela su schede GPU
- Lezione 18 (13/05/2013): Introduzione alla programmazione parallela e alla programmazione di sistemi eterogenei in OpenCL
[
A.A. 2008-2009 |
A.A. 2009-2010 |
A.A. 2010-2011 ]