Descrizione generale sintetica
Il corso presenta i fondamenti di programmazione degli elaboratori adottando C++ come linguaggio di riferimento.
In particolare sono presentati i concetti base della programmazione strutturata e di quella OOP (Object-Oriented Programming) senza tralasciare la codifica di algoritmi notevoli ed alcune tecniche di progettazione di software OOP.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi
Descrizione generale sintetica
Il corso presenta i fondamenti di programmazione degli elaboratori adottando C++ come linguaggio di riferimento.
In particolare sono presentati i concetti base della programmazione strutturata e di quella OOP (Object-Oriented Programming) senza tralasciare la codifica di algoritmi notevoli ed alcune tecniche di progettazione di software OOP.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi
Lezioni frontali con l'ausilio del videoproiettore.
Lezioni frontali con l'ausilio del videoproiettore.
Nessun prerequisito.
Nessun prerequisito.
Frequenza obbligatoria, bi-settimanale secondo il calendario pubblicato in www.dmi.unict.it
Frequenza obbligatoria, bi-settimanale secondo il calendario pubblicato in www.dmi.unict.it
Modulo A − Elementi di Programmazione Imperativa ed Orientata agli Oggetti (3CFU)
Modulo B − Caratteristiche avanzate del linguaggio C++ (2,5CFU)
Modulo C − Tecniche di Programmazione (0,5CFU)
Modulo D − Progettazione di software orientato agli oggetti (3CFU)
Modulo A − Elementi di Programmazione Imperativa ed Orientata agli Oggetti (3CFU)
Modulo B − Caratteristiche avanzate del linguaggio C++ (2,5CFU)
Modulo C − Tecniche di Programmazione (0,5CFU)
Modulo D − Progettazione di software orientato agli oggetti (3CFU)
I libri (1), (2), (3) ed (6) sono consigliati ai principianti.
Il libro (3) è fortemente consigliato ai principianti per la grande quantità di esercizi presenti in esso.
I libri (4) e (5) sono di livello intermedio e sono consigliati a chi è già nota la programmazione.
Il libro (7) è di livello avanzato ed è consigliato a chi è già nota la programmazione.
I libri (1), (2), (3) ed (6) sono consigliati ai principianti.
Il libro (3) è fortemente consigliato ai principianti per la grande quantità di esercizi presenti in esso.
I libri (4) e (5) sono di livello intermedio e sono consigliati a chi è già nota la programmazione.
Il libro (7) è di livello avanzato ed è consigliato a chi è già nota la programmazione.
Tutto il materiale diattico è reso disponibile dal docente.
Tutto il materiale diattico è reso disponibile dal docente.
| PROGRAMMAZIONE I | ||
| Argomenti | Riferimenti testi | |
| 1 | Tipi di dato ed operatori | 1..7 |
| 2 | Costrutti di controllo del flusso | 1..7 |
| 3 | Array ed algoritmi notevoli (ricerca, ordinamento, fusione) | 1..7 |
| 4 | Puntatori e gestione dinamica della memoria | 1..7 |
| 5 | Ricorsione | 1..7 |
| 6 | Classi ed oggetti | 1..7 |
| 7 | Relazione di contenimento: composizione ed aggregazione | 1..7 |
| 8 | Relazione di ereditarietà | 1..7 |
| 9 | Polimorfismo | 1..7 |
| 10 | Overloading degli operatori | 1..7 |
| 11 | Codice generico | 1..7 |
| LABORATORIO | ||
| Argomenti | Riferimenti testi | |
| 1 | Tipi di dato ed operatori | 1..7 |
| 2 | Costrutti di controllo del flusso | 1..7 |
| 3 | Array ed algoritmi notevoli (ricerca, ordinamento, fusione) | 1..7 |
| 4 | Puntatori e gestione dinamica della memoria | 1..7 |
| 5 | Ricorsione | 1..7 |
| 6 | Classi ed oggetti | 1..7 |
| 7 | Relazione di contenimento: composizione ed aggregazione | 1..7 |
| 8 | Relazione di ereditarietà | 1..7 |
| 9 | Polimorfismo | 1..7 |
| 10 | Overloading degli operatori | 1..7 |
| 11 | Codice generico | 1..7 |
A tal fine l’esame è composto da tre prove indipendenti atte a verificare i precedenti punti e si intenderà superato quando tutte e tre le prove saranno valutate sufficientemente:
Le prove 1), 2) e 3) sono da considerarsi propedeutiche, pertanto, possono accedere alla prova 2) tutti coloro che abbiano superato la prova 1), e possono accedere alla prova 3) tutti coloro che abbiano superato la prova 2). Le varie prove possono essere superate in momenti differenti; la sufficienza conseguita in una certa prova sarà considerata valida per tutto l’A.A. (fino a Dicembre successivo al corso).
Ad ogni appello gli studenti potranno sostenere tutti e tre i tipi di prove, in particolare:
A tal fine l’esame è composto da tre prove indipendenti atte a verificare i precedenti punti e si intenderà superato quando tutte e tre le prove saranno valutate sufficientemente:
Le prove 1), 2) e 3) sono da considerarsi propedeutiche, pertanto, possono accedere alla prova 2) tutti coloro che abbiano superato la prova 1), e possono accedere alla prova 3) tutti coloro che abbiano superato la prova 2). Le varie prove possono essere superate in momenti differenti; la sufficienza conseguita in una certa prova sarà considerata valida per tutto l’A.A. (fino a Dicembre successivo al corso).
Ad ogni appello gli studenti potranno sostenere tutti e tre i tipi di prove, in particolare:
Alcuni testi di compiti per la prova teorica (1) e per la prova di laboratorio (2) si trovano in:
http://www.dmi.unict.it/~messina/teaching.html
Alcune tipiche domande per la prova orale (3) sono le seguenti:
Alcuni testi di compiti per la prova teorica (1) e per la prova di laboratorio (2) si trovano in:
http://www.dmi.unict.it/~messina/teaching.html
Alcune tipiche domande per la prova orale (3) sono le seguenti: