Informações da Disciplina

 Preparar para impressão 

Júpiter - Sistema de Gestão Acadêmica da Pró-Reitoria de Graduação


Instituto de Matemática e Estatística
 
Ciência da Computação
 
Disciplina: MAC0218 - Técnicas de Programação II
Programming Techniques II

Créditos Aula: 4
Créditos Trabalho: 2
Carga Horária Total: 120 h
Tipo: Semestral
Ativação: 01/01/2024 Desativação:

Objetivos
Expor o estudante a técnicas mais avançadas de programação, incluindo depuração, testes, orientação a objetos, padrões de projeto e construção de sistemas Web. Esses tópicos são aplicados em uma parte prática que consiste em desenvolver um sistema Web de médio porte em uma linguagem orientada a objetos (por exemplo Java, Python ou Ruby).
 
To expose the student to more advanced programming techniques, including debugging, testing, object orientation, design patterns, and development of Web systems. These topics are applied in a practical activity that consists of developing a medium-sized Web system in a object-oriented language (for example Java, Python or Ruby).
 
 
Docente(s) Responsável(eis)
86500 - Alan Mitchell Durham
84710 - Alfredo Goldman Vel Lejbman
84724 - Fabio Kon
 
Programa Resumido
1. Boas práticas metodológicas para desenvolvimento de software de forma colaborativa e ferramentas de gestão de projetos. 
2. Orientação a objetos. 
3. Arcabouços orientados a objetos para construção de sistemas web. 
4. Padrões de projeto de software. 
5. Técnicas avançadas de teste de software. 
6. Qualidade de código e refatoração. 
 
1. Best methodological practices for collaborative software development and project management tools. 2. Object orientation. 3. Object-oriented frameworks for building web systems. 4. Software design patterns. 5. Advanced software testing techniques. 6. Code quality and refactoring.
 
 
Programa
1. Boas práticas metodológicas para desenvolvimento de software de forma colaborativa e ferramentas de gestão de projetos. 
2. Orientação a objetos: encapsulamento, herança, polimorfismo, interfaces, tratamento de exceções. 
3. Arcabouços orientados a objetos para construção de sistemas web. Introdução a HTTP, HTML, CSS e JavaScript. 
4. Padrões de projeto de software.  
5. Técnicas avançadas de teste de software incluindo arcabouços para automatização de testes e boas práticas de codificação baseadas em testes. Test-driven development (TDD) e Behavior-Driven Development (BDD). 
6. Qualidade e estética de código e refatoração. 
7. Noções de implantação na nuvem e contêineres. 
 
1. Best methodological practices for collaborative software development and project management tools. 2. Object orientation: encapsulation, inheritance, polymorphism, interfaces, exception handling. 3. Object-oriented frameworks for building web systems. Introduction to HTTP, HTML, CSS and JavaScript. 4. Software design patterns. 5. Advanced software testing techniques including frameworks for testing automation and best test-based coding practices. Test-driven development (TDD) and Behavior-Driven Development (BDD). 6. Quality and aesthetics of code and refactoring. 7. Notions of deployment in the cloud and containers.
 
 
Avaliação
     
Método
O aluno será avaliado continuamente durante o semestre, tendo em vista as atividades apresentadas ao professor, monitores e seus pares na disciplina.
Critério
Média ponderada das tarefas realizadas durante a disciplina e assiduidade às aulas e tarefas.
Norma de Recuperação
Média ponderada da nota final e de provas e/ou tarefas de recuperação.
 
Bibliografia
     
Bibliografia Básica: 

A. Fox, D. Patterson. Construindo Software como Serviço: Uma Abordagem Ágil Usando Computação em Nuvem, Strawberry Canyon, 2017.

E. Freeman, E. Robson, B. Bates, K. Sierra, Head First Design Patterns, O Reilly, 2004.

Robert C. Martin Series. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice-Hall. 2008.

Bibliografia Complementar: 

M. Aniche, Test-Driven Development. Teste e Design no Mundo Real, Cada do Código

K. Beck, TDD desenvolvimento guiado por testes, Bookman, 2010

M. Fowler, Refactoring. Improving the Design of Existing Code, Addison-Wesley, 1999

E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.

"Beck, Kent. Implementation Patterns. Upper Saddle River, NJ: Addison-Wesley, 2007."
 

Clique para consultar os requisitos para MAC0218

Clique para consultar o oferecimento para MAC0218

Créditos | Fale conosco
© 1999 - 2024 - Superintendência de Tecnologia da Informação/USP