Programação Orientada a Objetos (2014.1)
UFPB - Campus IV - Curso de Lic. em Ciência da Computação
Carga Horária: 60h
Período: 2014.1
Horário:
Quarta 8h-10h (Sala do P2 de LCC)
Quinta 8h-10h (Laboratório 2 ou Sala do P2 de LCC)
Horários de Atendimento: Quarta 13-15h e Quinta 13-15h (sempre combinar antes com a professora)
Horários dos Monitores: clique aqui
Plano de Ensino da Disciplina: clique aqui
Grupo de Discussões (facebook): https://www.facebook.com/groups/716433931771642/
Exercícios de Classe:
Roteiro 1 (divulgado em 16/10)
Exercício de Revisão sobre Testes: Implemente um teste para a classe MinhaAgendaDeAniversários, do Roteiro 3. Este teste deve verificar se de fato é lançada uma exceção quando é removido um aniversariante que não existe. Além disso, faça testes para a classe Aniversariante e DataAniversario para verificar se os métodos "equals" implementados em ambas estão corretos (veja casos em que retornam true e false).
Exercício sobre concorrência 1: Faça o download do Objeto de Aprendizagem "Quero Bolo" (http://querobolo.esy.es/index.html) e "brinque" um pouco com ele. Depois realize uma avaliação dele usando o seguinte formulário
Exercício sobre concorrência 2: Fazer um robozinho usando o robocode e entregar por formulário o código do robô e um texto explicando a estratégia utilizada pelo seu robô. Dêem uma olhada na API do robocode (http://robocode.sourceforge.net/docs/robocode/) pra explorarem estratégias legais.
Exercícios de Casa:
Roteiro 2 (divulgado em 16/10)
Roteiro 3 (divulgado em 30/10, entrega em papel e manuscrito no dia 5/11)
Roteiro 4 (divulgado em 20/11) :Crie um diagrama UML em papel ou no Astah representando as classes principais do seu projeto referente ao Gerente de Exercícios e implemente o cadastro e pesquisa de algum dos tipos de questões e uma classe de testes para o que implementar. As funcionalidades principais do programa são as seguintes:
Cadastrar Exercício
Cadastrar Aluno
Cadastrar questão de múltipla escolha
Cadastrar questão de V ou F
Cadastrar questão dissertativa
Cadastrar resposta de questão de múltipla escolha
Cadastrar resposta de questão de V ou F
Cadastrar resposta de questão dissertativa
Pesquisar questão de exercício
Pesquisar exercício
Sortear exercício
Atualizar exercício (editar o exercício, alterando seu texto ou suas questões)
Corrigir exercício (verificar se as respostas do aluno estão corretas)
Enviar feedback para alunos (corrigir as respostas dadas pelos alunos)
Enviar feedback para professor (observar para cada exercício como foi o desempenho dos alunos, vendo percentual dos alunos que acertaram cada questão objetiva, vendo as respostas dadas às questões subjetivas, vendo as respostas de um dado aluno ou de uma turma como um todo).
Listar exercícios cadastrados
Roteiro 5: Trazer exemplos de uso dos padrões GRASP em seu projeto apontando onde estão sendo usados.
Roteiro 6 (05/02/14): Elaborar um menu para o programa, considerando as funcionalidades acima e criar este menu usando SWING.
Exercício sobre Threads: Baseado no exemplo das threads que incrementam e decrementam, implemente um programa que cria 2 threads que compartilham um objeto Conta (que guarda dentro dele o saldo da conta numa variável e que tem os métodos creditar e debitar). Uma dessas threads deve creditar 10 reais na conta e a outra deve debitar. Vocês devem garantir que as threads não podem creditar e debitar ao mesmo tempo (lembrar da palavra synchronized). No final o programa deverá imprimir o saldo da conta, que deve ser o mesmo saldo inicial.
Notas dos Alunos (incluindo roteiros): Clique AQUI
Repositórios GitHub das Equipes:
Antônio e Thales: https://github.com/antonionetto20/projetopoo
Fernando e Diogo: https://github.com/FernandoUFPB/projetopoo
Ítalo e Raimundo: https://github.com/ssouzaaa/GerenteDeExercicios.git
Karine e Adjainy: https://github.com/karineesales/ProjetoPoo.git
Thamires e Rafaely: https://github.com/thamiresneves/projetoQuestionario.git
José Eric: https://github.com/jefc21/POO
Wendell e Diego: https://github.com/WenddellJuler/Projeto-POO
Aliny e José Vagner: https://github.com/JVagner/ProjetoPOO
Links Importantes
Baixe o JDK aqui
Acesse a API de java a partir daqui
Baixe o Eclipse aqui
Dúvidas comuns dos alunos em Java
Aulas (para ver mais informações, acesse as discussões do grupo da disciplina)
08/10: Apresentação do plano de curso.
09/10: Revisão de Orientação a Objetos (criação e invocação de métodos)
15/10: Revisão de Orientação a Objetos (classes concretas e abstratas e interfaces)
16/10: Roteiro 1: Exercício de revisão
22/10: Revisão de Orientação a Objetos (exceções)
23/10: Roteiro 2: Exercício de Revisão
29/10: Revisão de Orientação a Objetos e Documentação de código com Javadoc
30/10: Testes de Unidade com JUnit
05/11: Desenvolvendo testes de unidade com JUnit
06/11: Exercício de revisão
12/11: Tópicos Avançados de OO: Annotations, Enum, testes JUnit com @Before, @After, @BeforeTest, @AfterTest
13/11: Primeiro estágio
19/11: Tópicos Avançados de OO: Annotations, Enum, testes JUnit com @Before, @After, @BeforeTest, @AfterTest. Herança x Composição. HashMap.
20/11: HashMap. Regras básicas de design OO, Acoplamento e Coesão. Introdução do projeto da disciplina. Tipos genéricos (Generics).
26/11: SESITEAC
27/11: SESITEAC
03/12: Git e GitHub.
04/12: Revisão sobre herança, acoplamento, delegação e coesão. Padrões Grasp: Alta coesão, baixo acoplamento, Information expert e creator.
10/12: Exercício de revisão.
11/12:Segundo Estágio
04/02: Exercício de revisão (Resolução do 2o. estágio)
05/02: Revisão sobre padrões GRASP. Regras básicas de design. Revisão de Testes JUnit.
11/02: Ciclo básico de desenvolvimento de software (Análise - Projeto - Implementação - Testes)
12/02: Acompanhamento dos projetos.
18/02: Refatoramento (Refactoring)
19/02: Acompanhamento dos projetos.
25/02: Criação de Threads e Runnable. Noções de concorrência.
26/02: Acompanhamento dos projetos.
04/03: Exercício sobre Threads e concorrência. Uso do OA Quero Bolo e Robocode.
05/03: Acompanhamento dos projetos.
11/03: Acompanhamento dos projetos.
12/03: Terceiro Estágio
18/03: Apresentação Final dos Projetos
19/03: Reposição
25/03: Prova Final