Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA BC1501 - PROGRAMAÇÃO ORIENTADA A OBJETOS 2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) PROCESSAMENTO DA INFORMAÇÃO 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória 4. CURSO 5. CRÉDITOS BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO T P I: 2-2-4 6. QUADRIMESTRE IDEAL 5 7. NÍVEL Graduação 8. Nº. MÁXIMO DE ALUNOS POR TURMA TEORIA: 60 LABORATÓRIO: 30 9. OBJETIVOS Apresentar os conceitos básicos e técnicas da programação orientada a objetos. 10. COMPETÊNCIAS A disciplina deve permitir que o aluno seja capaz de: Compreender os conceitos básicos da programação orientada a objetos. Aplicar adequadamente os conceitos e técnicas de programação orientada a objetos no projeto e desenvolvimento de sistemas computacionais. 11. EMENTA Conceitos básicos: classes, objetos, mensagens, encapsulamento, herança, polimorfismo. Programação orientada a objetos utilizando uma linguagem de programação orientada a objetos (Java). Análise e projeto orientados a objetos. UML. Padrões de projeto de software. 12. PROGRAMA 1. Introdução - Histórico - Paradigma orientado a objetos - Vantagens da programação orientada a objetos - Programação orientada a objetos x Programação estruturada - Linguagens orientadas a objetos 2. Conceitos básicos - Classes e objetos - Métodos e mensagens - Encapsulamento - Herança - Polimorfismo 3. Programação orientada a objetos usando Java - Visão geral da linguagem Java - Tipos primitivos - Escopo de variáveis - Pacotes - Modificadores de acesso - Construtores e destrutores - Sobrecarga de métodos - Vetores de objetos - Classes e métodos abstratos - Interfaces - Herança múltipla - Campos e métodos estáticos - Exceções - Programação utilizando threads - Comunicação em rede utilizando sockets - Persistência de objetos - Interfaces gráficas do usuário 4. Análise e projeto orientados a objetos - Análise e processo de desenvolvimento de software - Projeto de software orientado a objetos - A Linguagem UML - Diagrama de casos de uso - Diagrama de classes - Diagrama de objetos - Diagrama de atividades - Diagrama de máquina de estados - Diagrama de sequência - Diagrama de colaboração - Padrões de Projeto de software e suas aplicações 13. MÉTODOS UTILIZADOS Aulas teóricas expositivas, com a utilização de recursos audiovisuais (slides) e lousa. Aulas práticas em laboratório através da implementação em computador de exercícios relacionados aos tópicos vistos em sala de aula. 14. ATIVIDADES DISCENTES Estudo individual a partir das notas de aula e referências bibliográficas, resolução de listas de exercícios para fixação de conteúdo, resolução de exercícios em aulas práticas de laboratório, trabalhos extra-classe (implementação de exercícios-programa) individuais ou em grupos e provas escritas. 15. CARGA HORÁRIA AULAS TEÓRICAS: 24 AULAS PRÁTICAS: 24 TOTAL: 48 RECOMENDADO PARA DEDICAÇÃO INDIVIDUAL: 48 16. CRITÉRIOS DE AVALIAÇÃO DE APRENDIZAGEM O conceito será atribuído da seguinte forma: 70% do aproveitamento correspondendo às provas escritas e 30% correspondendo às demais atividades (exercícios em laboratório e projetos). 17. NORMAS DE RECUPERAÇÃO (CRITÉRIOS DE APROVAÇÃO E ÉPOCAS DE REALIZAÇÃO DAS PROVAS OU TRABALHOS) As notas serão dadas por conceito, conforme estabelecido pelas normas internas da UFABC. Alunos que não atingiram um nível de aprendizado adequado, e sem reprovação por presença, poderão fazer uma prova de exame para mais uma oportunidade de avaliação. A prova de exame será realizada após as provas normais, no final do trimestre. 18. BIBLIOGRAFIA RECOMENDADA BIBLIOGRAFIA BÁSICA: 1. Booch, Grady; Rumbaugh, James; Jacobson, Ivar. “UML: guia do usuário”. 1A edição, Editora Campus, 2006. 2. Guedes, Gilleanes T. A.. “UML 2: uma abordagem prática”. 1a edição, Editora Novatec, 2009. 3. Deitel, Harvey M.; Deitel, Paul J. “Java: como programar”. 6a edição, Editora Bookman, 2005. BIBLIOGRAFIA COMPLEMENTAR: 1. Barnes, David J.; Kolling, Michael. “Programação orientada a objetos com Java”. 4a edição, Editora Pearson Prentice Hall, 2009. 2. Flanagan, David. “Java: o guia essencial”. 5a edição, Editora Bookman, 2006. 3. Bruegge, Bernd; Dutoit, Allen H.. “Object-oriented software engineering: using UML, Patterns, and Java”. 2a edição, Editora Prentice Hall, 2003. 4. Larman, Craig. “Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo”. 3a edição, Editora Bookman, 2007. 5. Fowler, Martin. “UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos”. 3a edição, Editora Bookman, 2005. 19. PLANO SUGERIDO PARA AS AULAS Aula 1: Apresentação do curso. Aula 2: Introdução e conceitos básicos. Aula 3: Introdução à linguagem Java. Conceitos de programação orientada a objetos usando Java. Aula 4 (laboratório): Exercícios práticos (criação de classes, definição de atributos, métodos; criação de objetos). Aula 5: Herança e polimorfismo. Sobreposição X Sobrecarga de métodos. Aula 6 (laboratório): Exercícios práticos abordando herança e sobrecarga de métodos. Aula 7: Classes abstratas. Métodos abstratos. Interfaces. Aula 8: (laboratório): Exercícios práticos abordando classes, métodos abstratos e interfaces. Aula 9: Herança múltipla. Campos estáticos. Métodos estáticos. Aula 10: Tratamento de erros. Programação defensiva. Lançamento e tratamento de exceções. Aula 11: Threads em Java. Aula 12 (laboratório): Exercício prático utilizando threads. Aula 13: Prova 1 Aula 14: Sockets em Java. Aula 15 (laboratório): Exercício prático utilizando sockets. Aula 16: Linguagem UML - Diagramas de classes e objetos. Aula 17: Introdução a modelagem orientada a objetos usando cartões CRC. Aula 18: Interfaces gráficas do usuário. Classes internas. Eventos. Aula 19: Persistência de objetos usando JPA (Java Persistence API). Aula 20 (laboratório): Exercícios práticos sobre persistência usando JPA. Aula 21: Introdução a padrões de projeto do GoF (Strategy, Decorator, Factory). Aplicações típicas. Aula 22: Outros padrões de projeto GoF ( Singleton, Observer) e aplicações. Aula 23: Prova 2. Aula 24: Prova substitutiva. 20. PROFESSOR(A) RESPONSÁVEL Vera Nagamuta