DARIO DI NUCCI | PROGRAMMAZIONE OBJECT ORIENTED
DARIO DI NUCCI PROGRAMMAZIONE OBJECT ORIENTED
cod. 0512100053
PROGRAMMAZIONE OBJECT ORIENTED
0512100053 | |
DIPARTIMENTO DI INFORMATICA | |
CORSO DI LAUREA | |
INFORMATICA | |
2024/2025 |
OBBLIGATORIO | |
ANNO CORSO 2 | |
ANNO ORDINAMENTO 2017 | |
PRIMO SEMESTRE |
SSD | CFU | ORE | ATTIVITÀ | |
---|---|---|---|---|
INF/01 | 6 | 48 | LEZIONE | |
INF/01 | 3 | 24 | LABORATORIO |
Obiettivi | |
---|---|
IL CORSO HA L'OBIETTIVO DI FORNIRE AGLI STUDENTI - UNA SOLIDA COMPRENSIONE DEI PRINCIPI FONDAMENTALI DELLA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI E DELLE SUE APPLICAZIONI PRATICHE. - LE COMPETENZE NECESSARIE PER ANALIZZARE, PROGETTARE E IMPLEMENTARE SOLUZIONI SOFTWARE EFFICACI UTILIZZANDO IL PARADIGMA OBJECT-ORIENTED. - UN'ESPERIENZA PRATICA NELL'UTILIZZO DEL LINGUAGGIO DI PROGRAMMAZIONE JAVA PER LA CREAZIONE DI APPLICAZIONI BASATE SU CLASSI E OGGETTI. - LE COMPETENZE NEL PROBLEM-SOLVING E NELLE ATTIVITÀ DI LAVORO COLLABORATIVO. 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. 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. 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. 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. 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. - RIFLETTERE CRITICAMENTE SUL PROPRIO PROCESSO DI APPRENDIMENTO, IDENTIFICANDO PUNTI DI FORZA E AREE DI MIGLIORAMENTO E ADOTTANDO MISURE CORRETTIVE PER OTTIMIZZARE LE PROPRIE PRESTAZIONI. |
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 17 (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 LE 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. |
Testi | |
---|---|
CAY S. HORSTMANN, CONCETTI DI INFORMATICA E FONDAMENTI DI JAVA, PER JAVA 8, 9, 10 E 11, SETTIMA EDIZIONE. 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: 2024-11-29]