PROGRAMMAZIONE AD OGGETTI

Gennaro PERCANNELLA PROGRAMMAZIONE AD OGGETTI

0612700009
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA
INGEGNERIA INFORMATICA
2016/2017

OBBLIGATORIO
ANNO CORSO 3
ANNO ORDINAMENTO 2012
PRIMO SEMESTRE
CFUOREATTIVITÀ
990LEZIONE
Obiettivi
L’insegnamento mira all’apprendimento del paradigma della programmazione ad oggetti. L’insegnamento è pertanto finalizzato a sviluppare negli studenti sia le competenze necessarie alla interpretazione dei documenti di progetto di un’applicazione software formalizzati in UML, sia le competenze di programmazione necessarie alla realizzazione dell’applicazione utilizzando il linguaggio Java.

Conoscenze e capacità di comprensione
Comprensione della terminologia utilizzata nell’ambito della programmazione ad oggetti, con particolare riferimento ai diagrammi UML, allo standard javadoc, ed al codice sorgente Java.

Conoscenza e capacità di comprensione applicate
Saper implementare in Java un sistema software già progettato in termini di diagrammi delle classi, e descritto in UML. Saper impiegare le classi definite nei package standard di Java, e saper progettare i diagrammi UML per semplici applicazioni.
Prerequisiti
PREREQUISITI: PER IL PROFICUO RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI È RICHIESTA UNA BUONA PRATICA DI PROGRAMMAZIONE IN C.
CORSI PROPEDEUTICI: ALGORITMI E STRUTTURE DATI
Contenuti
INTRODUZIONE.
PRESENTAZIONE DEL CORSO. IL RUOLO DELLA PROGRAMMAZIONE AD OGGETTI NELLA PRODUZIONE DEL SOFTWARE. CENNI DI INGEGNERIA DEL SOFTWARE.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/0/0)

IL MODELLO AD OGGETTI.
IL MODELLO AD OGGETTI: INCAPSULAMENTO, CLASSI ED OGGETTI. COSTRUTTORI E DISTRUTTORI. METODI DI ACCESSO. RIFERIMENTI AD OGGETTI. CLASSI E FUNZIONI AMICHE. OVERLOADING DEGLI OPERATORI.
GESTIONE DELLA MEMORIA E CREAZIONE DINAMICA DI OGGETTI. COMPOSIZIONE ED EREDITARIETÀ. CLASSI DERIVATE E REGOLE DI VISIBILITÀ. IL POLIMORFISMO. METODI VIRTUALI E CLASSI ASTRATTE. GENERICITÀ.
CENNI AL LINGUAGGIO UML E PRINCIPALI DIAGRAMMI: USE CASE DIAGRAM E CLASS DIAGRAM.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/5/5)

IL LINGUAGGIO JAVA
IL SISTEMA DEI TIPI, GLI OPERATORI E LE STRUTTURE PER IL CONTROLLO DEL FLUSSO IN JAVA. CONCETTI DI CLASSE, OGGETTO E METODI. EREDITARIETÀ E POLIMORFISMO IN JAVA. CONTROLLO DELLA VISIBILITÀ DI ATTRIBUTI E METODI. CLASSI ASTRATTE ED INTERFACCE. PACKAGE.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 8/5/5)

GESTIONE DEGLI ERRORI IN JAVA
IL MODELLO PER LA GESTIONE DELLE ECCEZIONI IN JAVA. ECCEZIONI CONTROLLATE E NONCONTROLLATE. LE CLASSI DEL JDK PER LA GESTIONE DELLE ECCEZIONI. LA GENERAZIONE DI ECCEZIONI.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 5/2/3)

COLLEZIONI DI STRUTTURE DATI IN JAVA
IMPLEMENTAZIONI ASTRATTE E CONCRETE DI LIST, QUEUE, SET E MAP. ITERATORI. IMPLEMENTAZIONE DEGLI ALGORITMI DI RICERCA ED ORDINAMENTO SULLE COLLEZIONI.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 5/2/3)

INPUT/OUTPUT IN JAVA
I/O A BYTE E A CARATTERE. I PACKAGE E LE CLASSI PER L'I/O IN JAVA. ECCEZIONI PER LA GESTIONE DELL’I/O.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 5/2/3)

PROGRAMMAZIONE CONCORRENTE IN JAVA
FONDAMENTI DI PROGRAMMAZIONE CONCORRENTE E MULTITHREAD. SINCRONIZZAZIONE DEI THREAD, CONDIVISIONE DELLE RISORSE, GESTIONE DELLE PRIORITÀ. PROGRAMMAZIONE MULTITHREAD IN JAVA.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 5/2/3)

