SWAP - Semantic Web Access and Personalization Research Group

Corsi.BasileMAP2122 History

Hide minor edits - Show changes to output

February 18, 2022, at 05:48 AM EST by 193.204.189.14 -
February 18, 2022, at 05:48 AM EST by 193.204.189.14 -
Changed lines 11-15 from:
* Inizio lezioni: 01/03/2022
to:
* Inizio lezioni: 02/03/2022
* Orario provvisorio:
** Lun. 09:00-11:15 (Aula B piano terra)
** Mer. 09:15-11:30 (Aula B piano terra)
** Gio. 10:45-13:00 (Aula B piano terra)
November 17, 2021, at 01:16 PM EST by 193.204.189.14 -
Added lines 1-65:
!Metodi Avanzati di Programmazione (Corso B) (A.A. 2021/2022)
!!''CdL in Informatica''

'''Docente:''' Pierpaolo Basile\\
'''CFU:''' 7+2 (86 ore, 56 teoria e 30 ore esercitazione e/o laboratorio)\\
'''Inizio lezioni:''' (secondo semestre)\\
'''Metodi di valutazione:''' prova orale e caso di studio sviluppato in parte in laboratorio, realizzato in un gruppo di massimo tre componenti\\
'''Scheda del corso:''' [[https://programmi.di.uniba.it/pluginfile.php/75104/mod_resource/content/3/MAP_B_Basile_2021_2022_pub.pdf|PDF scheda]]\\

!!News
* Inizio lezioni: 01/03/2022

!!Programma preliminare

* Introduzione al corso
* Introduzione ai paradigmi di programmazione: i tre approcci alla programmazione: operazionale, definizionale e dimostrazionale
* L’astrazione nella programmazione
** Fondamenti: Introduzione all'astrazione
** Astrazione di funzione, di procedura, di controllo e di selettore
** Astrazione di tipo e tipi astratti di dato
** Specifiche algebriche e assiomatiche per i tipi astratti di dato
** I moduli per l’incapsulamento dell’informazione e l'information hiding
** Oggetti e classi di oggetti
** Astrazione di dati: Tipo astratto di dato vs. classe di oggetti
** Astrazione generica
** Ambienti e linguaggi di programmazione
* La programmazione orientata agli oggetti
** Fondamenti: oggetti, classi concrete, classi astratte, metaclassi, ereditarietà singola ed ereditarietà multipla, polimorfismo, gerarchia di classi e gerarchia di interfacce
** Composizione di classi
** Confronto tra ereditarietà e composizione nel riuso del software
** Ambienti e linguaggi di programmazione
** Java: caratteristiche generali del linguaggio
** Java e Internet
** Java vs. C++
** Ambienti di sviluppo Java
** Oggetti in Java: costruttori, distruttori, metodi, argomenti e valori di ritorno
** Controllare il flusso di esecuzione: uso degli operatori Java, il controllo di esecuzione, l’inizializzazione
** Nascondere le implementazioni: i package, i modificatori di accesso, le interfacce
** Il riuso delle classi in Java: ereditarietà, derivazione, protetta, polimorfismo
** I contenitori: array e collezioni
** Approfondimenti su Java: il trattamento delle eccezioni, identificazione di tipo al run-time, programmazione generica in Java, il sistema I/O di Java
** Connessione con le Basi di Dati: JDBC
** Progettazione e creazione di interfacce per applicazioni: il package SWING
** Programmazione in rete: socket
** Il multithreading: creazione di classi attive, sincronizzazione nell’accesso dei metodi
** Estensione funzionale in Java: Lambda espressioni in Java, Pipeline e stream, Cenni di computazione in parallelo
* Esercitazioni guidate in Java
** Progetto di applicazioni con singole classi
** Progetto di applicazioni con più classi organizzate gerarchicamente e in package
** Progetto di applicazioni con classi astratte e uso del polimorfismo
** Progetto di applicazioni con contenitori e trattamento delle eccezioni
** Progetto di applicazioni con I/O da file
** Progetto di connessione a database
** Progetto di applicazioni con GUI mediante con SWING
** Progetto di applicazioni client-server e multithreading

[[#tesi]]
!!Proposte di tesi
* Progettazione e sviluppo di algoritmi per l'analisi automatica del linguaggio
* Progettazione e sviluppo di algoritmi per l'accesso intelligente alle informazioni

[[#Progetti]]
!!Progetti

Lo scopo del progetto è lo sviluppo di un'avventura testuale o grafica utilizzando il linguaggio Java e le nozioni apprese durante il corso. In questa sezione verranno pubblicati i progetti che gli studenti hanno deciso di rendere pubblici.