seminarios

Os seminários serão ministrados obrigatoriamente em grupos de 3 alunos e deverão ter duração entre 20 e 25 minutos.

Os tópicos deverão estar relacionados a aspectos avançados de POO ou Arquitetura de Software. Espera-se uma excelente qualidade tanto no design dos slides quanto na apresentação oral. Espera-se também português (ou inglês) perfeito nos slides e que se evite mistura desnecessária de línguas. Se seus slides são em português, evite ao máximo o uso desnecessário de termos em inglês (verifique essa lista de traduções se tiver dúvidas ou consulte o professor).

Registre sua opção de seminário nesta planilha até o dia 20 de setembro. Os seminários serão oferecidos em datas a serem determinadas em outubro e novembro.

Antes de começar a preparar os slides para apresentação, os 3 membros do grupo devem ler o seguinte com bastante atenção: https://www.ime.usp.br/~kon/ResearchStudents/dicasSlides.html

Cada membro do grupo é responsável por revisar em detalhes o material preparado pelos outros 2 membros do grupo e por fazer críticas construtivas para melhorar a qualidade dos slides e da apresentação oral. O grupo deve ensaiar em conjunto a apresentação, utilizando um cronômetro, pelo menos, uma vez (ou várias vezes caso necessário). Todos os membros do grupo devem participar da apresentação oral dos slides no dia da apresentação.

Os slides devem ser enviadas para revisão pelo professor, pelo menos, 48 horas antes da apresentação.

Caso seu seminário for em tópico semelhante a outro seminário no mesmo dia, é fortemente recomendável que seu grupo envie os slides para o outro grupo com 48h de antecedência para que seus slides sejam também revisados pelo outro grupo e vice-versa. O objetivo é eliminar redundâncias e uniformizar a terminologia e conceitos.

Tópicos para o Seminário

  • Software Architecture: It Might Not Be What You Think It Is
  • Sustainable software engineering: Reflections on advances in research and practice (https://doi.org/10.1016/j.infsof.2023.107316)
  • Dívida Técnica
  • Resumo de Philosophy of Software Design de John Ousterhout
  • Object-Oriented Programming — The Trillion Dollar Disaster de Ilya Suzdalnitski
  • Design patterns para projetos de aprendizado de máquina
  • Funções lambda, closures, pattern matching, funtores
  • Modelagem com Domain-Driven Design (DDD)
  • Padrões para Mapeamento Objeto-Relacional (Repository, DAO, ActiveRecord, DataMapper)
  • Resolvendo null em linguagens modernas (Java vs. Kotlin vs. Scala)
  • Metaprogramação e Reflexão
  • Popularização da tipagem (TypeScript, Python Type Hints, Ruby 4)
  • Teste de Software Eficaz (baseado no livro Effective Software Testing: A Developer's Guide do Prof. Mauricio Aniche)

Caso você queira sugerir um novo tópico, coloque-o na lista abaixo e aguarde a validação do professor:

  • Rust é uma linguagem orientada a objetos? (Padrões de projeto em Rust) - Luciano Leão
  • Princípios SOLID e suas aplicações - Larissa Silva
  • Testes unitários: princípios, práticas e padrões (baseado no livro Unit Testing Principles, Practices, and Patterns, por
    Vladimir Khorikov) - Roberto Bolgheroni
  • insira aqui sua sugestão de tópico e seu nome