PROGRAMMAZIONE OBJECT ORIENTED

Massimo FICCO PROGRAMMAZIONE OBJECT ORIENTED

0512100053
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2024/2025

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


Obiettivi
OBIETTIVO GENERALE

IL CORSO HA L’OBIETTIVO DI INTRODURRE GLI STUDENTI AL PARADIGMA DI PROGRAMMAZIONE OBJECT-ORIENTED ED IN PARTICOLARE ALL’APPRENDIMENTO DEL LINGUAGGIO JAVA, LIVELLO BASE.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE

LO STUDENTE:
- CONOSCERÀ I FONDAMENTI DISCIPLINARI DI PROGETTAZIONE OBJECT-ORIENTED, INCLUSI CONCETTI COME ASTRAZIONE DEI DATI, INCAPSULAMENTO DELL'INFORMAZIONE, COESIONE E ACCOPPIAMENTO, E RIUTILIZZO DEL CODICE.
- COMPRENDERÀ LE RELAZIONI TRA IL PARADIGMA OBJECT-ORIENTED E IL PARADIGMA PROCEDURALE.
- CONOSCERÀ IL LINGUAGGIO JAVA PER LA DEFINIZIONE DELLE CLASSI E PER PROMUOVERE IL RIUTILIZZO DEL SOFTWARE.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE

LO STUDENTE SARÀ IN GRADO DI:
- ANALIZZARE PROBLEMI, SPECIFICARE I REQUISITI E DEFINIRE UNA STRATEGIA RISOLUTIVA CON UN APPROCCIO ORIENTATO AGLI OGGETTI, IMPLEMENTANDOLA NEL LINGUAGGIO JAVA E GARANTENDO IL GIUSTO EQUILIBRIO TRA QUALITÀ ED EFFICIENZA DEL SOFTWARE.
- SPECIFICARE E SVILUPPARE PROGETTI SIA IN MODO INDIVIDUALE CHE COLLABORATIVO ALL'INTERNO DI ATTIVITÀ DI GRUPPO.

AUTONOMIA DI GIUDIZIO

LO STUDENTE SARÀ IN GRADO DI:
- VALUTARE CRITICAMENTE I DIVERSI APPROCCI ALLA RISOLUZIONE DI PROBLEMI, IDENTIFICANDO QUELLI PIÙ ADATTI ALLE ESIGENZE SPECIFICHE DEL CONTESTO.
- DISCERNERE TRA VARIE STRATEGIE DI PROGETTAZIONE E IMPLEMENTAZIONE, SCEGLIENDO QUELLA PIÙ IDONEA PER RAGGIUNGERE GLI OBIETTIVI PREFISSATI.
- VALUTARE IN MODO CRITICO LE SOLUZIONI SOFTWARE ESISTENTI, IDENTIFICANDO PUNTI DI FORZA E DI DEBOLEZZA E PROPONENDO MIGLIORAMENTI O ALTERNATIVE INNOVATIVE.

ABILITÀ COMUNICATIVE

LO STUDENTE SARÀ IN GRADO DI:
- COMUNICARE IN MODO CHIARO E EFFICACE LE PROPRIE IDEE, SIA ORALMENTE CHE PER ISCRITTO, ADATTANDO IL LINGUAGGIO E IL FORMATO ALLA TIPOLOGIA DI PUBBLICO E AL CONTESTO SPECIFICO.
- COLLABORARE IN MODO COSTRUTTIVO ALL'INTERNO DI GRUPPI DI LAVORO, PARTECIPANDO ATTIVAMENTE ALLE DISCUSSIONI, ASCOLTANDO LE OPINIONI DEGLI ALTRI E CONTRIBUENDO ALLA RICERCA DI SOLUZIONI CONDIVISE

CAPACITÀ DI APPRENDIMENTO

LO STUDENTE SARÀ IN GRADO DI:
- SVILUPPARE LA CAPACITÀ DI APPRENDERE IN MODO AUTONOMO, IDENTIFICANDO LE PROPRIE LACUNE E PIANIFICANDO ATTIVITÀ DI STUDIO MIRATE PER COLMARLE.
- ADATTARE LE PROPRIE STRATEGIE DI APPRENDIMENTO IN BASE ALLE DIVERSE SFIDE E CONTESTI.
- UTILIZZARE IN MODO EFFICACE STRATEGIE DI APPRENDIMENTO ATTIVO, COME LA RICERCA AUTONOMA DI RISORSE E LA SPERIMENTAZIONE PRATICA, PER CONSOLIDARE E AMPLIARE LE PROPRIE COMPETENZE.
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 E 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.
Orari Lezioni

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-18]