DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE
E SCIENZE MATEMATICHE

UNIVERSITA' DEGLI STUDI DI SIENA
 
 Webmail
Home |  Home Education |  Contacts |  UniSi   Privacy e Cookie policy

Foreign Students

Education

Insegnamento
Programmazione

 
a.a. 2017-2018
Corso Matematica
Anno 1
Semestre II
Prerequisiti/
Propedeuticita'
Conoscenza di base di Matematica e di Programmazione.
Obiettivi Conoscere i principi della programmazione orientata agli oggetti ed imparare a scrivere dei buoni programmi in un linguaggio di programmazione orientato agli oggetti (Java). Conoscere la programmazione strutturata, ed imparare a programmare Tipi di Dati Astratti, oltre ad apprendere i principi di base per il progetto di soluzioni orientate agli oggetti.
Ore 60
Crediti 6
Link corso http://www3.diism.unisi.it/~falaschi/Teaching/programmazione.html
Docente Moreno Falaschi

Programma
Contenuti del corso : Gli argomenti principali trattati durante il corso sono indicati qui di seguito. Gli esempi sono sviluppati utilizzando il linguaggio di programmazione Java. Concetti e metodologie Nozioni di base: moduli interagenti, messaggi e metodi, responsabilità, classi e istanze, gerarchie di classi ed ereditarietà, overriding di metodi, eccezioni. Progettazione orientata agli oggetti: identificazione delle componenti e definizione delle responsabilità; definizione del comportamento e delle interazioni fra moduli; specifica dell'interfaccia; concetto di stato. Benefici della programmazione orientata agli oggetti: incapsulamento delle informazioni, maggiore affidabilita' e potenzialità di riutilizzo del codice, condivisione di codice, polimorfismo, rapidità di prototipazione. Ereditarietà: sottoclassi, tipi e compatibilità per sostituzione. Specializzazione e altre forme di ereditarietà. Ereditarietà del codice ed ereditarietà del comportamento. Selezione dinamica dei metodi. Confronto fra ereditarietà e composizione relative a classi; composizione dinamica. Classi nidificate. Clonazione. Polimorfismo e variabili polimorfe. Overloading. Overriding: sostituzione e raffinamento. Metodi astratti. Linguaggio di programmazione Java Caratteristiche e costrutti principali del linguaggio Java. Realizzazioni di classi in Java: struttura di un programma; campi per rappresentare le variabili di stato; costruttori; attributi di campi e metodi; istanziazione di oggetti; ereditarietà e interfacce. Classi interne e organizzazione del codice. Modello degli eventi in Java. Gestione delle eccezioni. Thread multiple di esecuzione e sincronizzazione. Garbage collection. Alcune caratteristiche avanzate dell'ambiente di programmazione basato su Java. Progetto di interfacce verso l'utente (GUI) attraverso la libreria Application Windowing Toolkit (AWT) di Java: componenti e layout manager. Input e output in Java. Altre classi di utilità : Math, Random, System, String. Grafica elementare in Java. Applet e programmazione per la rete. Discussione di esempi in Java. Concetti ricorrenti: Livelli di astrazione; astrazione sui dati; stato; approccio object-oriented; incapsulamento dell'informazione; riutilizzo del codice.

Testi consigliati
Stefano Mizzaro. Introduzione alla programmazione con il linguaggio Java, II edizione (o successiva). Franco Angeli, 2000, ISBN: 8-846-41696-1 Appunti tratti dalle lezioni.

Username:
Password:


Dipartimento di Ingegneria dell'Informazione e Scienze Matematiche - Via Roma, 56 53100 SIENA - Italy