ultima
alteração 05/07/12 (solução da segunda prova, data do exame)
Programa do Curso
Motivação: revisão dos conceitos e necessidades em situações
reais de programação
Principais conceitos em programação orientada a objetos
Estado e comportamento
Classes e objetos
Herança, especialização e
polimorfismo
Acoplamento dinâmico
Hierarquia de classes e sua
representação gráfica no padrão UML
Conceitos adicionais
Classes abstratas
Interfaces
Herança múltipla
Exceções
Persistência de Objetos
Relações entre objetos e sua representação em UML
associação, agregação e sua
representação gráfica no padrão UML
Coleções e estruturas 'genéricas'
Recursos para multiprogramação e programação distribuída
Acesso a meta-informações em tempo de execução
Aplicação dos conceitos em linguagens atuais (como p. ex. Java e Python)
Arquitetura de software e padrões de projetos
Observação: esta página será atualizada ao longo do curso portanto é
recomendável aos alunos que verifiquem
periodicamente as atualizações.
Pré-requisitos:
Fluência em programação usando C ou outra linguagem equivalente (MC102)
Estruturas de dados e algoritmos (MC202)
Avaliação
A avaliação será feita com base em
2 provas teóricas
atividades de laboratório
Atividades de laboratório
2 uma atividade por semana
cada atividade terá uma semana de prazo para entrega. Em
alguns casos as atividades serão encadeadas no sentido de compor
um projeto maior. Nesse caso cada atividade do 'projeto' só
será aceita se as anteriores tiverem sido entregues.
Critério de aprovação
Mp = média aritmética das duas provas
Ma = média aritmética das atividades de
laboratório
Se (Mp < 6.0) ou (Ma < 6.0) então a média final será Mf
= min(Mp,Ma) senão Mf=(Mp+Ma)/2
Média final mínima para
aprovação: 7.0. Caso esse mínimo não seja
atingido no cálculo acima, o aluno irá para exame e nesse
caso
a média final será calculada como (Mf + Ex)/2.
Observação importante: os
alunos envolvidos em qualquer tipo de fraude serão sumariamente reprovados.
Datas das Provas
primeira prova: 19/04/12
segunda prova: 26/06/12
exame final: ** 12/07/12 (mesmo horário e sala
das aulas).
Laboratório
As aulas de laboratório serão assistidas por
um auxiliar de ensino.
Na correção dos laboratórios, os critérios considerados serão
aos seguintes:
aderência ao enunciado
algoritmos usados e sua implementação
organização e legibilidade do código
corretude da solução
qualquer código entregue com erros de compilação terá nota igual a zero.
Material de Apoio
Apresentações usadas em sala e
código exemplo, se necessário, serão
disponibilizados aqui.
The Java Programming
Language, Ken Arnold, James Gosling, & David
Holmes; Prentice Hall, 4th edition (2005)
Thinking in Java,
Bruce Eckel; Prentice Hall, 4th edition (2006)
Estruturas de Dados e
Algoritmos em JAVA, Michael T. Goodrich& Robert
Tamassia; Bookman (2007)
Data Structures and
Algorithms with Object Oriented Design Patterns in C#,
Bruno Preiss; http://www.brpreiss.com/books/opus6/
(2001) [ versões para Java, C#, Python, e outras linguagens ]
Python Tutorial, Guido
van Rossum; Python Software Foundation(2008)
Object-Oriented Modeling and Design; Rumbaugh et. al., Prentice-Hall (1991)
Padrões de Projeto,
Erich Gamma et. al.; Bookman (2002)
Guia do Usuário UML,
Grady Booch et. al.; Campus(1999)