DONATELLO SANTORO | ALGORITMI E STRUTTURE DATI II

ALGORITMI E STRUTTURE DATI II
DIPARTIMENTO di MATEMATICA,INFORMATICA ed ECONOMIA
Laurea
SCIENZE E TECNOLOGIE INFORMATICHE
6
ALGORITMI E STRUTTURE DATI II
DIPARTIMENTO di MATEMATICA,INFORMATICA ed ECONOMIA
Laurea
SCIENZE E TECNOLOGIE INFORMATICHE
6
 CFUOreCicloDocente
1ALGORITMI E STRUTTURE DATI II
3 24 Secondo Semestre MECCA Giansalvatore 
2ALGORITMI E STRUTTURE DATI II
3 24 Secondo Semestre SANTORO DONATELLO 
 
Lingua insegnamento
 

italiano

Obiettivi formativi e risultati di apprendimento
 

L’obiettivo principale del corso consiste nel fornire agli studenti le basi per lo sviluppo di un’applicazione orientata agli oggetti. In particolare vengono fissati tre livelli di superamento dell’esame.


Standard Minimo per il Superamento delle Prove Finali

Il livello minimo delle conoscenze da raggiungere per il superamento delle prove finali di questo corso corrisponde ad aver acquisito conoscenza e capacità di applicazione delle tecniche fondamentali della programmazione orientata agli oggetti. Queste includono, in particolare:

  • tecniche di base della programmazione basata sugli oggetti (componenti, classi, oggetti, proprietà, metodi, costruttori, riferimenti)
  • collaborazioni tra i componenti basate sull'associazione
  • ruoli e strati applicativi; architettura applicativa di base
  • gestione delle eccezioni
  • sintassi e semantica del linguaggio Java
  • tecniche fondamentali di programmazione in Java (collezioni, flussi); principali package di Java (java.lang, java.util, java.io)
  • sintassi e semantica del linguaggio UML (diagrammi delle classi, diagrammi di collaborazione, diagrammi di sequenza, diagrammi dei casi d'uso)
  • utilizzo di sistemi di logging in Java


Standard Intermedio per il Superamento delle Prove Finali

Il livello intermedio delle conoscenze da raggiungere per il superamento delle prove finali di questo corso corrisponde ad aver acquisito conoscenza dettagliata e capacità di applicazione metodologicamente corretta di tutte le competenze previste dallo standard minimo, e in aggiunta:

  • tecniche per la costruzione di modelli concettuali
  • conoscenza del processo di sviluppo
  • sintassi e semantica del linguaggio C#
  • utilizzo di sistemi di logging in C#
  • tecniche fondamentali di programmazione in C# (collezioni, flussi) e principali namespace di .NET (System, System.Collections, System.IO)


Standard Avanzato per il Superamento delle Prove Finali

Il livello avanzato delle conoscenze da raggiungere per il superamento delle prove finali di questo corso corrisponde ad aver acquisito padronanza completa di tutte le competenze previste dallo standard intermedio, e in aggiunta:

  • capacità di progettare e sviluppare soluzioni basate su componenti per problemi complessi
  • tecniche di programmazione difensiva
  • test di regressione con l’utilizzo di JUnit ed NUnit
  • riflessione

sintassi e semantica del linguaggio JavaScript

Prerequisiti
 

Il corso richiede la conoscenza di almeno un linguaggio di programmazione procedurale

Contenuti del corso
 

Introduzione

Introduzione. Piattaforme di riferimento. La piattaforma Java.

Classi e Oggetti

Componenti. Metodi e proprietà. Classi. Oggetti. Costruttori. Riferimenti.

Sintassi e Semantica

Sintassi e semantica di Java. Convenzioni di stile.

UML

Diagramma delle classi. Diagramma dei casi d'uso. Diagrammi di collaborazione. Diagrammi di sequenza.

Responsabilità e Strati Applicativi

Incapsulamento. Interfaccia e implementazione. Responsabilità. Strati applicativi. Architettura di base. Il Processo di sviluppo.

Eccezioni

Gestione delle eccezioni. Eccezioni controllate. Programmazione difensiva.

Test e Correzione

Test. Test di regressione. Framework per i test. Debugging. Sistemi di logging.

C#

La piattaforma .NET.  Sintassi e semantica di C#. Elementi principali della piattaforma.

JavaScript

Sintassi e semantica di JavaScript. Elementi principali della piattaforma.

XML

XML. Alberi e Documenti. Cammini e Query. Schemi DTD. XML Schema.

Programma esteso
 

vedi contenuti del corso

Metodi didattici
 

Il corso prevede 52 ore di didattica tra lezioni ed esercitazioni. In particolare sono prevista 40h di lezioni in aula e 12 ore di esercitazioni guidate in laboratorio.

Modalità di verifica dell'apprendimento
 

Le prove finali d’esame saranno organizzate a strati sulla base di tre livelli (base, intermedio, avanzato). 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 può scegliere liberamente il livello di complessità della prova pratica, senza l'obbligo di partire dalla prova base.


Durante lo svolgimento del corso saranno inoltre previste tre prove di verifica intercorso, scritte e al calcolatore, nelle date comunicate nella sezione "Eventi". Contestualmente allo svolgimento della seconda e della terza prova sarà possibile recuperare anche la precedente.


La valutazione della prima e della seconda prova sarà basata su una scala che prevede i seguenti giudizi: gravemente insufficiente, insufficiente, sufficiente, buono, ottimo.


Al termine delle tre 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

Testi di riferimento:

  • Cay S. Horstmann. Concetti di Informatica e Fondamenti di Java (5a edizione)

Martin Fowler, Kendall Scott -- UML Distilled (edizione italiana)

Metodi e modalità di gestione dei rapporti con gli studenti
 

Orari di ricevimento

Prof. Giansalvatore Mecca: 12:30 – 13:30 https://goo.gl/P32yUo

Dott. Donatello Santoro: 12:30 – 13:30 https://book.donatellosantoro.com/

Date di esame previste
 
  • I prova intercorso – 16 Dicembre 2019
  • II prova intercorso – 3-4 Febbraio 2020
  • I Appello - 13-14 Febbraio 2020
  • II Appello - 27-28 Febbraio 2020
  • III Appello - 29-30 Aprile 2020
  • IV Appello - 6-7 Luglio 2020
  • V Appello - 10-11 Settembre 2020
  • VI Appello - 17-18 Dicembre 2020
Seminari di esperti esterni
 

no

 
Fonte dati UGOV