Programa

Programação 3: Orientação a Objetos e Java


  1. Apresentação do Curso - 2h
    Missão e objetivos, relevância e motivação, relação com outras disciplinas, metodologia, programa, referências, avaliação.

  2. WWW e Netscape - 2h
    Introdução a Internet/WWW, Netscape, estrutura das páginas do curso, HTML, necessidade de Java, applets, email, news.

  3. Qualidade de Software - 2h
    Crise de software, importância econômica e social do desenvolvimento de software de qualidade, aspectos e fatores de qualidade de software.

  4. Aspectos de Modularização - 2h
    Programação `in the small' versus `in the large', critérios e princípios de modularização, impacto sobre reusabilidade e manutenção.

  5. Técnicas para Modularização - 2h
    Pacotes, tipos abstratos, pacotes com variáveis escondidas, decomposição funcional e orientada por dados, essência de orientação a objetos.

  6. Conceitos de Orientação a Objetos e Java - 8h
    Objetos, classes, métodos, atributos, mensagens, criação e remoção de objetos, tipos primitivos, estruturas de controle, pacotes, interfaces, operadores especiais.

  7. Ambiente de Desenvolvimento Java - 2h
    Compilador, interpretador, browser, appletviewer, javamaker.

  8. Herança e `Dynamic Binding' - 4h
    Classificação, herança simples e múltipla, polimorfismo, overriding, dynamic binding, impacto sobre sistema de tipos (conflitos e anomalias), herança versus parametrização e encapsulamento, `behavioural inheritance'.

  9. Parametrização de Classes e Pacotes - 2h
    Programação parametrizada, desenvolvimento de software baseado em componentes, impacto sobre reusabilidade, projeto de interfaces, Java com parametrização.

  10. Documentação Formal de Classes e Pacotes - 2h
    Desenvolvimento rigoroso de software, impacto sobre confiabilidade, especificações como contratos, documentação, asserções, pré e pós condições, invariantes, exceções.

  11. Metodologia de Desenvolvimento com Java - 4h
    Estilo de programação, projeto de bibliotecas de classes, projeto orientado a objetos, aspectos de engenharia de software.

  12. Classes Avançadas de Java - 8h
    Applets, elementos de GUI, 2D plotting, etc.

  13. Acompanhamento e Discussão dos Projetos - 10h
    Alternativas de projeto, dúvidas, sugestões, etc.

  14. Apresentação dos Projetos - 4h
    Perguntas e seminários de 30 a 40 minutos.

  15. Perspectivas e outras Linguagens Orientadas a Objetos - 2h
    C++, Eiffel, Smalltalk, histórico das linguagens, extensões, novas tecnologias, mercado de software via WWW, sistemas distribuídos orientados a objetos.

Paulo Borba (phmb@di.ufpe.br) (Transparência)