Trabalhos de MAC 413/5715

Além dos trabalhos realizados em sala de aula, teremos 3 trabalhos para realizar em casa. Datas de Entrega dos Trabalhos:

Projeto Final

O projeto final poderá ser um seminário ou implementação de software. É possível também apresentar um seminário e além disso participar de um grupo de implementação de software. Quem fizer essas duas coisas receberá simpatia especial do professor no momento da avaliação.

Tópicos para Seminários

Feitos em grupos de 1 ou 2 e apresentados em 45 minutos (ou 90 minutos, se o seminarista preferir e comunicar isso com antecedência). O seminário deverá ser muito bem preparado e os alunos deverão demonstrar que estudaram muito bem o tópico abordado e o dominam. Os slides devem ser submetidos ao professor (nos formatos .ppt ou .pdf) para revisão 4 dias antes da apresentação. Antes de preparar os slides, não deixe de dar uma olhada nessas dicas de preparação de slides e nessas dicas de português.

A biblioteca digital da ACM é provavelmente o melhor lugar para encontrar boas referências bibliográficas sobre todos estes assuntos. De qualquer IP da USP temos acesso gratuito a ela.

  1. Inversion of Control Containers and the Dependency Injection pattern (Diego Tarábola (tarabola no gmail) e Denise Goya) (apresentação em 06/10)
  2. A linguagem Self (baseado no artigo Self - The Power of Simplicity) (Eduardo Kasa (eduardokasa no gmail) e Cristina Fang)
  3. Mecanismos reflexivos em Smalltalk (ver este artigo por exemplo) (Daniel Ribeiro (danielrb no ime))
  4. Continuações
  5. Persistência de Objetos com Hibernate (Luis Felipe (felipesarro no yahoo com br) e Nilson de Souza Rego Junior)
  6. Sistemas Web com Java Server Faces (Daniel Sguillaro dans no ime) e (Paulo V. Lopes)
  7. Subject-oriented Computing (Michelet Chávez michelet.chavez no gmail) (apresentação 06/10)
  8. O uso de padrões e arcabouços no sistema operacional Choices
  9. Guaraná: uma implementação reflexiva de Java (Ana Paula Mota anna.motta no gmail)
  10. Manipulação de bytecode Java (Eduardo Oliveira Souza (esouza no ime))
  11. Ultra-Large-Scale Systems - the software challenge of the future (livro do SEI-CMU) (Raoni Kulesza raoni no larc usp br)
  12. Estimativas em métodos ágeis (Wylliam Miguita (miguita no linux ime) e Marcelo Litvin)
  13. Um padrão do novo livro PLoPd5 (disponível na biblioteca) (Flavio da Silva Mori Junior (flaviom no linux.ime) e Erich Soares Machado)
  14. Discovering Early Aspects IEEE Software 23(1), 2006. (Reginaldo Rideaki Kamiya (reginaldoime no gmail) e Mário Marques Júnior)
  15. Programação orientada a objetos em computação científica(Paulo Fernando Machado (paulo-fernando.machado no itauseguros com br) e Wellington)
  16. Service Oriented Architecture (SOA) (Daniel M. Dantas (ddantas no blackbird com br))
  17. Comet: A new approach to ajax applications (Vinicus Gama Pinheiro (vinicius no ime) e Mário Torres)

Tópicos para Implementações

Em grupos de 1 ou 2 pessoas (recomendo programação pareada). No final do semestre, a execução do software será demonstrada para o professor, assistente e demais interessados.
  1. Algum novo plugin para Eclipse - (e.g., melhorias no IDE Eclipse para o Ciao Prolog)
  2. Implementação de algoritmos musicais no AcMus (Vinicus Gama Pinheiro (vinicius no ime) e Mário Torres)
  3. Módulo para permitir a instalação de plugins no Archimedes (Hugo Corbucci (night no linux ime) e Mariana Vivian Bravo
  4. Colaboração no projeto OnAir: consultas em bancos de dados de vídeos baseado em palavras chaves e Java Media Framework
  5. Aplicação paralela em C++ para ser executada no sistema InteGrade. (Paulo K. Negrão e Adroaldo Borges (lazo no linux ime))
  6. Suporte a MPI no sistema InteGrade.
  7. Aplicação Musical Distribuída baseada no Andante.
  8. Desenvolvimento de um novo módulo para o sistema Borboleta (computação móvel para atendimento público de saúde).
  9. Desenvolvimento de mecanismos de monitoração e configuração em fluxos de transmissão multimídia usando AspectJ. (Raoni Kulesza (raoni no larc usp))

Aqui está um exemplo de especificação bem feita:  ConferenceAssistant



Uma possibilidade bem interessante é juntar 2 trabalhos em 1 no final do curso. Ou seja, 2 (ou mais) grupos de 2 pessoas trabalham cada um em uma parte independente de um sistema maior, combinando inicialmente qual vai ser a interface usada para a comunicação entre os dois sistemas. No final, cada grupo entrega o seu trabalho separadamente (com testes para a sua parte) mas o demo é feito integrando-se todas as partes.
Página de MAC 413/5715
Página do Fabio
Página do DCC