Introduzione alla progettazione softwrae in relazione alla programmazione ad oggetti nell'ambienete Java. L'attenzione verrà posta negli elementi della progettazione caratterizzanti le moderne applicazioni: progettazione object-oriented, elaborazione parallela, pattern MVC, architetture event-driven, interazione uomo-macchina, interfaccia uomo-macchina (GUI), progettazione funzionale, interazione con risorse remote tramite socket Internet. Il linguaggio Java viene utilizzato per mettere in pratica le conoscenze teoriche affrontate.