METODOLOGIE DI PROGRAMMAZIONE

Obiettivi formativi

Obiettivi generali: Apprendimento dei concetti della programmazione orientata agli oggetti mediante il linguaggio di programmazione Java. Obiettivi specifici: I concetti fondamentali della programmazione orientata agli oggetti: classi e oggetti, incapsulamento, ereditarietà, polimorfismo, binding statico e dinamico, i design pattern. La programmazione funzionale. Gli strumenti e le metodologie di base della progettazione software tramite un linguaggio orientato agli oggetti. Il linguaggio Java. Conoscenza e comprensione: Conoscenza dei costrutti dei linguaggi di programmazione orientata agli oggetti, con particolare riferimento al linguaggio Java. Comprensione di un programma Java. Capacità di scrittura di un programma Java di piccole e medie dimensioni. Applicare conoscenza e comprensione: Essere in grado di applicare le metodologie di base per affrontare la progettazione di sistemi software di grandezza medio-piccola. Saper usare i principali strumenti di sviluppo per realizzare tali sistemi in Java. Capacità critiche e di giudizio: Capacità di identificare istruzioni, costrutti o pattern errati o inefficienti così come corretti o efficienti in Java. Capacità comunicative: Illustrazione del progetto sviluppato. Capacità di apprendimento successivo: Capacità di apprendere e applicare nuove tecniche di programmazione a partire da quelle apprese durante il corso.

Canale 1
MATTIA SAMORY Scheda docente

Programmi - Frequenza - Esami

Programma
Syllabus: - Introduzione alla programmazione a oggetti - Hello, World! La REPL in Java 9 - Tipi di dato fondamentali - Introduzione a JRE, JDK ed Eclipse - Conversioni di tipo - Concetti fondamentali di programmazione orientata agli oggetti - Incapsulamento e inizializzazione di default - La classe String - Riferimenti a oggetti, heap & stack, metodi statici - Strutture di controllo; costrutti iterativi - Iterazione; array - Costanti ed enumerazioni - Ereditarietà, classi e metodi astratti. Le parole chiave this e super nei costruttori - Overloading e overriding. Visibilità: public, private, protected e default. - Ereditarietà vs. composizione. - Polimorfismo. Downcasting e upcasting. - La classe Object - La parola chiave final. - Interfacce. Differenze con le classi astratte. Ereditarietà multipla. Interfacce notevoli. - Programmazione funzionale: interfacce funzionali ed espressioni lambda. Riferimenti a metodi. - Stream ed espressioni lambda. - Classi top-level, annidate statiche e interne - Introduzione alla modularizzazione Java 9 - Eccezioni: try-catch-finally. Politica catch-or-declare. Parole chiave throw e throws. Le classi Throwable, Exception ed Error. Eccezioni checked e unchecked. - Collezioni: gerarchia, classi fondamentali e loro metodi. Tre modi per iterare su una collezione. Iterable e Iterator. Interfaccia Comparable. Ordinamento con Comparable e Comparator - Collezioni: insiemi e mappe senza ordinamento, con ordinamento natural e con ordinamento di inserimento. Metodi. Classi Arrays e Collections. La classe pila Stack e l'interfaccia coda Queue. - Implementazione mediante LinkedList - Input/Output - Ricorsione in Java. Uso dell'overloading. - Uguaglianza in Java. - Tipi generici. - Design pattern: strategy, observer, factory, decorator, callback, MVC. - Reflection. La classe Class.
Prerequisiti
Non ci sono propedeuticità formali, tuttavia è consigliabile aver superato o almeno frequentato il corso di Fondamenti di Programmazione.
Testi di riferimento
La pagina del corso include tutto il materiale didattico necessario: video, slide ed eserciziari. Tuttavia, si consiglia di fare riferimento ad almeno un testo tra quelli consigliati [1, 2, 3].[1] Claudio De Sio Cesari. Manuale di Java 9 - Programmazione orientata agli oggetti con Java standard edition 8 Hoepli, 2018.[2] Herbert Schildt. Java: The Complete Reference, eleventh edition. Mcgraw-Hill Osborne Media, 2018.[3] Cay S. Horstmann. Concetti di informatica e fondamenti di Java. Apogeo, 7a edizione, 2019.
Modalità insegnamento
Il corso prevede lezioni e laboratori.
Frequenza
La partecipazione sincrona alle attività del corso non è obbligatoria.
Modalità di esame
Il calendario degli appelli di esame è consultabile al seguente link: https://www.studiareinformatica.uniroma1.it/appelli-d-esame L' esame consta di una prova scritta e di un progetto: Prova scritta: da svolgere a partire dalla sessione estiva. Consiste di domande a risposta aperta e di esercizi. L'obiettivo è di verificare la preparazione degli studenti ed in particolare le conoscenze acquisite. Progetto: le specifiche del progetto saranno rese disponibili durante il corso. Consiste nello sviluppo di un software con il linguaggio Java. Il progetto viene svolto autonomamente dagli studenti o in gruppi di al massimo 2/3 persone. L'obiettivo è di verificare le capacità di programmazione con il linguaggio Java acquisite durante il corso. L'esame è considerato superato con successo se si ottiene la sufficienza (ovvero 18/30) sia nella prova scritta che nel progetto. Il voto finale è ottenuto calcolando la media ponderata dei voti ottenuti: 60% prova scritta e 40% progetto. Le due prove possono essere superate in modo indipendente (ovvero in date differenti) e in qualsiasi ordine. Tuttavia la validità dei voti ottenuti nelle due prove termina con l'ultima sessione dell'anno accademico (ovvero entro la sessione di gennaio-febbraio dell'anno seguente o, nel caso di studenti lavoratori/fuori corso ecc., nella sessione di marzo-aprile). La consegna del progetto è possibile solo fino a febbraio (l'appello di marzo è solamente per la prova scritta). La prenotazione su Infostud è necessaria per il sostenimento della prova scritta o per la verbalizzazione finale (in caso contrario, la verbalizzazione sarà rimandata all'appello successivo), ma non per la discussione del solo progetto.
Modalità di erogazione
Il corso prevede lezioni di teoria e laboratori
MATTIA SAMORY Scheda docente

