DONATELLO SANTORO | COMPLEMENTI DI PROGRAMMAZIONE A OGGETTI I

COMPLEMENTI DI PROGRAMMAZIONE A OGGETTI I
Dipartimento di Ingegneria
Laurea
SCIENZE E TECNOLOGIE INFORMATICHE
6
Lingua insegnamento
 

italiano

Obiettivi formativi e risultati di apprendimento
 

L'obiettivo finale è quello di aver acquisito (in teoria e in pratica) conoscenza dei concetti fondamentali presentati nel corso. Questi includono, in particolare:

  • strumenti di sviluppo (IDE) e sistemi di costruzione del codice o ereditarieta? e polimorfismo
  • tecniche di programmazione (date, collezioni, DAO)
  • programmazione grafica con architettura MVC
  • conoscenza adeguata e capacita? di applicazione dei concetti precedenti in linguaggio Java
  • conoscenza e utilizzo dello standard XML e JSon
  • conoscenza del linguaggio JavaScript


Prerequisiti
 

Il corso richiede la conoscenza del linguaggio di programmazione Java

Contenuti del corso
 
  • Strumenti di Sviluppo: Ambienti Integrati di Sviluppo (IDE).
  • Strumenti per la costruzione del codice. Gestione delle versioni
  • Strumenti di sviluppo per Java
  • Ereditarieta? e Polimorfismo: Introduzione. Ereditarieta?. Polimorfismo. Interfacce. Classi astratte.
  • Sintassi e semantica del linguaggio Java. Sintassi e semantica del linguaggio C#
  • Tecniche di Programmazione: Introduzione. Il processo di sviluppo (cenni).
  • Concetti avanzati della programmazione a oggetti (collezioni, classi interne, clonazione e serializzazione, thread).
  • Programmazione Grafica: Introduzione. Componenti. Eventi. Ascoltatori. Java Swing. 
  • Programmazione su XML: API per XML (DOM, SAX). Programmazione con XML in Java.
Programma esteso
 

Strumenti di Sviluppo - Introduzione  
Strumenti di Sviluppo - IDE  
Strumenti di Sviluppo - Gradle - Parte a  
Strumenti di Sviluppo - Gradle - Parte b  
Strumenti di Sviluppo - Gestione delle Versioni - Parte a  
Strumenti di Sviluppo - Gestione delle Versioni - Parte b  
Eccezioni - Introduzione  
Eccezioni - Gestione delle Eccezioni - Parte a  
Eccezioni - Gestione delle Eccezioni - Parte b  
Eccezioni - Gestione dei Flussi  
Eccezioni - Strato di Persistenza  
Eccezioni - Programmazione Difensiva  
Eccezioni - Conclusioni  
Eccezioni - Csharp  
Ereditarietà e Polimorfismo - Introduzione  
Ereditarietà e Polimorfismo - Ereditarietà  
Ereditarietà e Polimorfismo - Polimorfismo - Parte a  
Ereditarietà e Polimorfismo - Polimorfismo - Parte b  
Ereditarietà e Polimorfismo - Polimorfismo - Parte c  
Ereditarietà e Polimorfismo - Polimorfismo - Parte d  
Ereditarietà e Polimorfismo - Conclusioni  
Ereditarietà e Polimorfismo - Aspetti Metodologici  
Ereditarietà e Polimorfismo - Csharp  
Test e Correzione - Introduzione  
Test e Correzione - Tecniche di Test  
Test e Correzione - JUnit  
Test e Correzione - Debugging e Logging  
Test e Correzione - Sistemi di Logging  
Test e Correzione - Processo di Sviluppo  
Test e Correzione - Conclusioni  
Test e Correzione - Csharp  
Tecniche di Programmazione - Introduzione  
Tecniche di Programmazione - Collezioni - Parte a  
Tecniche di Programmazione - Collezioni - Parte b  
Tecniche di Programmazione - Collezioni - Parte c  
Tecniche di Programmazione - Collezioni - Parte d - Stream  
Tecniche di Programmazione - Lombok  
Tecniche di Programmazione - Thread - Introduzione  
Tecniche di Programmazione - Classi Interne  
Tecniche di Programmazione - Internazionalizzazione  
Tecniche di Programmazione - Date  
Tecniche di Programmazione - Riflessione  
Tecniche di Programmazione - Clonazione e Serializzazione  
Tecniche di Programmazione - Thread - Sincronizzazione  
Tecniche di Programmazione - Csharp - Parte a - Collezioni - Classi Nidificate - Delegati  
Tecniche di Programmazione - Csharp - Parte b - Date  
Tecniche di Programmazione - Csharp - Parte c - Clonazione e Serializzazione  
Tecniche di Programmazione - Csharp - Parte d - Riflessione  
Programmazione Grafica - Introduzione  
Programmazione Grafica - Componenti - Parte a  
Programmazione Grafica - Componenti - Parte b  
Programmazione Grafica - Eventi - Parte a  
Programmazione Grafica - Eventi - Parte b  
Programmazione Grafica - Azioni  
Programmazione Grafica - Organizzazione del Codice - Architettura di Base  
Programmazione Grafica - Organizzazione del Codice - MVC - Parte a  
Programmazione Grafica - Organizzazione del Codice - MVC - Parte b  
Programmazione Grafica - Organizzazione del Codice - MVC - Parte c  
Programmazione Grafica - Swing e Thread  
Programmazione Grafica - Progetto Interfaccia  
Programmazione Grafica - Conclusioni  
XML - Introduzione  
XML - Alberi e Documenti  
XML - Cammini e Query  
XML - Schemi - DTD  
XML - Schemi - XMLSchema  
Serializzazione - Introduzione  
Serializzazione - Librerie per JSON  
Serializzazione - Librerie per XML  
Serializzazione - Conclusioni  
Nozioni di Reti  
Protocolli e Standard - Architettura  
Protocolli e Standard - Risorse e URI - Parte a  
Protocolli e Standard - Risorse e URI - Parte b  
Protocolli e Standard - HTTP - Parte a  
Protocolli e Standard - HTTP - Parte b  
Protocolli e Standard - HTTP - Parte c - CORS  
Protocolli e Standard - Programmazione - Java

