Luca GRECO | PROGRAMMAZIONE JAVA AVANZATA
Luca GRECO PROGRAMMAZIONE JAVA AVANZATA
cod. 0612700128
PROGRAMMAZIONE JAVA AVANZATA
0612700128 | |
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA | |
CORSO DI LAUREA | |
INGEGNERIA INFORMATICA | |
2024/2025 |
ANNO CORSO 3 | |
ANNO ORDINAMENTO 2022 | |
SECONDO SEMESTRE |
SSD | CFU | ORE | ATTIVITÀ | |
---|---|---|---|---|
ING-INF/05 | 3 | 24 | LEZIONE | |
ING-INF/05 | 2 | 16 | LABORATORIO | |
ING-INF/05 | 1 | 8 | ESERCITAZIONE |
Obiettivi | |
---|---|
L’INSEGNAMENTO INTENDE APPROFONDIRE ASPETTI AVANZATI ED INNOVATIVI DEL LINGUAGGIO JAVA. ESSO È PERTANTO FINALIZZATO A SVILUPPARE NEGLI STUDENTI LE COMPETENZE DI PROGRAMMAZIONE NECESSARIE ALLA REALIZZAZIONE DI APPLICAZIONI JAVA CON COSTRUTTI AVANZATI E CHE PREVEDONO USO DI ANNOTAZIONI, INTROSPEZIONE DEL CODICE, APPROCCI FUNZIONALI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE COMPLEMENTI AI COSTRUTTI BASE DEL LINGUAGGIO JAVA. EREDITARIETÀ LIMITATA. TIPI SEALED E RECORD. GENERICS. REFLECTION E TIPI ANNOTAZIONE. ESPRESSIONI LAMBDA E REFERENCE A METODI. STREAM API. CONCURRENCY API. ORGANIZZAZIONE MODULARE. CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE IMPLEMENTARE IN JAVA UN’APPLICAZIONE CHE PREVEDA L’USO DI ANNOTAZIONI, TIPI SEALED E RECORD. SVILUPPARE SEMPLICI PROCESSORI DI ANNOTAZIONE. SAPER USARE ESPRESSIONI LAMBDA E REFERENCE A METODI. SAPER OPERARE SU COLLEZIONI IN MANIERA SEMPLICE ED EFFICIENTE GRAZIE ALL’API STREAM. SAPER IMPLEMENTARE APPLICAZIONI JAVA MULTITHREADED CHE USANO CONCURRENCY API. |
Prerequisiti | |
---|---|
PREREQUISITI: PER IL PROFICUO RAGGIUNGIMENTO DEGLI OBIETTIVI PREFISSATI È RICHIESTA UNA BUONA PRATICA DI PROGRAMMAZIONE IN JAVA. |
Contenuti | |
---|---|
UNITÀ DIDATTICA 1: COMPLEMENTI ALLE BASI DEL LINGUAGGIO (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/2) 1. ( 2 ORE LEZIONE ): RICHIAMI SULLE BASI DELLA PROGRAMMAZIONE OBJECT ORIENTED IN LINGUAGGIO JAVA. APPROFONDIMENTO DEI COSTRUTTI DI PROGRAMMAZIONE SPECIFICI DEL LINGUAGGIO. DEDUZIONE DEL TIPO PER LE VARIABILI LOCALI. NUOVO COSTRUTTO SWITCH E POLY-EXPRESSION. 2. ( 2 ORE LEZIONE ): RICHIAMI SU EREDITARIETÀ ED INTERFACCE. CLASSI ED INTERFACCE SEALED. 3. ( 2 ORE ESERCITAZIONE ): ESEMPI ED ESERCIZI GUIDATI SU COSTRUTTI AVANZATI, SWITCH POLY-EXPRESSION, CLASSI ED INTERFACCE SEALED. 4. ( 2 ORE LABORATORIO ): ESERCITAZIONE SU COSTRUTTI AVANZATI, SWITCH POLY-EXPRESSION, CLASSI ED INTERFACCE SEALED. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONOSCERE LE REGOLE E LE CONVENZIONI PER DICHIARARE IDENTIFICATORI E DEDURRE IL TIPO DI DATO IN JAVA. CONOSCERE I COSTRUTTI DI PROGRAMMAZIONE AVANZATI E IL NUOVO SWITCH. COMPRENDERE IL CONCETTO DI EREDITARIETÀ LIMITATA. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER APPLICARE LA DEDUZIONE DEL TIPO PER LE VARIABILI LOCALI TRAMITE LA PAROLA CHIAVE VAR. SAPER UTILIZZARE IL NUOVO COSTRUTTO SWITCH. SAPER UTILIZZARE CLASSI ED INTERFACCE SEALED. UNITÀ DIDATTICA 2: TIPI ENUM, RECORD E GENERICI (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/2) 1. ( 2 ORE LEZIONE ): CARATTERISTICHE AVANZATE DEL LINGUAGGIO JAVA.I TIPI ENUMERAZIONE. EREDITARIETÀ E POLIMORFISMO SU TIPI ENUMERAZIONE. I TIPI RECORD. RECORD E CLASSI. POLIMORFISMO E RECORD. METODI, VARIABILI E COSTRUTTORI IN UN RECORD. COSTRUTTORI CANONICI. 2. ( 2 ORE LEZIONE ): RICHIAMI SUI TIPI GENERICI. EREDITARIETÀ E TIPO PARAMETRO. TYPE ERASURE. WILDCARD. METODI GENERICI. TIPI BOUNDED. 3. ( 2 ORE ESERCITAZIONE): ESEMPI ED ESERCIZI GUIDATI SU TIPI ENUMERAZIONE, TIPI RECORD E TIPI GENERICI. 3. ( 2 ORE LABORATORIO): ESERCITAZIONI SU TIPI ENUMERAZIONE, TIPI RECORD E TIPI GENERICI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENDERE L’UTILITÀ E L’UTILIZZO DEI TIPI ENUMERAZIONE. COMPRENDERE L’IMPIEGO DELLE ENUMERAZIONI CON IL COSTRUTTO SWITCH. COMPRENDERE L’UTILITÀ DEI TIPI RECORD. COMPRENDERE L’EREDITARIETÀ E IL POLIMORFISMO APPLICATI AI TIPI RECORD. COMPRENDERE L’ERASURE E COME SI APPLICA L’EREDITARIETÀ CON I TIPI GENERICI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER SFRUTTARE L’EREDITARIETÀ E IL POLIMORFISMO CON LE ENUMERAZIONI. SAPER DEFINIRE METODI, VARIABILI E COSTRUTTORI NELLE ENUMERAZIONI. SAPER USARE I TIPI RECORD. SAPER DICHIARARE COSTRUTTORI CANONICI, CANONICI COMPATTI E NON CANONICI NEI RECORD. SAPER USARE LE WILDCARD NEI TIPI GENERICI. SAPER CREARE METODI GENERICI. SAPER GESTIRE WILDCARD CAPTURE CON METODI HELPER. UNITÀ DIDATTICA 3: TIPI ANNOTAZIONE E REFLECTION (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/2) 1. ( 2 ORE LEZIONE ): INTRODUZIONE ALLA REFLECTION ED INTROSPEZIONE DEL CODICE. ISTANZIARE UN OGGETTO CLASS. REFLECTION SU CLASSI, METODI E NOMI PARAMETRI. 2. ( 2 ORE LEZIONE ): INTRODUZIONE ALLA META-PROGRAMMAZIONE. I TIPI ANNOTAZIONE: DEFINIZIONE, USO E PROCESSAMENTO. META-ANNOTAZIONI. ANNOTAZIONI ORDINARIE, A VALORE SINGOLO E ANNOTAZIONI MARCATRICI. ANNOTAZIONI STANDARD. 3. ( 2 ORE ESERCITAZIONE ): ESEMPI ED ESERCIZI GUIDATI SU REFLECTION E TIPI ANNOTAZIONE. 4. ( 2 ORE LABORATORIO ): ESERCITAZIONE SU REFLECTION E TIPI ANNOTAZIONE. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENDERE IL CONCETTO DI REFLECTION ED INTROSPEZIONE DI TIPI, METODI E PARAMETRI. COMPRENDERE COSA SONO I METADATI E LA LORO UTILITÀ. COMPRENDERE L’UTILITÀ DELLE ANNOTAZIONI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER DEFINIRE NUOVI TIPI ANNOTAZIONE. SAPER CREARE UN PROCESSORE DI ANNOTAZIONI. SAPER USARE LE ANNOTAZIONI STANDARD. UNITÀ DIDATTICA 4: LAMBDA EXPRESSION E REFERENCE A METODI (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/2) 1. ( 2 ORE LEZIONE ): RICHIAMI SU LAMBDA EXPRESSION ED INTERFACCE FUNZIONALI. ESPRESSIONI LAMBDA E CLASSI ANONIME. GESTIONE DELLE ECCEZIONI. DEDUZIONE DEI TIPI PER LE ESPRESSIONI LAMBDA LOCALI. 2. ( 2 ORE LEZIONE ): REFERENCE A METODI: DEFINIZIONE. REFERENCE A METODI STATICI E DI ISTANZA. REFERENCE A COSTRUTTORE. INTERFACCE FUNZIONALI DI USO COMUNE. 3. ( 2 ORE ESERCITAZIONE ): ESEMPI ED ESERCIZI GUIDATI SU LAMBDA EXPRESSION E REFERENCE A METODI. 4. ( 2 ORE LABORATORIO ): ESERCITAZIONI SU LAMBDA EXPRESSION E REFERENCE A METODI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENDERE LA SINTASSI E LE MODALITÀ D’USO DELLE ESPRESSIONI LAMBDA. COMPRENDERE COME FUNZIONANO I REFERENCE A METODI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER DEFINIRE GESTIRE LE ESPRESSIONI LAMBDA. SAPER GESTIRE EVENTUALI ECCEZIONI ASSOCIATE AD ESPRESSIONI LAMBDA. SAPER UTILIZZARE I REFERENCE A METODI. SAPER USARE INTERFACCE FUNZIONALI DI USO COMUNE. UNITÀ DIDATTICA 5: STREAM API (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/2) 1. ( 2 ORE LEZIONE ): STREAM E PIPELINE. CLASSI OPTIONAL. SORGENTI STREAM. STREAM DA VALORI. STREAM DA ARRAY E COLLECTION. 2. ( 2 ORE LEZIONE ): OPERAZIONI AGGREGATE. FILTRARE E TRASFORMARE STREAM. OPERAZIONI TERMINALI: RICERCA E RIDUZIONE. 3. ( 2 ORE ESERCITAZIONE ): ESEMPI ED ESERCIZI GUIDATI SU STREAM API. 4. ( 2 ORE LABORATORIO ): ESERCITAZIONE SU STREAM API. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENDERE L'UTILITÀ DELLA LIBRERIA STREAM API. COMPRENDERE LE PIPELINE. CONOSCERE I METODI PRINCIPALI PER OTTENERE OGGETTI STREAM DA SORGENTI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER UTILIZZARE LE PIPELINE. SAPER UTILIZZARE I PIÙ IMPORTANTI METODI DI AGGREGAZIONE E I METODI TERMINALI. UNITÀ DIDATTICA 6: CONCURRENCY API E MODULI (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/2) 1. ( 2 ORE LEZIONE ): RICHIAMI SU MULTITHREADING. JAVA API SU CONCORRENZA. OGGETTI IMMUTABILI. LOCKS, EXECUTORS.SEMAFORI. 2. ( 2 ORE LEZIONE ): ORGANIZZAZIONE MODULARE. DIRETTIVE PRINCIPALI. SERVIZI CON SERVICE LOADER. JAR MODULARE. 3. ( 2 ORE ESERCITAZIONE): ESEMPI ED ESERCIZI GUIDATI SU CONCURRENCY API E MODULI. 4. ( 2 ORE LABORATORIO): ESERCITAZIONE SU CONCURRENCY API E MODULI. CONOSCENZE E CAPACITÀ DI COMPRENSIONE: CONOSCERE IL NUCLEO DELLA LIBRERIA SULLA CONCORRENZA. CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER UTILIZZARE CLASSI E METODI PRINCIPALI MESSI A DISPOSIZIONE DALLA LIBRERIA JAVA SULLA CONCORRENZA. TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO 24/12/12 |
Metodi Didattici | |
---|---|
CONSIDERATA LA NECESSITÀ PER GLI STUDENTI DI ACQUISIRE CONOSCENZE TEORICO-METODOLOGICHE E PROGETTUALI, L’ATTIVITÀ FORMATIVA SARÀ ARTICOLATA IN LEZIONI FRONTALI, ESERCITAZIONI INTERATTIVE. LE LEZIONI IN AULA RIGUARDERANNO TUTTI GLI ARGOMENTI DEL CORSO. LE ESERCITAZIONI INTERATTIVE SERVIRANNO A SVILUPPARE LE CAPACITÀ APPLICATE. 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, I COSTRUTTI E LE CARATTERISTICHE AVANZATE 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.LA PROVA ORALE VERTE 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 50% E LA PROVA ORALE AL 50%. 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 | |
---|---|
CLAUDIO DE SIO CESARI, “IL NUOVO JAVA. GUIDA COMPLETA ALLA PROGRAMMAZIONE MODERNA”, HOEPLI INFORMATICA TESTI ED URL DI CONSULTAZIONE ED APPROFONDIMENTO - JAVA TUTORIALS - HTTP://DOCS.ORACLE.COM/JAVASE/TUTORIAL/ MATERIALE DIDATTICO INTEGRATIVO SARA' DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTP://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO. |
Altre Informazioni | |
---|---|
L'INSEGNAMENTO E' EROGATO IN ITALIANO |
BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-12-13]