| TECNICHE AVANZATE DI PROGRAMMAZIONE

TECNICHE AVANZATE DI PROGRAMMAZIONE
SCUOLA di INGEGNERIA
Laurea Magistrale
INGEGNERIA INFORMATICA E DELLE TECNOLOGIE DELL'INFORMAZIONE
6
 CFUOreCicloDocente
1TECNICHE AVANZATE DI PROGRAMMAZIONE
6 48 Annuale SUMMA GIANVITO 
 
Lingua insegnamento
 

ITALIANO

Obiettivi formativi e risultati di apprendimento
 

Il corso riguarda le tecniche di programmazione avanzata in linguaggio ad oggetti (Java). Lo scopo del corso è fornire allo studente competenze per la progettazione e costruzione di sistemi applicativi di complessità medio-alta.

Alla fine del corso, il discente dovrà dimostrare di aver acquisito le seguenti capacità:

  • Analisi e progettazione di sistemi applicativi complessi;
  • Applicazione delle tecniche avanzate di programmazione. 

Le tematiche principali che il discente dovrà acquisire e padroneggiare includono:

  • Design Pattern;
  • Inversione del Controllo;
  • Thread e programmazione concorrente;
  • Metodologie di sviluppo agili e AUP;
  • Strumenti di sviluppo collaborativi;

Con specifico riferimento agli obiettivi indicati dai descrittori di Dublino relativamente alla:

  • Conoscenza e capacità di comprensione:
    • lo studente deve dimostrare di analizzare un problema di complessità medio-alta scomponendolo in sotto problemi di dimensione ridotta al fine di individuare e riconoscere l’applicabilità di pattern progettuali e tecniche di programmazione;
  • Capacità di applicare conoscenza e comprensione:
    • Lo studente deve dimostrare di essere in grado di progettare e realizzare un’applicazione che risolva un problema di complessità medio-alta;
  • Autonomia di giudizio:
    • Lo studente deve essere in grado di saper valutare in maniera autonoma e critica i possibili scenari implementativi relativamente ad un problema di complessità medio-alta, riuscendo a determinare costi e benefici per ciascuno di essi ed adottando quello in grado di conferire al sistema le caratteristiche di efficienza, efficacia, facilità di manutenzione e scalabilità;
  • Abilità comunicative:
    • Lo studente deve avere la capacita? di spiegare come intende realizzare il sistema facendo uso delle capacita? di presentare un progetto utilizzando correttamente il linguaggio scientifico-tecnico;
  • Capacita? di apprendimento:
    • Lo studente deve essere in grado di aggiornarsi di continuo attraverso la consultazione di testi, riviste, siti web e pubblicazioni di livello avanzato nell’ambito della programmazione ad oggetti, allo scopo di acquisire capacità e skill da impiegare nella definizione di soluzioni sempre più efficaci ed efficienti.
Prerequisiti
 

necessario avere acquisito ed assimilato le seguenti conoscenze fornite dal corso di “Programmazione a Oggetti II”:

Ereditarietà e polimorfismo.

Contenuti del corso
 

Design Pattern:

???????Inversione del Controllo:

???????Processo di sviluppo:

??????????????Threading e sincronizzazione;

Strumenti di sviluppo collaborativi.

Programma esteso
 

Sono di seguito elencati gli argomenti del corso con le relative unità didattiche.

Design Pattern:

  • Introduzione; Storia; Pattern e Framework; Pattern nelle API di Java; Dati e operazioni: Conclusioni.

Inversione del Controllo:

  • Introduzione; Dependency Injectio; Aspetti metodologici; AOP; Conclusioni.

Processo di sviluppo:

  • Introduzione; RUP; XP; AUP.

Threading e sincronizzazione;

Strumenti di sviluppo collaborativi.

Metodi didattici
 

Il corso prevede 48 ore di didattica frontale in aula.

Modalità di verifica dell'apprendimento
 

L’obiettivo della prova d’esame consiste nel verificare il livello di raggiungimento degli obiettivi formativi precedentemente indicati.

L’esame è diviso in 3 parti che hanno luogo in diversi giorni, nell’ordine:

  • una prova scritta sugli argomenti trattati nell’ambito del corso (progettazione e tecniche). La prova ha lo scopo di valutare lo studio della materia e la comprensione degli argomenti di base e ha carattere di selezione (lo studente che non mostri una sufficiente conoscenza degli argomenti non è ammesso alle prove successive); per superare la prova è necessario acquisire almeno 18 punti su 30. Non è consentito consultare testi o utilizzare PC, smartphone, calcolatrici ed altri dispositivi tecnologici;
  • una prova pratica al calcolatore, con l’obiettivo di valutare se lo studente ha la capacità di analisi e progettazione necessarie allo sviluppo di un sistema a complessità medio-alta. Per superare la prova è necessario acquisire almeno 18 punti su 30; Il tempo previsto per la prova è di 5 ore; è possibile consultare la documentazione di Java ed il materiale del corso (tutto il materiale è a disposizione sui PC del laboratorio). La prova pratica è strutturata in due esercizi: il primo che richiede capacità di analisi e progettazione ed il secondo che richiede capacità applicative;
  • una prova orale nella quale sarà valutata la capacità di collegare e confrontare aspetti diversi trattati durante il corso; per superare la prova è necessario acquisire almeno 18 punti su 30.

Lo studente che sostiene e supera con almeno la sufficienza (18/30) le due prove intermedie previste ha diritto ad un bonus di 2 punti sulla prova pratica finale ed è esonerato dalla prova scritta purché sfrutti il bonus sostenendo la prova pratica e la prova orale entro il III Appello (Settembre). Le prove intermedie consistono in questionari a risposta multipla ed in esercizi di analisi, progettazione e sviluppo.

Testi di riferimento e di approfondimento, materiale didattico Online
 

Appunti forniti dal docente disponibili sul sito del Corso di Laurea, http://informatica.unibas.it/moodle/

(al link “Tecniche Avanzate di Programmazione”).

Testi di riferimento:

  • Cooper -- The Design Patterns Java Companion;
  • Eckel -- Thinking in Patterns;
  • Martin Fowler -- Refactoring -- Improving the Design of Existing Code -- 1999 – Addison-Wesley

Per ulteriori dettagli consultare la sezione dedicata ai "Riferimenti Utili" riportata per i vari Argomenti del corso, sul portale della formazione Moodle sopra indicato.

Metodi e modalità di gestione dei rapporti con gli studenti
 

All’inizio del corso, dopo aver descritto obiettivi, programma e metodi di verifica, il docente mette a disposizione degli studenti il materiale didattico mediante il portale della formazione Moodle del Corso di Laurea (cfr. Sito Web), previa iscrizione al medesimo corso.

Orario di ricevimento: lmercoledì dalle 18 alle 19 presso l’aula studio “Docenti a contratto” del DiMIE (III piano). Oltre all’orario di ricevimento settimanale, il docente e? disponibile in ogni momento per un contatto con gli studenti, attraverso la propria e-mail.

Date di esame previste
 

I prova intermedia: 17 febbraio 2021

II prova intermedia: 16 giugno 2021


Appelli:

I: prima metà luglio 2021

II: seconda metà luglio 2021

III: settembre 2021

IV: dicembre 2021

V: febbraio 2022

VI: maggio 2022

Seminari di esperti esterni
 

no

 
Fonte dati UGOV