Prof. Pier Luca Lanzi
Introduzione al CorsoAlgoritmi e Calcolo Parallelo
Prof. Pier Luca Lanzi
questo è un corso (avanzato) di informatica
Prof. Pier Luca Lanzi
“assumiamo” che tutti abbiano conoscenze di
base di informatica e di programmazione
per chi avesse difficoltà “di base” il CCS ha un servizio di tutoring su
C/C++/Matlab
Prof. Pier Luca Lanzi
Laurea intorno ai 25-27 anni
Pensione intorno ai 65-70 anni
Circa 40 anni di vita lavorativa
Cosa dovremmo imparare in questo corso?
Prof. Pier Luca Lanzi
1960 Burroughs 205 Mainframe ~1970
Apple ~1980 2012
Prof. Pier Luca Lanzi
“cambiare tutto per non cambiare niente”
6
algoritmi macchina di Von Neuman
strutture dati
Certe cose però cambiano… Linguaggi Programmazione
(Cobol, RPG, Pascal, C, ecc.) Programmazione a Oggetti
(Simula, Smalltalk, C++, Java) Calcolo Parallelo
(vettoriale, MPI, OpenMP, CUDA)
Prof. Pier Luca Lanzi
qual è l’obiettivo del corso?
imparare i principi generali(valgono sempre)
impararli a utilizzare ora(con le tecnologie disponibili)
Prof. Pier Luca Lanzi
quali principi generali?algoritmi, strutture dati, calcolo
parallelo
quale tecnologia?C++, programmazione a oggetti,
MPI, OpenMP, CUDA
Prof. Pier Luca Lanzi
Perché Imparare a Programmare?
• Difficile pensare che per risolvere un problema possa fare a meno di un calcolatore
• “non dobbiamo diventare programmatori”
• “ci sono gli informatici per quello,
l’implementazione la possono fare loro”
• E’ davvero possibile? Sviluppo senza controllo Correttezza Modifica
9
Prof. Pier Luca Lanzi
Obiettivi del Corso
• Darvi degli strumenti che vi permettano di implementare(almeno in forma prototipale) degli algoritmi/metodi partendo da una descrizione ad alto livello (da un articolo?)
• Conoscenze di base perValutarne la complessitàValutare le conseguenze delle scelte
implementativeValutare la possibilità di migliorarne le
prestazioni attraverso tecniche di parallelizzazione
10
Prof. Pier Luca Lanzi
Modalità di Valutazione in Itinere
• Il voto si compone di 9 punti di scritto (relativo a tutto il programma svolto) 21 punti distribuiti su tre prove pratiche
(C++, algoritmi e strutture dati) A causa di problemi logistici, le prove pratiche si terranno il
sabato mattina, avranno una durata di 5 ore (dalle 8:15 alle 13:15)
Il voto ottenuto durante le tre prove pratiche è valido fino all’appello di Marzo compreso.
• Prova Scritta Due-Tre esercizi più un esercizio di recupero Durante la prova scritta sarà possibile utilizzare i due libri di
testo e le trasparenze per la parte di calcolo parallelo che non contengano esercizi
11
Prof. Pier Luca Lanzi
Modalità di Valutazione non in Itinere
• Il voto (per l’esame svolto durante il corso) si compone di 21 punti di scritto (relativo a tutto il programma svolto) 9 punti ottenuti durante una prova pratica svolta in laboratorio
informatico Per svolgere la prova pratica bisogna ottenere almeno 12 punti
nella prova scritta.
12
Prof. Pier Luca Lanzi
Modalità di Valutazione
• Prove pratiche Sono tre e sono obbligatorie e avranno una durata di 5 ore Svolta in gruppi di 3-4 studenti (selezionati a caso) Si svolgono in un’aula standard quindi dovrete utilizzare i vostri portatili
• Struttura delle prove pratiche Dopo l’appello verranno formati i gruppi e verranno
distribuiti uno o più articoli che descrivono un algoritmo Ogni gruppo ha 5 ore di tempo per implementare l’algoritmo descritto
• Recupero E’ prevista la possibilità di essere assenti per una prova pratica o di
rifiutare uno dei voti di una delle tre prove pratiche, svolgendo un esercizio di recupero durante lo scritto.
Prevediamo una prova di recupero di laboratorio a Luglio e una prova di recupero a Settembre
Le prove di recupero sono svolte singolarmente in laboratorio informatico
13
Prof. Pier Luca Lanzi
Organizzazione 14
Programmazione ISO C++
Algoritmi e Strutture Dati Calcolo
Parallelo
Prof. Pier Luca Lanzi
Materiale
• Algoritmi e Strutture Dati Bertossi Alan A., Montresor Alberto. “Algoritmi e
strutture di dati” (seconda edizione), CittàStudi 2010
Primi 17 capitoli Trasparenze del corso
• Programmazione C++ Stanley B. Lippman, Barbara E. Moo, Josee
Lajoie“C++ Primer”, 4th Edition Addison-Wesley
Primi 16 Capitoli e le appendici
• Calcolo Parallelo Trasparenze delle lezioni
15
Prof. Pier Luca Lanzi
Riferimenti
• Algoritmi e Strutture Dati Bertossi Alan A., Montresor Alberto. “Algoritmi
e strutture di dati” (seconda edizione), CittàStudi 2010
Primi 17 capitoli Trasparenze del corso
• Stanley B. Lippman, Barbara E. Moo, Josee Lajoie“C++ Primer”, 5th Edition Addison-Wesley Primi 16 Capitoli e le appendici
• Calcolo Parallelo Trasparenze delle lezioni
16
Prof. Pier Luca Lanzi
Docenti del Corso
• Prof. Pier Luca Lanzi (lezioni)Dipartimento di Elettronica e [email protected]. 02 23993472http://www.pierlucalanzi.net
• Ricevimento Mercoledì, dalla 14:30 alle 16:30,
su appuntamento
• Ing. Daniele Loiacono (esercitazioni e laboratorio)Dipartimento di Elettronica e [email protected]://www.dei.polimi.it/people/loiacono
17
Prof. Pier Luca Lanzi
Per la Programmazione
• Distribuzione GNU/Linux “Ubuntu” disponibile al sitohttp://www.ubuntu.com/
• E’ possibile installare la distribuzione direttamente su un PC oppure utilizzare un DVD live
• Verrà fornita una macchina virtuale per VirtualBox che permette l’esecuzione di una distribuzione Ubuntu su un altro sistema operativo
• Per programmi di poche righe è anche possibile utilizzare siti specializzati che danno la possibilità di compilare ed eseguire semplici programmi http://codepad.org/ http://ideone.com/
18
Prof. Pier Luca Lanzi
“una goccia di pratica è megliodi un oceano di teoria”
Giuseppe Perlati
Prof. Pier Luca Lanzi
"Students have to be active in developing theirknowledge, they can't passively assimilate it.”
Eric Mazur, Harvard
Prof. Pier Luca Lanzi
21
Discutere, domandare, interagire
Se ci sono punti non chiari, chiedere spiegazioni
Se volete approfondimenti, chiedete.
Cosa Succede in Aula?
Top Related