UNIVERSIDADE DE BRASILIA FACULDADE DO GAMA Curso: Engenharia de Software Disciplina: Orientação a Objetos Professor: Renato Coral Sampaio Semestre/Ano: Código: Carga Horária: Créditos: 01/2017 195341 60h 04 Orientação a Objetos 1- Tópicos/Ementa Parte 0: Boas práticas de programação 0.1. Controle de versão 0.2. Bons nomes 0.3. Testes automatizados Parte 1: Fundamentação de OO (exemplos e exercícios em C++ e UML) 1.1. Atributos, Métodos e visibilidade 1.2. Construtores, referências a objetos, instanciação 1.3. Passagens de parâmetros 1.4. Exceções 1.5. Herança 1.6. Polimorfismo 1.7. Teste de unidade C++ Parte 2: Conceitos avançados de OO e GUI (exemplos e exercícios em Java e UML) 2.1. Arquitetura, plataforma, máquina virtual Java 2.2. Ambientes de desenvolvimento 2.3. Tipos de dados e operadores 2.4. Arranjos e coleções 2.5. Arquitetura de eventos, Swing 2.6. Threads 2.7. Exceções em Java 2.8. Teste de unidade Java Parte 3: Aplicações OO (projetos em Ruby on Rails) 3.1. Ruby básico 3.2. OO em Ruby (classes, objetos, métodos etc) 3.3. Metaprogramação 3.4. Ruby on Rails 3.5. Active Record 3.6. Rotas 3.7. Controllers e Views 2- Plano de Ensino 07/03 - Apresentação da disciplina e introdução ao controle de versão 09/03 - Introdução a OO - Controle de versão 09/05 - Threads (2) 11/05 - Exceções em Java 14/03 - Classes e objetos 16/03 - Introdução às boas práticas de programação: bons nomes e testes automatizados. - Atributos, Métodos e visibilidade 16/05 - Arquitetura de eventos, Swing 18/05 - Arquitetura de eventos, Swing 21/03 - Construtores, referências a objetos, instanciação - Divulgação de EP1 23/03 - Passagens de parâmetros 30/05 - UML 01/06 - Revisão 2 28/03 - Herança 30/03 - Polimorfismo 1 04/04 - Polimorfismo 2 06/04 - Aula temática EP1 11/04 - Exceções 13/04 - Aula temática EP1 18/04 - Revisão 1 20/04 - Prova 1 25/04 - Revisão P1 - Entrega de EP1 27/04 - OO em Java + Tipos de dados e operadores 23/05 - Teste de unidade 25/05 - Aula Temática EP2 06/06 - Prova 2 08/06 - Entrega de EP 2 - Ruby básico - Divulgação do EP 3 13/06 - OO em Ruby (classes, objetos, métodos etc) - Metaprogramação 15/06 - Ruby on Rails 20/06 - Rotas, Controllers e Views 22/06 - Active Record 27/06 - Acompanhamento EP3 29/06 - Acompanhamento EP3 04/07 - Apresentações EP3 06/07 - Divulgação/revisão de notas - Fim do Semestre 02/05 - Agregação 04/05 - Threads (1) - Divulgação do EP 2 3- Critérios de Avaliação Nota 1 = (Prova 1 + EP1) / 2 Nota 2 = (Prova 2 + EP2) / 2 Nota 3 = (Prova 3* + Trabalho Final)/2 *Dependendo do desempenho da turma, não haverá Prova 3 e a Nota 3 será igual à nota do Trabalho Final. Nota final: Caso a média das provas e a média dos EPs seja maior ou igual a 5: => Nota final = (Nota 1 + Nota 2 + Nota 3) / 3 Caso a média das provas seja menor que 5: => Nota final = Média das Provas Caso a média das provas seja maior ou igual a 5, mas média dos EPs seja menor que 5: => Nota final = Média dos EPs 4 - Bibliografia Bibliografia Básica : 1. Bjarne Stroustrup, The C++ Programming Language, 4th Edition, Addison-Wesley Professional, 2013. 2. Cay S. Horstmann, Gary Cornell, Core Java, Volume I - Fundamentals, 8th Edition, Prentice Hall, 2016. 3. Eckel, Bruce. Thinking in Java, 4th ed. Prentice Hall, 2006. Bibliografia Complementar 4. Ian D Chivers, An Introduction to C++ and Object Oriented Programming, Springer, 2001. 5. (eBrary) Barclay, Kenneth Savage, John, Object-Oriented Design with UML and Java, Elsevier, 2003. 6. (eBrary) Shaughnessy, Pat, Ruby Under a Microscope : An Illustrated Guide to Ruby Internals, No Starch Press, 2013. 7. (eBrary) Phillips, Dusty, Python 3 Object Oriented Programming, Packt Publishing Ltd, 2010. 8. McLaughlin, Brett; Pollice, Gary; West, David. Head First Object-Oriented Analysis and Design, 1st ed. O'Reilly Media, 2007.