Introduzir os conceitos de programação Orientada a Objetos e aplicá-los no desenvolvimento de um software.Desenvolver a capacidade dos alunos para organização, construção, teste e depuração de programas.
Histórico.Aspectos básicos de codificação: indentação, nomes de variáveis e outros aspectos.Conceitos básicos de orientação a objetos: classe e objeto, atributo, operação e método.Conceito de encapsulamento, modos de visibilidade.Ciclo de vida de um objeto: alocação na memória, construtor e destrutor.Ponteiros.Tipos de dado abstrato.Pacotes.Conceito de herança: princípio da substituição de Liskov e redefinição de operação.Cast.Classe abstrata, operações e classes folha e constantes.Métodos e atributos estáticos.Polimorfismo: sobrecarga de operação, redefinição de operação e variável polimórfica.Programação defensiva, exceção e tratamento de erros.Manipulação de dados e leitura e escrita de arquivos.Template / Generics (forma de polimorfismo).Introdução a padrões de projeto (exemplo): herança múltipla e delegação, singleton e método fábrica.Classes e objetos, mensagens e métodos. Subclasses: herança e polimorfismo. Classes abstratas. Estudo de bibliotecas de classes: coleções, classes visuais. Double dispatching. Projeto. O catálogo de padrões e sua aplicação. Smalltalk v5, C++, Java: classes vs tipos, tipos estáticos e dinâmicos, métodos de resolução de mensagens, metaclasses, templates.
BUDD, T. Introduction to Object-Oriented Programming. Addison-Wesley. 3a edição, 2001.ECKEL, B. Thinking in Java. 3a edição (revisão 4.0). Disponível em:. 2002.- E. Gama, R. Johnson, J. Vlissides, R. Helm, "DESIGN PATTERNS: ELEMENTS OF REUSABLE OBJECT ORIENTED SOFTWARE", Addison-Wesley, 1995. - M. Ellis, B. Stroutrup, "THE ANNOTATED C++", Addison-Wesley, 1990.- T. Budd, "AN INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING", Addison-Wesley, 3ed 2001.- K. Arnold, J. Gosling, "THE JAVA PROGRAMMING LANGUAGE", Addison-Wesley, 1996.- W. Lalonde, "DISCOVERING SMALLTALK", Benjamin Cummings, 1994.- E. Freeman, E. Robson, B. Bates, K. Sierra, "Head First Design Patterns", O Reilly, 2004.