Programmi - Frequenza - Esami

Programma
Syllabus: - Introduzione alla programmazione a oggetti - Hello, World! La REPL in Java 9 - Tipi di dato fondamentali - Introduzione a JRE, JDK ed Eclipse - Conversioni di tipo - Concetti fondamentali di programmazione orientata agli oggetti - Incapsulamento e inizializzazione di default - La classe String - Riferimenti a oggetti, heap & stack, metodi statici - Strutture di controllo; costrutti iterativi - Iterazione; array - Costanti ed enumerazioni - Ereditarietà, classi e metodi astratti. Le parole chiave this e super nei costruttori - Overloading e overriding. Visibilità: public, private, protected e default. - Ereditarietà vs. composizione. - Polimorfismo. Downcasting e upcasting. - La classe Object - La parola chiave final. - Interfacce. Differenze con le classi astratte. Ereditarietà multipla. Interfacce notevoli. - Programmazione funzionale: interfacce funzionali ed espressioni lambda. Riferimenti a metodi. - Stream ed espressioni lambda. - Classi top-level, annidate statiche e interne - Introduzione alla modularizzazione Java 9 - Eccezioni: try-catch-finally. Politica catch-or-declare. Parole chiave throw e throws. Le classi Throwable, Exception ed Error. Eccezioni checked e unchecked. - Collezioni: gerarchia, classi fondamentali e loro metodi. Tre modi per iterare su una collezione. Iterable e Iterator. Interfaccia Comparable. Ordinamento con Comparable e Comparator - Collezioni: insiemi e mappe senza ordinamento, con ordinamento natural e con ordinamento di inserimento. Metodi. Classi Arrays e Collections. La classe pila Stack e l'interfaccia coda Queue. - Implementazione mediante LinkedList - Input/Output - Ricorsione in Java. Uso dell'overloading. - Uguaglianza in Java. - Tipi generici. - Design pattern: strategy, observer, factory, decorator, callback, MVC. - Reflection. La classe Class.
Prerequisiti
Familiarità con i concetti di base della programmazione, come quelli trattati nel corso di Fondamenti di Programmazione.
Testi di riferimento
Il materiale didattico verra` messo a disposizione degli studenti tramite il sito del corso (eventuali registrazioni, slide, ed eserciziari). Tuttavia, si consiglia di fare riferimento ad almeno un testo tra quelli consigliati [1, 2, 3].
Frequenza
La partecipazione sincrona alle attività del corso non è obbligatoria ma consigliata.
Modalità di esame
L'esame consiste in una prova scritta, una prova orale ed un progetto: Prova scritta: da svolgere a partire dalla sessione estiva. Progetto: le specifiche del progetto saranno rese disponibili durante il corso. Nel caso in cui il progetto permetta lo svolgimento di gruppo, il progetto può essere svolto individualmente o, se il progetto lo consente, da un gruppo di al più 2 studenti. Il superamento del progetto richiede, oltre alla consegna di ciò che è richiesto dalle specifiche, anche una discussione individuale del progetto. Il progetto può essere consegnato 5 giorni prima della data dell'esame SCRITTO che si intende sostenere. Il voto relativo al progetto dipende sia dal materiale consegnato che dalla discussione orale. Se ci sono significativi indizi che portano a credere che il progetto consegnato sia stato copiato in tutto o in parte, il progetto è considerato nullo per tutti gli studenti coinvolti, incluso chi ha permesso di copiare. Prova orale: da svolgere dopo aver passato sia la prova scritta e dopo aver consegnato il progetto. L'obiettivo della prova orale è sia di verificare le conoscenze acquisite nel corso sia di discutere con il docente il progetto presentato. L'esame è considerato superato con successo se si ottiene la sufficienza (ovvero 18/30) sia nella prova scritta che nel progetto. Il voto finale è ottenuto calcolando la media ponderata dei voti ottenuti: 60% prova scritta e 40% progetto. Le due prove possono essere superate in modo indipendente (ovvero in date differenti) e in qualsiasi ordine. Tuttavia la validità dei voti ottenuti nelle due prove termina con l'ultima sessione dell'anno accademico (ovvero entro la sessione di gennaio-febbraio dell'anno seguente o, nel caso di studenti lavoratori/fuori corso ecc., nella sessione di marzo-aprile). La prenotazione su Infostud è necessaria per il sostenimento della prova scritta o per la prova orale (verbalizzazione finale); in caso contrario, la verbalizzazione sarà rimandata all'appello successivo.
Bibliografia
[1] Claudio De Sio Cesari. Manuale di Java 9 - Programmazione orientata agli oggetti con Java standard edition 8 Hoepli, 2018.[2] Herbert Schildt. Java: The Complete Reference, eleventh edition. Mcgraw-Hill Osborne Media, 2018.[3] Cay S. Horstmann. Concetti di informatica e fondamenti di Java. Apogeo, 7a edizione, 2019.
MASSIMO LA MORGIA Scheda docente

Programmi - Frequenza - Esami

Programma
Syllabus: - Introduzione alla programmazione a oggetti - Hello, World! La REPL in Java 9 - Tipi di dato fondamentali - Introduzione a JRE, JDK ed Eclipse - Conversioni di tipo - Concetti fondamentali di programmazione orientata agli oggetti - Incapsulamento e inizializzazione di default - La classe String - Riferimenti a oggetti, heap & stack, metodi statici - Strutture di controllo; costrutti iterativi - Iterazione; array - Costanti ed enumerazioni - Ereditarietà, classi e metodi astratti. Le parole chiave this e super nei costruttori - Overloading e overriding. Visibilità: public, private, protected e default. - Ereditarietà vs. composizione. - Polimorfismo. Downcasting e upcasting. - La classe Object - La parola chiave final. - Interfacce. Differenze con le classi astratte. Ereditarietà multipla. Interfacce notevoli. - Programmazione funzionale: interfacce funzionali ed espressioni lambda. Riferimenti a metodi. - Stream ed espressioni lambda. - Classi top-level, annidate statiche e interne - Introduzione alla modularizzazione Java 9 - Eccezioni: try-catch-finally. Politica catch-or-declare. Parole chiave throw e throws. Le classi Throwable, Exception ed Error. Eccezioni checked e unchecked. - Collezioni: gerarchia, classi fondamentali e loro metodi. Tre modi per iterare su una collezione. Iterable e Iterator. Interfaccia Comparable. Ordinamento con Comparable e Comparator - Collezioni: insiemi e mappe senza ordinamento, con ordinamento natural e con ordinamento di inserimento. Metodi. Classi Arrays e Collections. La classe pila Stack e l'interfaccia coda Queue. - Implementazione mediante LinkedList - Input/Output - Ricorsione in Java. Uso dell'overloading. - Uguaglianza in Java. - Tipi generici. - Design pattern: strategy, observer, factory, decorator, callback, MVC. - Reflection. La classe Class.
Prerequisiti
Non ci sono propedeuticità formali, tuttavia è consigliabile aver superato o almeno frequentato il corso di Fondamenti di Programmazione.
Testi di riferimento
La pagina del corso include tutto il materiale didattico necessario: video, slide ed eserciziari. Tuttavia, si consiglia di fare riferimento ad almeno un testo tra quelli consigliati [1, 2, 3].[1] Claudio De Sio Cesari. Manuale di Java 9 - Programmazione orientata agli oggetti con Java standard edition 8 Hoepli, 2018.[2] Herbert Schildt. Java: The Complete Reference, eleventh edition. Mcgraw-Hill Osborne Media, 2018.[3] Cay S. Horstmann. Concetti di informatica e fondamenti di Java. Apogeo, 7a edizione, 2019.
Modalità insegnamento
Il corso prevede lezioni e laboratori.
Frequenza
La partecipazione sincrona alle attività del corso non è obbligatoria.
Modalità di esame
Il calendario degli appelli di esame è consultabile al seguente link: https://www.studiareinformatica.uniroma1.it/appelli-d-esame L' esame consta di una prova scritta e di un progetto: Prova scritta: da svolgere a partire dalla sessione estiva. Consiste di domande a risposta aperta e di esercizi. L'obiettivo è di verificare la preparazione degli studenti ed in particolare le conoscenze acquisite. Progetto: le specifiche del progetto saranno rese disponibili durante il corso. Consiste nello sviluppo di un software con il linguaggio Java. Il progetto viene svolto autonomamente dagli studenti o in gruppi di al massimo 2/3 persone. L'obiettivo è di verificare le capacità di programmazione con il linguaggio Java acquisite durante il corso. L'esame è considerato superato con successo se si ottiene la sufficienza (ovvero 18/30) sia nella prova scritta che nel progetto. Il voto finale è ottenuto calcolando la media ponderata dei voti ottenuti: 60% prova scritta e 40% progetto. Le due prove possono essere superate in modo indipendente (ovvero in date differenti) e in qualsiasi ordine. Tuttavia la validità dei voti ottenuti nelle due prove termina con l'ultima sessione dell'anno accademico (ovvero entro la sessione di gennaio-febbraio dell'anno seguente o, nel caso di studenti lavoratori/fuori corso ecc., nella sessione di marzo-aprile). La consegna del progetto è possibile solo fino a febbraio (l'appello di marzo è solamente per la prova scritta). La prenotazione su Infostud è necessaria per il sostenimento della prova scritta o per la verbalizzazione finale (in caso contrario, la verbalizzazione sarà rimandata all'appello successivo), ma non per la discussione del solo progetto.
Modalità di erogazione
Il corso prevede lezioni di teoria e laboratori
MASSIMO LA MORGIA Scheda docente
Canale 2
STEFANO FARALLI Scheda docente

Programmi - Frequenza - Esami

Programma
Syllabus: - Introduzione alla programmazione a oggetti - Hello, World! La REPL in Java 9 - Tipi di dato fondamentali - Introduzione a JRE, JDK ed Eclipse - Conversioni di tipo - Concetti fondamentali di programmazione orientata agli oggetti - Incapsulamento e inizializzazione di default - La classe String - Riferimenti a oggetti, heap & stack, metodi statici - Strutture di controllo; costrutti iterativi - Iterazione; array - Costanti ed enumerazioni - Ereditarietà, classi e metodi astratti. Le parole chiave this e super nei costruttori - Overloading e overriding. Visibilità: public, private, protected e default. - Ereditarietà vs. composizione. - Polimorfismo. Downcasting e upcasting. - La classe Object - La parola chiave final. - Interfacce. Differenze con le classi astratte. Ereditarietà multipla. Interfacce notevoli. - Programmazione funzionale: interfacce funzionali ed espressioni lambda. Riferimenti a metodi. - Stream ed espressioni lambda. - Classi top-level, annidate statiche e interne - Introduzione alla modularizzazione Java 9 - Eccezioni: try-catch-finally. Politica catch-or-declare. Parole chiave throw e throws. Le classi Throwable, Exception ed Error. Eccezioni checked e unchecked. - Collezioni: gerarchia, classi fondamentali e loro metodi. Tre modi per iterare su una collezione. Iterable e Iterator. Interfaccia Comparable. Ordinamento con Comparable e Comparator - Collezioni: insiemi e mappe senza ordinamento, con ordinamento natural e con ordinamento di inserimento. Metodi. Classi Arrays e Collections. La classe pila Stack e l'interfaccia coda Queue. - Implementazione mediante LinkedList - Input/Output - Ricorsione in Java. Uso dell'overloading. - Uguaglianza in Java. - Tipi generici. - Design pattern: strategy, observer, factory, decorator, callback, MVC. - Reflection. La classe Class.
Prerequisiti
Non ci sono propedeuticità formali, tuttavia è consigliabile aver superato o almeno frequentato il corso di Fondamenti di Programmazione.
Testi di riferimento
La pagina del corso include tutto il materiale didattico necessario: video, slide ed eserciziari. Tuttavia, si consiglia di fare riferimento ad almeno un testo tra quelli consigliati [1, 2, 3].[1] Claudio De Sio Cesari. Manuale di Java 9 - Programmazione orientata agli oggetti con Java standard edition 8 Hoepli, 2018.[2] Herbert Schildt. Java: The Complete Reference, eleventh edition. Mcgraw-Hill Osborne Media, 2018.[3] Cay S. Horstmann. Concetti di informatica e fondamenti di Java. Apogeo, 7a edizione, 2019.
Modalità insegnamento
Il corso prevede lezioni e laboratori.
Frequenza
La partecipazione sincrona alle attività del corso non è obbligatoria.
Modalità di esame
Il calendario degli appelli di esame è consultabile al seguente link: https://www.studiareinformatica.uniroma1.it/appelli-d-esame L' esame consta di una prova scritta e di un progetto: Prova scritta: da svolgere a partire dalla sessione estiva. Consiste di domande a risposta aperta e di esercizi. L'obiettivo è di verificare la preparazione degli studenti ed in particolare le conoscenze acquisite. Progetto: le specifiche del progetto saranno rese disponibili durante il corso. Consiste nello sviluppo di un software con il linguaggio Java. Il progetto viene svolto autonomamente dagli studenti o in gruppi di al massimo 2/3 persone. L'obiettivo è di verificare le capacità di programmazione con il linguaggio Java acquisite durante il corso. L'esame è considerato superato con successo se si ottiene la sufficienza (ovvero 18/30) sia nella prova scritta che nel progetto. Il voto finale è ottenuto calcolando la media ponderata dei voti ottenuti: 60% prova scritta e 40% progetto. Le due prove possono essere superate in modo indipendente (ovvero in date differenti) e in qualsiasi ordine. Tuttavia la validità dei voti ottenuti nelle due prove termina con l'ultima sessione dell'anno accademico (ovvero entro la sessione di gennaio-febbraio dell'anno seguente o, nel caso di studenti lavoratori/fuori corso ecc., nella sessione di marzo-aprile). La consegna del progetto è possibile solo fino a febbraio (l'appello di marzo è solamente per la prova scritta). La prenotazione su Infostud è necessaria per il sostenimento della prova scritta o per la verbalizzazione finale (in caso contrario, la verbalizzazione sarà rimandata all'appello successivo), ma non per la discussione del solo progetto.
Modalità di erogazione
Il corso prevede lezioni di teoria e laboratori
STEFANO FARALLI Scheda docente

Programmi - Frequenza - Esami

Programma
Syllabus: - Introduzione alla programmazione a oggetti - Hello, World! La REPL in Java 9 - Tipi di dato fondamentali - Introduzione a JRE, JDK ed Eclipse - Conversioni di tipo - Concetti fondamentali di programmazione orientata agli oggetti - Incapsulamento e inizializzazione di default - La classe String - Riferimenti a oggetti, heap & stack, metodi statici - Strutture di controllo; costrutti iterativi - Iterazione; array - Costanti ed enumerazioni - Ereditarietà, classi e metodi astratti. Le parole chiave this e super nei costruttori - Overloading e overriding. Visibilità: public, private, protected e default. - Ereditarietà vs. composizione. - Polimorfismo. Downcasting e upcasting. - La classe Object - La parola chiave final. - Interfacce. Differenze con le classi astratte. Ereditarietà multipla. Interfacce notevoli. - Programmazione funzionale: interfacce funzionali ed espressioni lambda. Riferimenti a metodi. - Stream ed espressioni lambda. - Classi top-level, annidate statiche e interne - Introduzione alla modularizzazione Java 9 - Eccezioni: try-catch-finally. Politica catch-or-declare. Parole chiave throw e throws. Le classi Throwable, Exception ed Error. Eccezioni checked e unchecked. - Collezioni: gerarchia, classi fondamentali e loro metodi. Tre modi per iterare su una collezione. Iterable e Iterator. Interfaccia Comparable. Ordinamento con Comparable e Comparator - Collezioni: insiemi e mappe senza ordinamento, con ordinamento natural e con ordinamento di inserimento. Metodi. Classi Arrays e Collections. La classe pila Stack e l'interfaccia coda Queue. - Implementazione mediante LinkedList - Input/Output - Ricorsione in Java. Uso dell'overloading. - Uguaglianza in Java. - Tipi generici. - Design pattern: strategy, observer, factory, decorator, callback, MVC. - Reflection. La classe Class.
Prerequisiti
Non ci sono propedeuticità formali, tuttavia è consigliabile aver superato o almeno frequentato il corso di Fondamenti di Programmazione.
Testi di riferimento
La pagina del corso include tutto il materiale didattico necessario: video, slide ed eserciziari. Tuttavia, si consiglia di fare riferimento ad almeno un testo tra quelli consigliati [1, 2, 3].[1] Claudio De Sio Cesari. Manuale di Java 9 - Programmazione orientata agli oggetti con Java standard edition 8 Hoepli, 2018.[2] Herbert Schildt. Java: The Complete Reference, eleventh edition. Mcgraw-Hill Osborne Media, 2018.[3] Cay S. Horstmann. Concetti di informatica e fondamenti di Java. Apogeo, 7a edizione, 2019.
Modalità insegnamento
Il corso prevede lezioni e laboratori.
Frequenza
La partecipazione sincrona alle attività del corso non è obbligatoria.
Modalità di esame
Il calendario degli appelli di esame è consultabile al seguente link: https://www.studiareinformatica.uniroma1.it/appelli-d-esame L' esame consta di una prova scritta e di un progetto: Prova scritta: da svolgere a partire dalla sessione estiva. Consiste di domande a risposta aperta e di esercizi. L'obiettivo è di verificare la preparazione degli studenti ed in particolare le conoscenze acquisite. Progetto: le specifiche del progetto saranno rese disponibili durante il corso. Consiste nello sviluppo di un software con il linguaggio Java. Il progetto viene svolto autonomamente dagli studenti o in gruppi di al massimo 2/3 persone. L'obiettivo è di verificare le capacità di programmazione con il linguaggio Java acquisite durante il corso. L'esame è considerato superato con successo se si ottiene la sufficienza (ovvero 18/30) sia nella prova scritta che nel progetto. Il voto finale è ottenuto calcolando la media ponderata dei voti ottenuti: 60% prova scritta e 40% progetto. Le due prove possono essere superate in modo indipendente (ovvero in date differenti) e in qualsiasi ordine. Tuttavia la validità dei voti ottenuti nelle due prove termina con l'ultima sessione dell'anno accademico (ovvero entro la sessione di gennaio-febbraio dell'anno seguente o, nel caso di studenti lavoratori/fuori corso ecc., nella sessione di marzo-aprile). La consegna del progetto è possibile solo fino a febbraio (l'appello di marzo è solamente per la prova scritta). La prenotazione su Infostud è necessaria per il sostenimento della prova scritta o per la verbalizzazione finale (in caso contrario, la verbalizzazione sarà rimandata all'appello successivo), ma non per la discussione del solo progetto.
Modalità di erogazione
Il corso prevede lezioni di teoria e laboratori
MASSIMO LA MORGIA Scheda docente
MASSIMO LA MORGIA Scheda docente
  • Codice insegnamento1015884
  • Anno accademico2024/2025
  • CorsoInformatica
  • CurriculumMetodologico
  • Anno1º anno
  • Semestre2º semestre
  • SSDINF/01
  • CFU9
  • Ambito disciplinareDiscipline Informatiche