PROGRAMMAZIONE OBJECT ORIENTED

Informatica PROGRAMMAZIONE OBJECT ORIENTED

0512100053
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2020/2021

OBBLIGATORIO
ANNO CORSO 2
ANNO ORDINAMENTO 2017
PRIMO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
324LABORATORIO


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 (2 ORE DI TEORIA)
•INTRODUZIONE A JAVA E AL PROCESSO DI COMPILAZIONE (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•INTRODUZIONE AL TOOLKIT DI PROGRAMMAZIONE JDK 8.0 (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•OGGETTI, VARIABILI, RIFERIMENTI; CLASSI E METODI, COMUNICAZIONE FRA OGGETTI, PARAMETRI ESPLICITI E IMPLICITI; IL RIFERIMENTO THIS (4 ORE DI TEORIA, 2 ORE LABORATORIO)
•TIPI DI DATI FONDAMENTALI. ARITMETICA E FUNZIONI MATEMATICHE (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•INVOCAZIONE DI METODI STATICI (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•LA CLASSE STRING (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•FILE E FLUSSI. LEGGERE E SCRIVERE FILE DI TESTO; FORMATO BINARIO E FORMATO DI TESTO (2 ORE DI TEORIA, 2 ORE LABORATORIO)
•RICHIAMI SUI COSTRUTTI DI CONTROLLO (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•LE COLLEZIONI IN JAVA (2 ORE DI TEORIA, 2 ORE LABORATORIO)
•CENNI SUI TIPI GENERICI, SUI TIPI ENUMERATIVI E SUI MECCANISMI DI ‘AUTOBOXING’ E ‘UNBOXING’. FOR GENERICO (FOR EACH) (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•PROGETTAZIONE DI CLASSI. CONCETTI DI COESIONE E ACCOPPIAMENTO (4 ORE DI TEORIA, 1 ORA LABORATORIO)
•INTERFACCE E POLIMORFISMO (4 ORE DI TEORIA, 2 ORE LABORATORIO)
•EREDITARIETÀ E RIUSO (4 ORE DI TEORIA, 2 ORE LABORATORIO)
•MECCANISMO DI GESTIONE DELLE ECCEZIONI (2 ORE DI TEORIA, 2 ORE LABORATORIO)
•TESTING: VERIFICA DEL COMPORTAMENTO DEGLI OGGETTI; SCELTA DEI CASI DI TEST; INTEGRAZIONE DI CLASSI. DEBUGGING (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•ESPRESSIONI LAMBDA PER LA DEFINIZIONE DI FUNZIONI ANONIME (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•PROGRAMMAZIONE GRAFICA (2 ORE DI TEORIA, 1 ORA LABORATORIO)
•PROGRAMMARE AD EVENTI (2 ORE DI TEORIA, 1 ORA LABORATORIO)
Metodi Didattici
LA PARTE TEORICA DELL'INSEGNAMENTO VIENE SVILUPPATA CON LEZIONI FRONTALI IN AULA (6 CFU, 48 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, 24 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 UNA VERIFICA CON VALUTAZIONE IN TRENTESIMI. LA VERIFICA PREVEDE UNA PROVA PRATICA IN LABORATORIO ED UNA SUCCESSIVA PROVA ORALE. PER ACCEDERE ALLA PROVA ORALE OCCORRE SUPERARE LA
PROVA PRATICA CON UN VOTO MINIMO DI 18/30.
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 PRATICA HA L’OBIETTIVO DI VALUTARE LA CAPACITÀ ACQUISITE DAGLI STUDENTI RELATIVAMENTE ALL’ANALISI DEI PROBLEMI, ALLA SPECIFICA DEI REQUISITI E ALLA 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.
LA PROVA ORALE CONSISTE IN UN COLLOQUIO SUI PROGETTI DISCUSSI A LEZIONE, GLI ESERCIZI SVOLTI NELLA PROVA PRATICA E GLI ARGOMENTI IN PROGRAMMA (DELLA DURATA DI 20/30 MINUTI). LA PROVA ORALE MIRA A VALUTARE 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.
LA PROVA PRATICA E LA SUCCESSIVA PROVA ORALE CONCORRONO IN EGUAL MISURA A DETERMINARE IL VOTO FINALE.

DURANTE IL CORSO E POSSIBILE SVOLGERE DUE PROVE PARZIALI, RISPETTIVAMENTE DOPO META DELLE LEZIONI E A FINE SEMESTRE. CIASCUNA PROVA PESERA IL 50% SUL VOTO FINALE. LA VALUTAZIONE DELLE DUE PROVE SARA ESPRESSA IN TRENTESIMI E IL PUNTEGGIO FINALE SARA DATO DALLA MEDIA PONDERATA DELLE DUE PROVE. SE IL PUNTEGGIO FINALE E SUPERIORE A 18/30 LO STUDENTE PUO’ CONSIDERARSI ESONERATO DALLA PROVA SCRITTA. L'ESONERO VARRA ESCLUSIVAMENTE PER LA SOLA SESSIONE DI ESAME SUCCESSIVA A QUELLA DI SVOLGIMENTO DELL’INSEGNAMENTO.
Testi
CAY S. HORSTMANN, CONCETTI DI INFORMATICA E FONDAMENTI DI JAVA, SETTIMA EDIZIONE PER JAVA 8, 9, 10, 11. 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: 2020-11-20]