Programação
-
-
Este é um espaço livre para discussão geral sobre Java, Python e OO.
Vocês podem também tirar dúvidas aqui sobre os exercícios de entrega obrigatória ou qualquer outra atividade da disciplina.
Fique à vontade para responder a dúvidas de seus colegas também (não só os monitores e professor podem responder, os alunos podem e devem também).
-
- Quais são os principais elementos de OO?
- O que é cada um deles?
- UML (2 vídeos no Coursera)
- exemplo adicional em sala de aula: leilão via internet
- exercícios em sala de aula: (1) Cinema (2) Locação de Automóveis
- Para casa: fazer Semana 2 do Coursera
-
1) Discussão sobre exercícios:
- Cinema
- Locação de Automóveis
2) Discussão Boas Práticas OO
3) Discussão Depuração vs. Testes
Para casa: fazer Semana 3 do Coursera
-
Viva a democracia! Abaixo o autoritarismo!
- Fazer semana 4 da Parte 1 do Curso no Coursera
- Trabalhar em grupo no ProjetOO
-
- História da OO após Simula
- Tabela linguagens dinâmicas vs. estáticas
- Coleções de Objetos
- Classes abstratas vs. interfaces
- Linguagens baseadas em protótipos: JavaScript
- Polimorfismo
- Exercício UML Polimorfismo
- Fazer semana 5 da Parte 1 do Curso no Coursera
-
- Quem não tem muita experiência em Testes Automatizados e arcabouços como JUnit ou PyTest deve obrigatoriamente ler o artigo A Importância dos Testes Automatizados
- Padrões de Projeto: Estratégia, Adaptador, Singleton
- Exercício: implementação do Singleton
- Composite
- Método Fábrica e Fábrica Abstrata em Ruby
- Tratamento de Exceções
- Fluxos de E/S (I/O Streams)
- Fazer semana 6 da Parte 1 do Curso no Coursera
- Quem não tem muita experiência em Testes Automatizados e arcabouços como JUnit ou PyTest deve obrigatoriamente ler o artigo A Importância dos Testes Automatizados
-
-
- 4/outubro: Engenharia/Arquitetura de Software para Sistemas Inteligentes (convidado: Renato Cordeiro)
- 6/outubro:
-
- Revisão: padrões Método Fábrica, Fábrica Abstrata e Protótipo
- Exercício prático
- Revisão: padrões Método Fábrica, Fábrica Abstrata e Protótipo
- 4/outubro: Engenharia/Arquitetura de Software para Sistemas Inteligentes (convidado: Renato Cordeiro)
-
- Fazer Semana 1 da Parte 2 do curso no Coursera
- Trabalhar em grupo no ProjetOO
- Fazer Semana 1 da Parte 2 do curso no Coursera
-
18/10:
- Padrão Command
- Padrão Memento
- Padrão Chain of Responsibility
20/10:
- Revisão dos padrões Decorator, Fachada e Template Method
- Padrão Builder
- Padrão Proxy
-
25/10:
- Revisão Padrão de Projeto State
- Revisão Padrão Arquitetural MVC
Seminários: Antes de começar a preparar os slides para apresentação, todos os membros do grupo devem ler o seguinte com bastante atenção: https://www.ime.usp.br/~kon/ResearchStudents/dicasSlides.html- Padrão Iterator
- Padrão Interpreter
- Padrão Visitor
Critério de correção da Fase 1 do ProjetOO:Uso de bons nomes: 1,0
Boa arquitetura OO: 1,5
Qualidade e limpeza do código: 1,5
Bons testes automatizados: 1,0
Documentação: 2,0
Usabilidade: 0,5
Funcionalidade: 2,527/10:- Aula prática no CEC
- Revisão Padrão de Projeto State
-
1/11:
- Seminário 2: Resumo de Philosophy of Software Design de John Ousterhout (Ana Yoon, Briza Mel, Jessica Yumi)
- Discussão sobre implementações do MVC da semana passada
3/11:- Discussão sobre o livro do Ousterhout
- Engenharia de Software vs. Sistemas de Software vs. Orientação a Objetos
- Padrão Visitor
- Seminário 2: Resumo de Philosophy of Software Design de John Ousterhout (Ana Yoon, Briza Mel, Jessica Yumi)
-
- 8/11 - Palestra Desenvolvimento de Jogos e OO com Dr. Wilson Mizutani
- 10/11 - Palestra OO e Arquitetura de Software numa grande empresa pública de TI com Dr. Leonardo Leite
- 8/11 - Palestra Desenvolvimento de Jogos e OO com Dr. Wilson Mizutani
-
Fazer Semana 2 da Parte 2 do curso no Coursera
- Seminário 1: Uso de OO em conjunto com Prog. Funcional (Lucas Oshiro, Lucas Nunes, Marco Alves)
- Seminário 3: Arquitetura Hexagonal (Daniel Silva Lopes , Marcelo, Marília)
- Seminário 4: Programação Genérica em C++ (Lucas Rosa, Magali Lemes, Pedro Fernandes)
- Seminário 1: Uso de OO em conjunto com Prog. Funcional (Lucas Oshiro, Lucas Nunes, Marco Alves)
-
Fazer Semana 3 da Parte 2 do curso no Coursera22/novembro
- seminário 5: Erosão Arquitetural (Mateus Freire, Lincoln Oliveira, Rodrigo Volpe)
- seminário 6: Object-Oriented Programming — The Trillion Dollar Disaster (Luca Dillenburg, Gustavo Santos Morais, Matheus Barbosa)
- seminário 13: Dublês de Teste (Lucas Paiolla, Igor Barberino, Patrick Silva)
24/novembro:- seminário 7: Dependency Injection Management (André Souza, David Tadokoro, Fernando Henrique)
- Padrão Bridge
- Princípios SOLID
-
Fazer Semana 4 da Parte 2 do curso no Coursera29/novembro:
- seminário 9: OO na linguagem Rust (Davi Pereira, Bruno Mazetti, Willian Hiroshi)
- Núcleo de Empreendedorismo da USP
- Disciplina de Empreendedorismo Digital
- Discussão sobre princípios SOLID
1/dezembro:- seminário 11: Design patterns para projetos de machine learning (Vinicius Alves, Suayder, Eduardo Laurentino)
- seminário 12: Implementação dos Objetos em Python (Arthur Fazio, Naomi Nascimento, Vitor Guidi)
- seminário 1: Uso de OO com Programação Funcional (Marco Alves e Lucas Nunes)
- seminário 10: A Plataforma Salesforce: Uma visão arquitetural, recursos programáticos e declarativos (Felipe Jesus)
-
Fazer 5a e última semana da Parte 2 do Coursera
- Finalizar, entregar e corrigir exercício dos pares do Arcabouço de Controle de Qualidade
- Finalizar última fase do ProjetOO
- Finalizar, entregar e corrigir exercício dos pares do Arcabouço de Controle de Qualidade
-
13/12 - Apresentação final do projeto
Cada grupo deverá apresentar os resultados alcançados pelo seu grupo em 10 minutos, incluindo informações sobre a arquitetura de software, características interessantes de sua implementação, código interessante (opcional) e demonstração do software rodando (pode ser pré-gravado ou screenshots se preferirem).
A presença neste dia não é obrigatória mas seria interessante que cada grupo tivesse pelo menos 2 representantes para fazer a apresentação.