MAC0441 Programação Orientada a Objetos
OBJETIVOS: Apresentar os conceitos básicos, técnicas e problemas relacionados a programação orientada a objetos.
PROGRAMA: Classes e objetos. Mensagens e métodos. Subclasses: herança, poliformismo. Classes abstratas e interfaces. UML, análise e projeto OO. Padrões de projeto OO. Smalltalk, C++, Java, Ruby: classes versus tipos, linguagens estáticas versus dinâmicas, métodos de resolução de mensagens, metaclasses, templates, coleções. Refatoração. Testes.
RESPONSÁVEIS: Alan Mitchell Durham, Alfredo Goldman e Fabio Kon
PRÉ-REQUISITO: MAC0242.
CARGA HORÁRIA SEMANAL E NÚMERO DE CRÉDITOS: 6 horas, 4 créditos-aula e 2 créditos-trabalho.
CRITÉRIO DE AVALIAÇÃO DA APRENDIZAGEM: Média ponderada de atividades em sala de aula, trabalhos escritos, projetos de desenvo lvimento de software, seminários e provas.
BIBLIOGRAFIA BÁSICA:
- Oscar Nierstrasz, Andrew P. Black, Stéphan Ducasse, Damien Pollet, Squeak by Example Square Bracket Associates, 2007.
- Adele Goldberg, David Robson, Smalltalk-80: the language, Addison-Wesley, 1989.
- Wilf Lalonde, Discovering Smalltalk, Benjamin/Cummings, 1994.
- Ken Arnold, James Gosting, David Holmes, The Java Programming Language, Addison-Wesley, 1996.
- Grady Booch, Object-Oriented Analysis and Design with Applications, Benjamin/Cummings, 1994.
- Timothy Budd, An Introduction to Object Oriented Programming, Addison-Wesley, 1996.
- Frank Buschman, Regine Meunier, Hans Rohnert, Peter Sommerland, Pattern-Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1996.
- Margaret A. Ellis and Bjarne Stroustrup, The Annotated C++ Reference Manual, Addison-Wesley, 1991.
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
- Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Robert, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999.
OBSERVAÇÃO: Disciplina optativa eletiva no currículo do BCC.
[Veja dados da disciplina no JúpiterWeb]