Nuova ricerca

Giacomo CABRI

Professore Ordinario presso: Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Insegnamento: Programmazione a oggetti

INFORMATICA (D.M.270/04) (Offerta formativa 2018)

Obiettivi formativi

L’obiettivo dell’insegnamento è di fornire i concetti di base della programmazione orientata agli oggetti per la costruzione di programmi modulari, riusabili e manutenibili.

Prerequisiti

Aver superato l'esame di Programmazione 2

Programma del corso

L'insegnamento affronta i seguenti argomenti:
1. Programmazione ad Oggetti: verranno illustrati i concetti generali, quali incapsulamento, ereditarieta' e polimorfismo; verranno accennati i concetti di riusabilita' e di composizione dei componenti software, illustrando il passaggio dalla programmazione modulare alla programmazione ad oggetti.
2. Il linguaggio Java: verra' utilizzato come esempio di linguaggio ad oggetti, spiegando come i concetti generali sono implementati in Java; verra' inoltre spiegato come Java puo' essere sfruttato per lo sviluppo di interfacce grafiche.

Metodi didattici

Lezioni frontali e esercitazioni in laboratorio.
Gli studenti non frequentanti possono accedere alle slide delle lezioni e al materiale delle esercitazioni.

Testi di riferimento

G. Cabri, F. Zambonelli, "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.

Verifica dell'apprendimento

Esame scritto per verificare che lo studente abbia acquisito le nozioni di astrazione, classificazione, ereditarietà e polimorfismo.
Esame orale su un progetto sviluppato in Java.

Risultati attesi

Conoscenza e comprensione
Gli studenti avranno solide conoscenze e capacità di comprensione nei seguenti ambiti:
- concrete tecniche algoritmiche, progetto e uso di strutture dati complesse;
- paradigmi e linguaggi di programmazione orientati agli oggetti;
- metodologie e tecniche di progettazione software complesso;
- tecnologie per la rappresentazione e la gestione di dati complessi, strutturati e non strutturati.

Capacità di applicare conoscenza e comprensione
La conoscenza di un'ampia gamma di tecnologie e metodi di progetto e sviluppo di software si traducono (anche e soprattutto grazie alle molte ore dedicate al laboratorio e allo sviluppo del progetto) nella capacità concreta di sviluppare soluzioni software efficienti a partire da una descrizione del problema.

Autonomia di giudizio
Lo studente avrà una buona capacità di reperire dati e informazioni utili allo svolgimento del proprio lavoro, in particolare nella formulazione di problemi e nella definizione di strategie di risoluzione dei medesimi. Sarà in grado di fornire giudizi autonomi sulle scelte operate e di valutare criticamente i risultati ottenuti, anche in funzione di tali scelte.

Abilità comunicative
Lo studente sa organizzare e presentare con chiarezza e sinteticità, oltre che con linguaggio tecnico appropriato (ove necessario), i risultati del proprio lavoro, utilizzando varie metodologie e tecnologie comunicative. Ha capacità di leggere con profitto letteratura tecnica (informatica) in lingua inglese.

Capacità di apprendimento
Gli studenti devono acquisire elevate capacità di apprendimento continuo e autonomo anche a causa delle caratteristiche della disciplina, l'Informatica, in continua e rapida evoluzione.