Programmazione I (M-Z)
(Obiettivi e programma del corso, modalità esami e prove itinere, testi consigliati)
Testi consigliati
-
H.M. Deitel, P. J. Deitel, C++ Fondamenti di programmazione – Maggioli Editore (2014).
-
Eckel, Thinking in C++, Vol. I, 2°Ed. (disponibile gratuitamente online)
-
Horstmann, C++ for everyone, 2°Ed. – Wiley
-
Stroustrup, Programming: Principles and Practice Using C++. (Addison-Wesley ISBN 978-0321-992789, http://www.stroustrup.com/programming.html).
-
Stroustrup, The C++ Programming Language - 4th Edition ( Addison-Wesley ISBN 978-0321563842, http://www.stroustrup.com/4th.html )
NOTE:
I testi (1), (2), (3) e (4) sono consigliati ai principianti. Il testo (1) e’ in lingua italiana (per chi la preferisce), tutti gli altri sono in Inglese (e se ne consiglia la fruizione in Inglese).
Il libro (2) e’ un buon testo per principianti ma e’ aggiornato al 2000 (prima versione ANSI/C++), tuttavia rimane un buon testo per principianti.
Il testo (3) e’ fortemente consigliato agli studenti che affrontano un corso di programmazione per la prima volta; il testo contiene una grande quantità di esercizi.
Il testo (4) e’ stato scritto dallo stesso autore del testo (5), ovvero il creatore del linguaggio C++.
Il testo (5) è di livello avanzato. Tuttavia e’ in assoluto il miglior testo in circolazione sul C++. Per chi volesse cimentarsi nell’acquisto, si consiglia di aggiungere un ulteriore supporto didattico, ovvero il testo (4), dello stesso autore, oppure uno tra i testi (1) e (3).
Canali per avvisi e comunicazioni
Materiale didattico (in continuo aggiornamento)
Argomenti trattati a lezione (A.A. 21/22)
- Introduzione al corso (Slides)
- Algoritmi, diagrammi a blocchi, pseudo-codice (Slides)
- Introduzione agli array (Slides)
- Paradigmi di programmazione, compilatori, traduttori (Slides)
- Breve introduzione al linguaggio C++ (Slides)
- Editor, compilatori, ambienti (Slides) (esempio)
- Variabili e tipi in C++ Parte 1 (Slides, Esempio)
- Stringhe e IO di base (Slides, Esempi)
- Homework PDF
- Costrutti condizionali, hand tracing (Slides, Esempi)
- Costrutti di ciclo in C++
(Slides, Esempi)
- Homework PDF
- Gestione errori di Input/Output (Slides) Esempi svolti (ZIP)
- Array in C/C++ (Slides) Esempi svolti (ZIP)
- File IO (Slides) Esempi svolti (ZIP)
- Puntatori e array in C/C++ (Slides) Esempi svolti (ZIP)
- Homework PDF1, PDF2
- Generazione di numeri pseudo-casuali in C/C++ (Slides)Esempi svolti (ZIP)
- Puntatori e array in C/C++ (Slides) Esempi svolti (ZIP)
- Invocazione di funzioni, passaggio di array a funzioni (Slides), Esempi svolti (passaggio di array a funzioni) (ZIP), Homeworks (Slides)
- Allocazione dinamica di array e matrici (Slides) Esempi svolti (ZIP)
- C-string e oggetti string (Slides) Esempi svolti (ZIP)
- Introduzione alla programmazione ad oggetti. Uso di costruttori. e metodi (Slides) Esempi svolti (ZIP)
- Relazioni Part-of e array di oggetti. (Slides) Esempi svolti (ZIP)
- Implementazione di classi in C++ e metodi (Slides) Esempi svolti (ZIP)
- Reference in C++ (Slides) Esempi svolti (ZIP)
- Static, const, friend (Slides) Esempi svolti (ZIP)
- Namespace e overloading dei metodi (Slides) Esempi svolti (ZIP)
- Creazione, copia distruzione oggetti (Slides) Esempi svolti (ZIP)
- Overloading degli operatori (Slides) Esempi svolti (ZIP)
- Ereditarieta (Slides) Esempi svolti: (ZIP)
- Funzioni virtuali, polimorfismo, RTTI, ereditarietà multipla (Slides) , Esempi svolti (ZIP)
- Funzioni e classi template (Slides) Esempi svolti: (ZIP)
- Ricerca, ordinamento e ricorsione (Slides) Esempi svolti: (ZIP)
- Strutture, enumerazioni, union, operatori bitwise (Slides) Esempi svolti: (ZIP)
Argomenti trattati a lezione (A.A. 20/21)
- Introduzione al corso (Slides)
- Algoritmi, diagrammi a blocchi, pseudo-codice (PARTE 1)(Slides)
- Algoritmi, diagrammi a blocchi, pseudo-codice (PARTE 2)(Slides)
- Introduzione agli array (PARTE 1)(Slides)
- Introduzione agli array (PARTE 2)(Slides)
- Paradigmi di programmazione, compilatori, traduttori (Slides)
- Breve introduzione al linguaggio C++ (Slides)
- Editor, compilatori, ambienti (Slides) (esempio)
- Homework PDF
- Variabili e tipi in C++ Parte 1 (Slides, Esempio)
- Variabili e tipi in C++ Parte 2 (Slides, Esempi)
- Stringhe e IO di base (Slides, Esempi)
- Costrutti condizionali Parte 1(Slides)
- Costrutti condizionali Parte 2, hand tracing(Slides, Esempi))
- Costrutti di ciclo in C++ (Slides)
- Homework PDF1, PDF2
- Gestione errori di Input/Output (Slides) Esempi svolti (ZIP)
- File IO (Slides) Esempi svolti (ZIP)
- Array in C/C++ (Slides) Esempi svolti (ZIP)
- Puntatori e array in C/C++ (Slides) Esempi svolti (ZIP)
- Generazione di numeri pseudo-casuali in C/C++ (Slides)Esempi svolti (ZIP)
- Invocazione di funzioni, passaggio di array a funzioni (Slides), Esempi svolti (passaggio di array a funzioni) (ZIP), Homeworks (Slides)
- Allocazione dinamica di array e matrici (Slides) Esempi svolti (ZIP)
- C-string e oggetti string (Slides) Esempi svolti (ZIP)
- Introduzione alla programmazione ad oggetti. Uso di costruttori. e metodi (Slides) Esempi svolti (ZIP)
- Relazioni Part-of e array di oggetti. (Slides) Esempi svolti (ZIP)
- Implementazione di classi in C++ e metodi (Slides) Esempi svolti (ZIP)
- Ricerca, ordinamento e ricorsione (Slides) Esempi svolti: (ZIP)
- Reference in C++ (Slides) Esempi svolti (ZIP)
- Static, const, friend (Slides) Esempi svolti (ZIP)
- Esercitazione in Classe (Testo) Codice (Codice)
- Namespace e overloading dei metodi (Slides) Esempi svolti (ZIP)
- Creazione, copia distruzione oggetti (Slides) Esempi svolti (ZIP)
- Homeworks (Testo)
- Overloading degli operatori (Slides) Esempi svolti (ZIP)
- Ereditarieta (Slides) Esempi svolti: (ZIP)
- Funzioni virtuali, polimorfismo, RTTI, ereditarietà multipla (Slides) , Esempi svolti (ZIP)
- Funzioni e classi template (Slides) Esempi svolti: (ZIP)
- Strutture, enumerazioni, union, operatori bitwise (Slides) Esempi svolti: (ZIP)
Argomenti trattati a lezione (A.A. 19/20)
- Introduzione al corso (Slides)
- Algoritmi, diagrammi a blocchi, pseudo-codice (Slides)
- Introduzione agli array (Slides)
- Homework PDF
- Paradigmi di programmazione, compilatori, traduttori (Slides)
- Breve introduzione al linguaggio C++ (Slides)
- Editor, compilatori, ambienti (Slides) (esempio)
- Variabili e tipi in C++, Standard IEEE 754 (Slides1, Slides2, Slides3)
- Stringhe e IO di base (Slides)
- Esempi svolti in C++ (Argomenti 7 e 8) (ZIP)
- Costrutti condizionali, hand tracing (Slides) Esempi svolti (ZIP)
- Costrutti di ciclo in C++ (Slides)
- Homework PDF1, PDF2
- Gestione errori di Input/Output (Slides) Esempi svolti (ZIP)
- File IO (Slides) Esempi svolti (ZIP)
- Array in C/C++ (Slides) Esempi svolti (ZIP)
- Generazione di numeri pseudo-casuali in C/C++ (Slides)Esempi svolti (ZIP)
- Puntatori e array in C/C++ (Slides) Esempi svolti (ZIP)
- Invocazione di funzioni, passaggio di array a funzioni (Slides), Esempi svolti (passaggio di array a funzioni) (ZIP), Homeworks (Slides)
- Allocazione dinamica di array e matrici (Slides) Esempi svolti (ZIP)
- C-string e oggetti string (Slides) Esempi svolti (ZIP)
- Introduzione alla programmazione ad oggetti. Uso di costruttori. e metodi (Slides) Esempi svolti (ZIP)
- Relazioni Part-of e array di oggetti. (Slides)
- Creazione, Copia e Distruzione di oggetti (Slides) Esempi svolti (ZIP)
- Implementazione di classi in C++ e metodi (Slides) Esempi svolti (ZIP)
- Reference in C++ (Slides) Esempi svolti (ZIP)
- Static, const, friend (Slides) Esempi svolti (ZIP)
- Namespace e overloading dei metodi (Slides) Esempi svolti (ZIP)
- Creazione, copia distruzione oggetti (Slides) Esempi svolti (ZIP)
- Overloading degli operatori (Slides) Esempi svolti (ZIP)
- Ereditarieta (Slides) Esempi svolti: (ZIP)
- Funzioni virtuali, polimorfismo, RTTI, ereditarietà multipla (Slides) , Esempi svolti (ZIP)
- Funzioni e classi template (Slides) Esempi svolti: (ZIP)
- Ricerca, ordinamento e ricorsione (Slides) Esempi svolti: (ZIP)
- Strutture, enumerazioni, union, operatori bitwise (Slides) Esempi svolti: (ZIP)
- Tutti gli argomenti sono stati presentati!
Prove scritte ed esercizi di preparazione alle prove scritte
- Raccolta di esercizi di preparazione alle prove scritte (AA 2018/2019) PDF
- Prova scritta 6 Dicembre 2018 (prova in itinere) PDF
- Prova scritta 20 Dicembre 2017 (prova in itinere) PDF
Prove di laboratorio ed esercizi di preparazione alle prove di laboratorio
- Prova di laboratorio assegnata il 14 Dicembre 2018 - AA 18/19 (classe template e overloading operatore []). PDF
- Prove di laboratorio assegnate il 15 Febbraio 2019 - AA 18/19.
- Prove di laboratorio assegnate il 28 Febbraio 2019 - AA 18/19.
- Prove di laboratorio assegnate il 29 Aprile 2019 - AA 18/19.
- Prove di laboratorio assegnate il 30 Aprile 2019 - AA 18/19.
- Prova di laboratorio mai assegnata (esempio aggregazione/composizione e overloading operatore inserimento). PDF
- Prova di laboratorio senza data (classi template e operatore unario postfisso). PDF NOTA: I costruttori vanno implementati con specificatore di accesso public