Programmazione Ad Oggetti
Indice
Informazioni sul corso
Obiettivi del corso e risultati di apprendimento specifici Il corso di Programmazione Ad Oggetti è rivolto agli studenti del secondo anno del corso di laurea in Informatica.
Obiettivo primario del corso è quello di fornire un'adeguata conoscenza dei concetti avanzati della programmazione orientata agli oggetti e dei tipi di dati astratti. Lo studente acquisirà, inoltre, la capacità di implementare nel Linguaggio C++ algoritmi e strutture dati che sfruttano tutte le potenzialità della programmazione ad oggetti e fanno uso dell'allocazione dinamica della memoria.
Il corso prevede un'ampia attività di laboratorio dove lo studente familiarizzerà con ambienti di programmazione C++.
Docente: dott.ssa Simona Perri
Orario di ricevimento: riceve ogni MERCOLEDÌ mattina su appuntamento.
Contatti: Dipartimento di Matematica, Università della Calabria, 87030 Rende (CS) - Ufficio: cubo 31B, 2°piano. Telefono: +39 0984 496471 Fax: +39 0984 496410
mailto:perri@mat.unical.it
Esercitatori:
- dott.ssa Jessica Zangari
Orario di ricevimento: riceve ogni MARTEDÌ pomeriggio su appuntamento.
Contatti: Dipartimento di Matematica, Università della Calabria, 87030 Rende (CS). Ufficio: cubo 31B, 2°piano.
mailto:zangari@mat.unical.it
- dott.ssa Pierangela Bruno
Orario di ricevimento: riceve ogni MARTEDÌ pomeriggio su appuntamento.
Contatti: Dipartimento di Matematica, Università della Calabria, 87030 Rende (CS). Ufficio: cubo 30B, 2°piano.
mailto:bruno@mat.unical.it
Avvisi
La discussione dei progetti didattici si terrà il 2 Ottobre presso lo studio della prof.ssa Perri in accordo alle prenotazioni effettuate da ciascun gruppo. La sessione mattuttina si terrà alle 10:15. La sessione pomeridiana si terrà alle ore 15:00.
Esito appello del 16 Settembre 2019 (esito16Settembre2019.pdf).
La discussione dei progetti didattici è fissata per mercoledì 2 Ottobre 2019 presso lo studio della Prof.ssa Perri. I gruppi che intendono discutere il progetto in tale data dovranno inviare il codice sorgente sviluppato entro e non oltre giovedì 26 Settembre 2019 al seguente indirizzo email: mailto:bruno@mat.unical.it. L'oggetto della mail dovrà essere "CONSEGNA PROGETTO PO". La discussione sarà divisa in due sessione la prima al mattino la seconda al pomeriggio. Per tanto, in sede di iscrizione, vi invitiamo a specificare nel seguente modulo la sessione prescelta: https://docs.google.com/forms/d/e/1FAIpQLSccZZJbJm5K_yOM2Li_5RPk2B8mGMWxWTh0GWW6Casa-HpWRg/viewform?usp=sf_link Gli orari delle due sessioni verranno comunicati in seguito in base alla frequenza raggiunta per ciascun turno.
Gli studenti che hanno sostenuto la prova scritta di Programmazione ad Oggetti del 25 Luglio 2019 potranno vedere gli elaborati venerdì 13 Settembre dalle ore 10:00 alle ore 11:00 presso lo studio della prof.ssa Perri.
Esito appello del 25 Luglio 2019 (esito25Luglio2019.pdf).
Esito appello del 3 Luglio 2019 (esito3Luglio2019.pdf).
La discussione dei progetti didattici è fissata per lunedì 29 Luglio 2019 alle ore 9.30 presso lo studio della Prof.ssa Perri. I gruppi che intendono discutere il progetto in tale data dovranno inviare il codice sorgente sviluppato entro e non oltre lunedì 22 Luglio 2019 al seguente indirizzo email: mailto:bruno@mat.unical.it. L'oggetto della mail dovrà essere "CONSEGNA PROGETTO PO".
Esito appello del 6 Aprile 2019 (esito6Aprile2019.pdf).
Gli studenti che hanno sostenuto la prova scritta di Programmazione ad Oggetti del 22 Febbraio 2019 possono vedere gli elaborati venerdì 9 Marzo dalle ore 9:30 alle ore 10:30 presso lo studio della prof. Perri.
Esito appello del 22 Febbraio 2019 (esito22Febbraio2019.pdf).
Esito appello del 30 Gennaio 2019 (esito30Gennaio2019.pdf).
La lezione di giovedì 20 dicembre 2018 è anticipata a mercoledì 19 dicembre dalle ore 15:00 alle ore 17:00 in aula MT5.
Esito appello dell'8 Novembre 2018 (esito8Novembre2018.pdf).
La lezione di giovedì 8 novembre 2018 è annullata a causa della concomitanza con l'appello straordinario di Programmazione ad Oggetti.
Per indicare la frequenza delle lezioni di laboratorio, compilare il form presente al link https://docs.google.com/forms/d/e/1FAIpQLSeryZwJSJTyUeVaCN8ocd7FMnYLJYNNHKQjPE8swww1OWozWg/viewform?usp=pp_url
Visto il Decreto Rettorale di sospensione delle attività didattiche per la giornata dell'8 ottobre 2018, la lezione di lunedì 8 ottobre 2018 è annullata. La lezione di giovedì 11 ottobre 2018 si terrà regolarmente in aula.
Gli studenti che hanno sostenuto la prova scritta di Programmazione ad Oggetti del 21 settembre 2018 possono vedere gli elaborati martedì 9 ottobre dalle ore 9:30 alle ore 10:30 presso lo studio della prof. Perri.
Esito appello del 21 settembre 2018 (esito21sett2018.pdf).
Esito appello del 27 Luglio 2018 (esito27Luglio2018.pdf).
Esito appello del 6 Luglio 2018 (esito6Luglio2018.pdf).
Materiale Didattico
Libro di testo:
- Harvey M. Deitel, Paul J. Deiter, "Fondamenti di programmazione" APOGEO
Libri consigliati:
- Stanley B. Lippman, Josée Lajoie, "C++ corso di programmazione" - Terza edizione - Addison Wesley
Ulteriore Materiale Online:
Standard C++ Library reference - http://www.cplusplus.com/reference/
Slide
Libreria Allegro (Allegro.pdf)
C++11 (c++11.pdf)
Lucidi anni precedenti (powerpoint.zip)(pdf.zip)
Strumenti di sviluppo:
Complilatore g++ (http://gcc.gnu.org/) disponibile gratuitamente per tutti i principali sistemi operativi.
- Editor: consigliamo gedit, ma va bene un qualsiasi editor di testo (non word processor!).
Si consiglia l'installazione di una qualsiasi distribuzione di Linux, ad esempio Ubuntu, (anche in una macchina virtuale, https://www.virtualbox.org/) perché queste spesso hanno installato di base il software di sviluppo sopra menzionato.
Informazioni pratiche sull'esame
L'esame consiste in tre parti:
Prova di laboratorio:
- E' una valutazione delle competenze acquisite dallo studente in laboratorio
- Richiede la realizzazione al calcolatore di un programma C++
- Il superamento determina l'ammissione alla prova scritta
- Concorre alla determinazione del voto finale
Prova scritta:
- E' una valutazione approfondita delle capacità dello studente di programmare in modo "object oriented" in C++.
- Concorre alla determinazione del voto finale
Discussione Progetto:
- E' obbligatoria per tutti gli studenti
- Concorre alla determinazione del voto finale
Esempi di appelli svolti
Progetti
Elenco progetti assegnati A.A. 2018/2019 Progetti_2018_19.pdf
Effettuare la richiesta di assegnazione di un progetto compilando il modulo presente al seguente indirizzo:
Modalità di consegna progetto e svolgimento esame
Per sostenere l'esame è necessario aver superato l'esame di Fondamenti di Informatica.
La prova di laboratorio e la prova scritta devono essere sostenute nello stesso appello. Per accedere alla prova scritta è necessario aver superato la prova di laboratorio.
La discussione del progetto deve essere fatta insieme a tutti i membri del gruppo. Il progetto può essere consegnato e discusso entro e non oltre il primo appello dell'anno accademico successivo a quello in cui il progetto è stato assegnato.
E' possibile sostenere la discussione del progetto prima di aver superato la prova di laboratorio e la prova scritta, o viceversa. Per cui è anche possibile sostenere la prova di laboratorio e scritta in un appello, e "congelare" il voto parziale ottenuto, sostenendo la discussione del progetto in uno degli appelli successivi, entro e non oltre il primo appello dell'anno accademico successivo a quello in cui il progetto è stato assegnato.
Per chi intende discutere il progetto in questa sessione invernale:
deve consegnare entro e non oltre una data che sarà prossimamente comunicata su questa stessa pagina il progetto assegnato, inviandolo per posta elettronica all'indirizzo veltri[at]mat.unical.it. La prova orale, basata sulla discussione del progetto, sarà fissata nei giorni immediatamente successivi a tale data.
Per gli studenti che NON superano la prova di laboratorio e scritta nella sessione invernale, oppure non la sostengono affatto:
chi dovesse comunque completare il progetto, potrà discuterlo in questa sessione, previa consegna nei tempi indicati. In caso di valutazione positiva, il progettosi assumerà "congelato" per tutto l'anno accademico corrente. L'esito dell'esame sarà poi ovviamente legato all'esito dello "scritto".
Domande Frequenti
E' possibile congelare l'esito della prova di laboratorio senza sostenere nello stesso appello la prova scritta?
No. La prova di laboratorio e la prova scritta devono essere sostenute nello stesso appello. Se si supera la prova di laboratorio, ma non si vuole sostenere la prova scritta, l'esito della prova di laboratorio verrà annullato e si dovrà sostenere una nuova prova di laboratorio.
E' possibile sostenere la prova scritta senza aver superato o sostenuto la prova di laboratorio?
No. Per accedere alla prova scritta è necessario superare la prova di laboratorio.
E' possibile sostenere la discussione del progetto se non si è superato l'esame di Fondamenti di Informatica?
No. Per accedere all'esame di Programmazione ad Oggetti occorre aver superato l'esame di Fondamenti di Informatica.
E' possibile sostenere le prove di laboratorio e scritta se non si è superato l'esame di Fondamenti di Informatica?
No. Per accedere all'esame di Programmazione ad Oggetti occorre aver superato l'esame di Fondamenti di Informatica.
E' possibile sostenere la discussione del progetto se non sono state sostenute o superate le prove di laboratorio e scritta?
Si. Bisogna però considerare che la discussione perde la sua validità a partire dal giorno del primo appello di Programmazione ad Oggetti dell'anno accademico successivo.
E' possibile sostenere la discussione del progetto senza gli altri membri del gruppo?
No. La discussione di ogni progetto deve essere unica e sostenuta insieme da tutti i membri del gruppo.
Gli studenti immatricolati prima dell'anno accademico 2015/2016 devono svolgere il progetto?
No. Gli studenti che si sono immatricolati prima dell'anno accademico 2015/2016 possono sostenere l'esame secondo la vecchia modalità. Per cui dovranno sostenere la prova di laboratorio, la prova scritta e una prova orale.
Se ci si è immatricolati a partire dall'anno 2015/2016, è possibile sostenere una prova orale in sostituzione della discussione del progetto?
No. La discussione di un progetto è obbligatoria per tutti gli studenti immatricolati a partire dall'anno 2015/2016.
In caso di dubbi su situazioni non riportate nelle domande, contattare i docenti per email.
Esercitazioni
Esercitazione del 1 Ottobre 2018 (Esercitazione1-10-2018.pdf)
Esercitazione del 15 Ottobre 2018 (Slides15-10-2018.pdf) (Esercitazione15-10-2018.pdf)
Esercitazione del 22 Ottobre 2018 (Slides22-10-2018.pdf) (Aggiornate con esempio di reverse_iterator) (Esercitazione22-10-2018.pdf)
Esercitazione del 25 Ottobre 2018 - Mobilificio (Mobilificio.zip)
Esercitazione del 29 Ottobre 2018 - Amazon (tracciaLab22Marzo2017.zip) (SoluzioneLab22Marzo2017.zip)
Ulteriori esercizi sulla prova di laboratorio da svolgere a casa, classe FATTURA (EserciziLab.txt)
Esercitazione del 19 Novembre 2018 (esercitazione19Novembre2018.pdf)
Esercitazione del 26 Novembre 2018 (esercitazione26Novembre2018.pdf)
Tracce d'esame precedenti
Appelli A.A. 2018/2019
Traccia 08/11/2018 scritto: (traccia8Novembre2018.pdf) - laboratorio: (tracciaLab8Novembre2018.zip)
Traccia Luglio 2018 laboratorio: (tracciaLabLuglio2018.zip)
Appelli A.A. 2017/2018
Traccia 05/02/2018 scritto: (traccia5Febbraio2018.pdf) - laboratorio: (tracciaLab5Febbraio2018.zip)
Appelli A.A. 2016/2017
Traccia 19/09/2017 - laboratorio: (tracciaLab19Settembre2017.zip)
Traccia 29/06/2017 scritto: (traccia29Giugno2017.pdf) - laboratorio: (tracciaLab29Giugno2017.zip)
Traccia 22/03/2017 - laboratorio: (tracciaLab22Marzo2017.zip) (SoluzioneLab22Marzo2017.zip)
Traccia 27/02/2017 - laboratorio: (tracciaLab27Febbraio2017.zip)
Traccia 07/02/2017 scritto: (traccia07Febbraio2017.pdf) - laboratorio: (tracciaLab07Febbraio2017.zip)
Appelli A.A. 2015/2016
Traccia 22/11/2016 scritto: (traccia22Novembre2016.pdf) - laboratorio: (tracciaLab22Novembre2016.zip)
Traccia 22/09/2016 scritto: (traccia22Settembre2016.pdf) - laboratorio: (tracciaLab22Settembre2016.zip)
Traccia 29/07/2016 scritto: (traccia29Luglio2016.pdf) - laboratorio: (tracciaLab29Luglio2016.zip)
Traccia 05/07/2016 scritto: (traccia05Luglio2016.pdf) - laboratorio: (tracciaLab05Luglio2016.zip)
Traccia 25/02/2016 scritto: (traccia25Febbraio2016.pdf) - laboratorio: (tracciaLab25Febbraio2016.zip)
Traccia 09/02/2016 scritto: (traccia09Febbraio2016.pdf) - laboratorio: (tracciaLab09Febbraio2016.zip)
Appelli A.A. 2013/2014
Traccia 30/06/2014 scritto: (traccia30Giugno2014.pdf)