Introduzir os conceitos da computação orientada a objetos e seus relacionamentos com as linguagens de programação.
Conceitos de orientação a objetos: objetos, operações, mensagens, métodos e estados; Classes e seus tipos. Construtores e finalizadores. Polimorfismo. Abstrações, generalizações, super e subclasses e instanciações. Herança - simples e múltipla e suas consequências. Ocultamento. Agregações como listas, conjuntos e arranjos. Construtores e finalizadores dinâmicos. Aplicações dos conceitos utilizando uma linguagem de programação orientada a objetos.
1. DEITEL, H. M.; DEITEL, P.J.: C++: Como Programar, Prentice-Hall, Quinta Edição, 2006. 2. DEITEL, H. M.; DEITEL, P.J.: Java: Como Programar, Prentice-Hall, Sexta Edição, 2005. 3. Object-oriented modeling and design /James Rumbaugh [et al.]. Englewood Cliffs, N.J. : Prentice Hall, 1991. 4. COX, B.J. Object-Oriented Programming, Addison Wesley, 1986. (Nacional: Makron 1991). 5. COX, B J, NOVOBILSKI, A J. Object-oriented programming 2nd edition. Reading: Addison Wesley, 1991. 6. ECKEL B.: Thinking in C++, Prenticel Hall, Segunda Edição, 2000. 7. ECKEL B.: Thinking in Java, Prenticel Hall, Segunda Edição, 2000. 8. SATIR G.; BROWN D.: C++: The Core Language, O'Reilly, 1995. 9. STROUSTRUP B.: A Linguagem de Programação C++, Bookman, Porto Alegre, Terceira Edição, 1999. 10. STROUSTRUP B.: An Overview of the C++ Programming language. Handbook of Object Technology. CRC Press, 1998. 11. BUDD T. introduction to object-oriented programming. Reading, Mass.: Addison-Wesley Pub. Co., 1991. 12. KAFURA D. Object-oriented software design and construction with Java. Prentice Hall, 1999