SWAP - Semantic Web Access and Personalization Research Group

Corsi.BasileMAP2021 History

Hide minor edits - Show changes to output

February 09, 2021, at 05:10 AM EST by 95.248.223.80 -
Changed line 1 from:
!Metodi Avanzati di Programmazione (Corso B) (A.A. 2019/2020)
to:
!Metodi Avanzati di Programmazione (Corso B) (A.A. 2020/2021)
February 09, 2021, at 05:06 AM EST by 95.248.223.80 -
Changed line 8 from:
'''Scheda del corso:''' [[http://www.di.uniba.it/~swap/basilepp/MAP_B_Basile_2020_2021_programma.pdf|PDF scheda]]\\
to:
'''Scheda del corso:''' [[https://www.uniba.it/ricerca/dipartimenti/informatica/didattica/corsi-di-laurea/informatica-270/programmi-2020-21/MAP_B_INFBa.pdf|PDF scheda]]\\
February 09, 2021, at 05:05 AM EST by 95.248.223.80 -
Added lines 1-64:
!Metodi Avanzati di Programmazione (Corso B) (A.A. 2019/2020)
!!''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:''' [[http://www.di.uniba.it/~swap/basilepp/MAP_B_Basile_2020_2021_programma.pdf|PDF scheda]]\\

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

!!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

[[#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.