Esta apostila de três capítulos cobre os conceitos básicos necessários para aprender programação orientada a objectos (OOP) em Java, de acordo com o programa oficial [7]. O objetivo geral desta apostila é introduzir os alunos do 2º ano do curso de Ciências Matemáticas Computacionais (MCS) ao pensamento computacional na resolução de problemas, compreender os fundamentos básicos da programação orientada a objectos e dominar as técnicas de conceção de programas avançados na linguagem Java. Não requer, naturalmente, qualquer conhecimento prévio da matéria, mas pressupõe que os alunos tenham adquirido as bases da programação processual, tais como tipos, variáveis, loops, funções, etc., aprendidas no primeiro ano de MI.No final do curso, o aluno será capaz de: 1) Escrever um programa funcional em Java.2) Encontrar uma solução para um problema simples usando a abordagem orientada a objectos. 3) Utilizar a noção de herança como uma técnica de desenvolvimento mais avançada para enriquecer, especializar e hierarquizar o código.