Acessibilidade

Programação Orientada por Objectos - LEIC

Curso Engenharia Informática e de Computadores
Unidade Curricular

Programação Orientada por Objectos

Obrigatória X
Opcional  
Área Científica Engenharia Informática e de Computadores
Ano: 1º Semestre:  ECTS: 6 Total de Horas: 160
Horas de Contacto T:45,0 TP: PL:22,5 S: OT:
Docente

Maria Manuela da Silva Veiga Torres Sousa

T - Teórica; TP - Teórico-prática; PL - Prática Laboratorial; S - Seminário; OT - Orientação Tutorial.

  • Objetivos da aprendizagem

    Os estudantes que terminam com sucesso esta unidade curricular serão capazes de:

    (1) Definir e usar classes derivadas e classes que representem estruturas de dados dinâmicas.

    (2) Exprimir objetivos na forma de algoritmos recursivos.

    (3) Usar interfaces gráficas nas aplicações construídas.

    (4) Construir aplicações simples usando o paradigma da Programação Orientada por Objetos.

    (5) Testar e corrigir aplicações, usando as ferramentas de desenvolvimento adequadas.

    (6) Escrever relatórios onde se justifica a hierarquia de classes e as estruturas de dados usadas nas aplicações construídas.

  • Programa

    I. Herança e polimorfismo: classes derivadas; classes abstratas; interfaces; ligação dinâmica.

    II. Ficheiros binários e de texto. Tratamento de exceções.

    III. Estruturas de dados elementares dinâmicas: vetores e listas ligadas. Iteradores. Genéricos.

    IV. Algoritmos recursivos.

    V. Introdução à interface gráfica: programação event-driven; listeners; layout managers;

    Model-View-Controller.

  • Demonstração de coerência entre conteúdos programáticos e resultados da aprendizagem

    Esta unidade curricular introduz os conceitos e o vocabulário fundamental dos paradigmas da programação orientada por objetos (I) e da programação event-driven (V), concretizados na linguagem Java (1), (3) e (4). A hierarquia de classes dos streams (II) e a hierarquia de classes das estruturas de dados dinâmicas da framework de coleções do Java (III) são usadas para consolidar os conceitos transmitidos.

    Esta unidade introduz também o estudo das estruturas de dados dinâmicas (III). A implementação de duas representações, uma em array e outra em lista ligada permite a análise do desempenho de forma a selecionar a estrutura de dadas adequada (1) e (6). Utilizam-se algoritmos recursivos (IV) quando os problemas o requerem como solução (2).

  • Metodologia de ensino e avaliação

    Ensino teórico-prático, estando previstas 30 aulas durante o semestre, a que correspondem 67,5 horas de contacto (15 aulas de 3 horas e 15 de 1,5 horas). O tempo total de trabalho do estudante é de 160 horas. As aulas interativas destinam-se à apresentação dos temas e de exemplos práticos de aplicação (aprendizagem baseada em casos). Os tópicos principais são ainda explorados através da realização de trabalhos práticos para desenvolver pequenas aplicações em Java (aprendizagem baseada na resolução de problemas). Os resultados de aprendizagem (1) e (2) são avaliados individualmente através de dois testes escritos realizados durante o semestre, ou em exame final. Durante o acompanhamento dos trabalhos de grupo são avaliados os resultados de aprendizagem (3), (4) e (5). Os resultados de aprendizagem (3), (4) e (6) são avaliados na discussão final dos trabalhos, onde é discutida a qualidade das soluções.

  • Demonstração de coerência entre metodologias de ensino e resultados de aprendizagem

    O conhecimento dos conceitos fundamentais da programação orientada por objetos e da programação event-driven é obtido através de aulas interativas e respetivos elementos de apoio, e da realização de uma aplicação, com a participação dos alunos, que necessita de especializar comportamentos (polimorfismo), reutilizar código (herança), implementar algoritmos recursivos, e utilizar interface com o utilizador, textual ou gráfica, (1) a (4).

    A competência para desenvolver boas práticas de desenho e de escrita de código para aplicações usando o paradigma da programação orientada por objetos e interfaces gráficas (3-6) é desenvolvida através da realização de trabalhos com supervisão e da sua avaliação critica.

  • Bibliografia principal

    Walter Savitch, Java: An Introduction to Problem Solving and Programming, 6th edition, Prentice Hall, 2011, ISBN: 978-0132773331.