PROGRAMMAZIONE OBJECT ORIENTED

Informatica PROGRAMMAZIONE OBJECT ORIENTED

0512100053
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2017/2018



OBBLIGATORIO
ANNO CORSO 2
ANNO ORDINAMENTO 2015
PRIMO SEMESTRE
CFUOREATTIVITÀ
756LEZIONE
330LABORATORIO


Obiettivi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE
LE PRINCIPALI CONOSCENZE ACQUISITE SARANNO:
•ACQUISIZIONE DELLE COMPETENZE DI BASE PER LA PROGETTAZIONE OBJECT-ORIENTED ATTRAVERSO LA COMPRENSIONE DEI CONCETTI DI ASTRAZIONE SUI DATI, DI INCAPSULAMENTO DELL’INFORMAZIONE, DI COESIONE E ACCOPPIAMENTO, E DI RIUTILIZZO DEL CODICE
•COMPRENSIONE DELLE DIFFERENZE TRA PARADIGMA OBJECT-ORIENTED E IL PARADIGMA PROCEDURALE
•CONOSCENZA DEL LINGUAGGIO JAVA PER LA DEFINIZIONE DI CLASSI E PER LA PROMOZIONE DEL RIUTILIZZO DEL SOFTWARE

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
LE PRINCIPALI ABILITA (OSSIA LA CAPACITA DI APPLICARE LE CONOSCENZE ACQUISITE) SARANNO:
•ANALISI DI PROBLEMI, SPECIFICA DEI REQUISITI E DEFINIZIONE DI UNA STRATEGIA RISOLUTIVA CON UN APPROCCIO ORIENTATO AGLI OGGETTI, CON LA SUA IMPLEMENTAZIONE NEL LINGUAGGIO JAVA, GARANTENDO IL GIUSTO EQUILIBRIO TRA QUALITÀ ED EFFICIENZA DEL SOFTWARE
•SVILUPPO DI PROGETTI CON ATTIVITÀ INDIVIDUALI E DI GRUPPO
Prerequisiti
BUONA CONOSCENZA DEL LINGUAGGIO C, DELLE TECNICHE DI PROGRAMMAZIONE PROCEDURALE E DELLE PROBLEMATICHE RELATIVE ALLA CODIFICA IN CODICE DI ALGORITMI SEMPLICI. CONOSCENZE DI BASE E DISCRETA FAMILIARITÀ CON UN SISTEMA OPERATIVO (WINDOWS, LINUX,...).
Contenuti
DOPO UNA INTRODUZIONE ALLA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI, EVIDENZIANDO ANCHE LE DIFFERENZE PRINCIPALI CON ALTRI APPROCCI (PER ESEMPIO QUELLO PROCEDURALE), IL CORSO SI CONCENTRERÀ SUI SEGUENTI ARGOMENTI:
•LA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI E CONCETTI DI ASTRAZIONE DEI DATI E DI INCAPSULAMENTO
•INTRODUZIONE A JAVA E AL PROCESSO DI COMPILAZIONE
•INTRODUZIONE AL TOOLKIT DI PROGRAMMAZIONE JDK 8.0
•OGGETTI, VARIABILI, RIFERIMENTI; CLASSI E METODI, COMUNICAZIONE FRA OGGETTI, PARAMETRI ESPLICITI E IMPLICITI; IL RIFERIMENTO THIS
•TIPI DI DATI FONDAMENTALI. ARITMETICA E FUNZIONI MATEMATICHE
•INVOCAZIONE DI METODI STATICI
•LA CLASSE STRING
•FILE E FLUSSI. LEGGERE E SCRIVERE FILE DI TESTO; FORMATO BINARIO E FORMATO DI TESTO
•RICHIAMI SUI COSTRUTTI DI CONTROLLO
•LE COLLEZIONI IN JAVA 
•CENNI SUI TIPI GENERICI, SUI TIPI ENUMERATIVI E SUI MECCANISMI DI ‘AUTOBOXING’ E ‘UNBOXING’. FOR GENERICO (FOR EACH)
•PROGETTAZIONE DI CLASSI. CONCETTI DI COESIONE E ACCOPPIAMENTO
•INTERFACCE E POLIMORFISMO
•EREDITARIETÀ E RIUSO
•MECCANISMO DI GESTIONE DELLE ECCEZIONI
•TESTING: VERIFICA DEL COMPORTAMENTO DEGLI OGGETTI; SCELTA DEI CASI DI TEST; INTEGRAZIONE DI CLASSI. DEBUGGING
•ESPRESSIONI LAMBDA PER LA DEFINIZIONE DI FUNZIONI ANONIME
•PROGRAMMAZIONE GRAFICA
•PROGRAMMARE AD EVENTI
Metodi Didattici
LA PARTE TEORICA DELL'INSEGNAMENTO VIENE SVILUPPATA CON LEZIONI FRONTALI IN AULA (8 CFU, 56 ORE). GLI ARGOMENTI IN PROGRAMMA VENGONO PRESENTATI CON L'AUSILIO DI PRESENTAZIONI POWERPOINT O ANALOGO, E SU OGNI CONCETTO VIENE AVVIATA UNA DISCUSSIONE CRITICA CON LA CLASSE E OVE APPROPRIATO SI EFFETTUANO CONFRONTI CON SOLUZIONI ALTERNATIVE. LA PARTE PRATICA VIENE SVOLTA IN LABORATORIO CON SPERIMENTAZIONE DIRETTA SU PC DELLE TECNICHE E DEI CONCETTI PRESENTATI NELLA PARTE TEORICA (3 CFU, 30 ORE). LA FORMULA SEGUITA CONSISTE NELL'ASSEGNARE UN ESERCIZIO, ANALIZZARE LA TRACCIA INSIEME, LASCIARE UN LASSO DI TEMPO BREVE PER PENSARE AD UNA SOLUZIONE INDIVIDUALMENTE, DISCUTERE LE SOLUZIONI INDIVIDUATE COLLEGIALMENTE E QUINDI PASSARE ALL'IMPLEMENTAZIONE IN JAVA INDIVIDUALMENTE ALLA PROPRIA POSTAZIONE. DURANTE L'INSEGNAMENTO POSSONO ESSERE ASSEGNATI DEI PROGETTI DI SVILUPPO SOFTWARE DA SVOLGERE IN LABORATORIO.
Verifica dell'apprendimento

IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO E CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. LA VERIFICA PREVEDE UNA PROVA PRATICA IN LABORATORIO ED UNA PROVA ORALE. UNA TIPICA PROVA PRATICA RICHIEDE LA SOLUZIONE DI ESERCIZI DI PROGRAMMAZIONE IN JAVA E LA LORO IMPLEMENTAZIONE CON L'AUSILIO DI UN PC, UTILIZZANDO L'AMBIENTE INTEGRATO DI SVILUPPO SOFTWARE APPRESO DURANTE LE LEZIONI (DELLA DURATA DI DUE ORE). LA PROVA ORALE CONSISTE IN UN COLLOQUIO SUI PROGETTI DISCUSSI A LEZIONE, GLI ESERCIZI SVOLTI NELLA PROVA PRATICA E GLI ARGOMENTI IN PROGRAMMA. SONO VALUTATI POSITIVAMENTE LA CAPACITÀ DI APPLICARE OPPORTUNAMENTE LE TECNICHE DI PROGRAMMAZIONE OBJECT-ORIENTED STUDIATE, REALIZZARE PROGRAMMI CORRETTI, E INDIVIDUARE GLI ASPETTI PRINCIPALI DELLE TEMATICHE PROPOSTE, NONCHÉ LA COMPRENSIONE DEI DETTAGLI TECNICI E DELLE CONSEGUENZE PRATICHE, E LA CHIAREZZA ESPOSITIVA.
Testi
CAY S. HORSTMANN, CONCETTI DI INFORMATICA E FONDAMENTI DI JAVA, SESTA EDIZIONE PER JAVA 7 E 8. APOGEO.
Altre Informazioni
LO SVOLGIMENTO DELLE ESERCITAZIONI E LA FREQUENZA DELLE LEZIONI SONO FORTEMENTE CONSIGLIATI. GLI STUDENTI DEVONO ESSERE PREPARATI A TRASCORRERE UNA CONGRUA QUANTITÀ DI TEMPO NELLO STUDIO AL DI FUORI DELLE LEZIONI. UNA PREPARAZIONE SODDISFACENTE RICHIEDE IN MEDIA DUE ORE DI STUDIO PER CIASCUNA ORA TRASCORSA IN AULA. PER LE CARATTERISTICHE DELL' INSEGNAMENTO È NECESSARIO ACQUISIRE UNA SUFFICIENTE ABILITÀ CON LA PROGRAMMAZIONE IN LINGUAGGIO JAVA E CON UN AMBIENTE DI SVILUPPO INTEGRATO. CIÒ RICHIEDE UN IMPEGNO SETTIMANALE DI CIRCA TRE ORE, OLTRE ALLE NORMALI ATTIVITÀ DI LABORATORIO, PER L’INTERA DURATA DELLE LEZIONI.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-05-14]