Approfondisce il paradigma della programmazione orientata agli oggetti e la sua applicazione nello sviluppo di software complesso. Tratta classi, ereditarietà, polimorfismo, incapsulamento, interfacce, gestione delle eccezioni e principi di design, tipicamente in Java o C++. Fornisce competenze per progettare codice modulare, riusabile e manutenibile.