Laboratorio di Informatica Ingegneria Informatica primo anno Ing. Antonio Monteleone A.A. 2006/07 – 4° ciclo Laboratorio di Informatica – Antonio Monteleone 1 Obiettivi del corso • Insegnare la programmazione, in particolare – il passaggio dall’algoritmo al programma – la programmazione orientata a oggetti (incapsulamento, ereditarietà, polimorfismo) – la programmazione generica (template) attraverso tecniche, esempi e casi d’uso • Linguaggio di programmazione: C++ • Alla fine del corso: buone capacità di programmazione in C++ Laboratorio di Informatica – Antonio Monteleone 2 Informazioni Orario del corso: • Mercoledì • Sabato 14:00 – 16:45 Aula 2 PP2 9:30 – 12:15 Aula 2 PP2 Sito del corso www.uniroma2.it/didattica Laboratorio di Informatica bis (Antonio Monteleone) Indirizzo email: [email protected] Inserire sempre il prefisso “labinfo:” nell’oggetto dell’email Registrazione: Inviare un’email con oggetto “labinfo: registrazione” entro due settimane dall’inizio del corso Inserire Cognome, Nome, Matricola e anno di corso nel corpo dell’email Laboratorio di Informatica – Antonio Monteleone 3 Argomenti (1/4) • • • • • • Ambienti di sviluppo Uso e sviluppo di librerie (statiche e dinamiche) Strutturazione dei progetti Algoritmi di ordinamento e ricerca su array Array bidimensionali Stringhe zero-terminate e ricerca di sottostringhe • Una classe Tokenizer • Numeri in virgola fissa Laboratorio di Informatica – Antonio Monteleone 4 Argomenti (2/4) • La programmazione generica in C++: i template (classi, funzioni) – Array dinamici – Array associativi • Iteratori: concetto e implementazione • Algoritmi generici su classi contenitore • La libreria standard del linguaggio (.., STL,..) Laboratorio di Informatica – Antonio Monteleone 5 Argomenti (3/4) • File I/O in C++ – – – – – Stream su file (ifstream, ofstream) Stream su stringhe (istringstrean, ostringstream) Strutturazione di file in record Ricerche su file Implementazioni di lettori/scrittori di file • CSV (Comma Separated Values) • Lettore di file WAV Laboratorio di Informatica – Antonio Monteleone 6 Argomenti (4/4) • La gestione automatica della memoria: Smart Pointers • Un parser di espressioni aritmetiche • GUI (Graphical User Interface) programming (cenni) • Considerazioni e raccomandazioni sull’uso pratico del C++ • Cenni a tecniche, idiomi di programmazione e pattern (singleton, factory, …) Laboratorio di Informatica – Antonio Monteleone 7 Riferimenti • Sugli elementi di base del linguaggio C++ – Lippman, Lajoye, The C++ Primer, 3rd Edition - Addison Wesley – Pohl, Object-Oriented Programming Using C++, 2nd Edition - Addison Wesley – Stroustrup, The C++ Programming Language, 3rd Edition - Addison Wesley • Su trucchi e tranelli in C++ – Myers, Effective C++, Addison Wesley – Myers, More Effective C++, Addison Wesley – Coplien, Advanced C++, Addison Wesley • Su STL – Glass, Schuchert, The STL <PRIMER>, Prentice Hall – Ammeraal, Wiley, STL for C++ Programmers – Musser, Saini, STL Tutorial and Reference Guide, Addison Wesley • Sui Design Patterns – Gamma, Helm, Johnson, Vlissides, Design Patterns, Addison Wesley Laboratorio di Informatica – Antonio Monteleone 8