Questo corso è l’astrazione delle competenze apprese nel corso precedente di fondamenti di programmazione, affronta la programmazione orientata agli oggetti e la programmazione funzionale usando Java e le tecniche per lo sviluppo di interi software di medie dimensioni, piuttosto che singole funzioni o algoritmi semplici.