Metodi didattici
 

Il corso prevede 104h di didattica tra lezioni ed esercitazioni. In particolare sono prevista 80h di lezioni in aula e 24h di esercitazioni guidate in laboratorio.

Modalità di verifica dell'apprendimento
 

Le prove finali d’esame saranno organizzate a strati sulla base di due livelli (base/intermedio, avanzato). 

La scelta del livello ha impatto esclusivamente sulla prova pratica. 

Per la prova base/intermedio il voto massimo previsto è 25. Nella prova pratica del livello base/intermedio viene richiesto lo sviluppo di un'applicazione Swing con modello MVC, con logica applicativa standard.

Nella prova di livello avanzato è richiesta la conoscenza approfondita di tutti gli argomenti. 

Per ciascuna prova d'esame è prevista:

  • una prova scritta, basata sulla compilazione di un questionario con domande a risposta multipla
  • una prova pratica al calcolatore
  • una eventuale prova orale

Si puo' scegliere liberamente il livello di complessita' della prova pratica, senza l'obbligo di partire dalla prova base.

Durante lo svolgimento del corso saranno inoltre previste prove di verifica intercorso, scritte e al calcolatore, nelle date comunicate nella sezione "Eventi". Sarà possibile recuperare le prove non superate. La valutazione delle prove sarà basata su una scala che prevede i seguenti giudizi: gravemente insufficiente, insufficiente, sufficiente, buono, ottimo.

Al termine delle prove, gli studenti che hanno superato le prove intercorso hanno conseguito integralmente i crediti dell'insegnamento. Sulla base delle valutazioni riportate nelle prove intercorso, gli verrà attribuita una valutazione in 30mi, a cui verranno aggiunti due punti di bonus sul voto finale. A quel punto potranno verbalizzare il voto.

Testi di riferimento e di approfondimento, materiale didattico Online
 

Appunti forniti dal docente sul sito del corso

Metodi e modalità di gestione dei rapporti con gli studenti
 

Docente: Giansalvatore Mecca 
Dipartimento di Matematica, Informatica ed Economia - Università della Basilicata
E-mail: giansalvatore.mecca@gmail.com 
Web: http://www.db.unibas.it/users/mecca 
Ricevimento studenti: 
Venerdì dalle 12:30 alle 14:00
Gli studenti sono pregati di prenotarsi utilizzando il seguente servizio: https://goo.gl/P32yUo

Docente: Donatello Santoro 
Dipartimento di Matematica, Informatica ed Economia - Università della Basilicata
Studio del Docente - 2 piano DiMIE
E-mail: donatello.santoro@unibas.it 
Web: www.db.unibas.it/users/santoro/
Ricevimento studenti:
Gli orari aggiornati sono disponibili all'indirizzo: http://book.donatellosantoro.com

Date di esame previste
 

I Appello - 8,9 Luglio 2024
II Appello - 25,26 Luglio 2024
III Appello - 12,13 Settembre 2024
IV Appello - 12,13 Dicembre 2024
V Appello - 6,7 Febbraio 2025
VI Appello - 14,15 Maggio 2025

Seminari di esperti esterni
 

no

 
Fonte dati UGOV