PROGETTO DELLE INTERFACCE GRAFICHE
COMPONENTI PRINCIPALI PER LA PROGETTAZIONE DI GRAPHICAL USER INTERFACE (GUI). I PACKAGE AWT E SWING. GESTIONE DEGLI EVENTI NEL JDK 1.2. GESTIONE DEL LAYOUT.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 5/2/3)
Metodi Didattici
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE, ESERCITAZIONI IN AULA ED ESERCITAZIONI PRATICHE DI LABORATORIO. NELLE ESERCITAZIONI IN AULA VENGONO PROPOSTI E COMMENTATI ALGORITMI E LA RELATIVA CODIFICA IN LINGUAGGIO JAVA, UTILIZZANDO OPPORTUNI STRUMENTI CASE. NELLE ESERCITAZIONI IN LABORATORIO GLI STUDENTI SVOLGONO LE PRECEDENTI ATTIVITÀ IN AUTONOMIA SULLA BASE DELLE SPECIFICHE FORNITE DAL DOCENTE. L’ATTIVITÀ DI LABORATORIO PREVEDE ANCHE LO SVILUPPO DI PROGETTI REALIZZATI IN GRUPPI DI 34 PERSONE.
DURANTE IL CORSO, SONO PROPOSTE AGLI STUDENTI PROVE PRATICHE CON VALUTAZIONE DA PARTE DEL DOCENTE (CONTEST). TALI PROVE ORGANIZZATE NELL’AMBITO DELLE ORE DEL CORSO DESTINATE ALLE ESERCITAZIONI, HANNO L’OBIETTIVO DI VALUTARE LE COMPETENZE PRATICHE ACQUISITE DALLO STUDENTE ALLA DATA DELLA STESSA. ALLE PROVE È ATTRIBUITO UN PUNTEGGIO IN FASCE, NONCHÉ UNA LISTA DI INDICAZIONI PER LA CORREZIONE DEGLI ERRORI E IL MIGLIORAMENTO DELLA SOLUZIONE AL PROBLEMA PROPOSTO.
PER POTER SOSTENERE LA VERIFICA FINALE DEL PROFITTO E CONSEGUIRE I CFU RELATIVI ALL’ATTIVITÀ FORMATIVA, LO STUDENTE DOVRÀ AVERE FREQUENTATO ALMENO IL 70% DELLE ORE PREVISTE DI ATTIVITÀ DIDATTICA ASSISTITA.
Verifica dell'apprendimento
LA PROVA DI ESAME È FINALIZZATA A VALUTARE NEL SUO COMPLESSO: LA CONOSCENZA E LA CAPACITÀ DI COMPRENSIONE DEI CONCETTI PRESENTATI AL CORSO; LA CAPACITÀ DI APPLICARE TALI CONOSCENZE PER LA RISOLUZIONE DI PROBLEMI MEDIANTE L’ADOZIONE DEL PARADIGMA DELLA PROGRAMMAZIONE AD OGGETTI ED IN PARTICOLARE DEL LINGUAGGIO JAVA; L’AUTONOMIA DI GIUDIZIO, LE ABILITÀ COMUNICATIVE E LA CAPACITÀ DI APPRENDERE. ESSA CONSISTE DI UNA PROVA PRATICA E DI UN COLLOQUIO ORALE.
LA PROVA PRATICA È TESA AD ACCERTARE LE COMPETENZE NEL REALIZZARE PROGRAMMI IN LINGUAGGIO JAVA, ED È REALIZZATA DIRETTAMENTE SUL SISTEMA DI ELABORAZIONE PERSONALE. SONO CONSIDERATE CAPACITÀ MINIME QUELLE DI RISOLVERE IL PROBLEMA PROPOSTO, SENZA ERRORI SINTATTICI RILEVANTI; VICEVERSA SONO RITENUTE CAPACITÀ MASSIME QUELLA DI PERVENIRE A SOLUZIONI ALGORITMICHE CHE SIANO EFFICIENTI E CHE FACCIANO USO DELLE STRUTTURE DATI E DEGLI ALGORITMI PIÙ ADEGUATI, SFRUTTANDO OPPORTUNAMENTE LE LIBRERIE MESSE A DISPOSIZIONE DAL LINGUAGGIO. SONO ESONERATI DALLA PROVA PRATICA GLI STUDENTI CHE HANNO SUPERATO CON ESITO POSITIVO I CONTEST DURANTE IL CORSO.
IL COLLOQUIO ORALE VERTERÀ SU TUTTI GLI ARGOMENTI DEL CORSO E LA VALUTAZIONE TERRÀ CONTO DELLE CONOSCENZE DIMOSTRATE DALLO STUDENTE E DEL GRADO DEL LORO APPROFONDIMENTO, DELLA CAPACITÀ DI APPRENDERE DIMOSTRATA, DELLA QUALITÀ DELL’ESPOSIZIONE.
AI FINI DEL VOTO FINALE LA PROVA PRATICA CONTRIBUISCE AL 60% E LA PROVA ORALE AL 40%. LA LODE E' ATTRIBUITA A QUEGLI STUDENTI CHE DIMOSTRANO LA CAPACITA' DI APPLICARE LE CONOSCENZE ACQUISITE ANCHE IN CONTESTI DIFFERENTI DA QUELLI PROPOSTI DURANTE IL CORSO.
Testi
BRUCE ECKEL, "THINKING IN JAVA (4TH ED.)", PRENTICE HALL
Altre Informazioni
LA LINGUA DI INSEGNAMENTO È L’ITALIANO.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-03-11]