Back

Programação Avançada

    Detalhes do curso

  • Conhecimentos de Base Recomendados

    O aluno deverá dominar o paradigma de programação orientada por objectos
    O aluno deverá dominar os aspetos basicos do paradigma de programação em JAVA
    O aluno deverá dominar os principios basicos de algoritmia
    O aluno deverá dominar o conceito de TAD, e conhecer a implementação de coleções do tipo linear (List,Stack, Queue)

  • Objetivos

    Desenvolver no aluno competencias avançadas de programação orientada a objectos, mais especificamente:
     - Especificação e Manipulação de Tipos Abstratos de Dados de coleções não lineares
     - Identificação, seleção e implementação de Padrões de Software
     - Aplicação de Tecnicas de Refatoring
    Ao fim da UC o aluno deve ser capaz de:
    1- implementar Tipos Abstratos de Dados (TADs) não lineares: Arvores e Grafos
    2 - utilizar Tipos Abstratos de Dados (TADs) não lineares: Arvores e Grafos, na resolução de problemas concretos.
    3 - reconhecer a existência de Padrões de Software, no desenho das aplicações
    4 - selecionar o Padrão de Software mais adequado a um determinado problema.
    5 - implementar em JAVA os Padrões de Software, partindo da sua especificação.
    6 - identificar “Bad smells “ no código.
    7 - aplicar de técnicas de Refactoring, para melhoria da estrutura interna do código.
    8 - utilizar a API JUnit para construção de testes unitários.
    9 - aplicar e utilizar os TADs, os Padrões de Software e as tecnicas de refatoring para construir aplicações de software robustas e escaláveis em JAVA

  • Métodos de Ensino

    Aulas TP: As aulas TP recorrem à resolução de situações problemáticas com recurso a meios computacionais, com vista à introdução das diferentes tecnicas de programação avançada que compõe o conteudo programatico da uc.

    Aulas de Laboratório: resolução de exercícios de uma forma mais autonoma, num ambiente de desenvolvimento.
    Elaboração de um trabalho prático o longo do semestre, integrador das várias tecnicas lecionadas.

  • Estágio(s)

    Não

  • Programa

    1 – Tipos Abstractos de Dados (TADs)

    1.1 Introdução a implementação de TADs em JAVA

    1.2 Arvores : Estrutura de dados do tipo Arvore e TAD Tree

    1.3 Grafos: TAD Graph

    2 – Padrões de Software
    2.1 Padroes de Desenho

    2.3 Padrões de Arquitetura

    3 - Refactoring
    3.1 "Bad Smells"

    3.2 Técnicas de "Refactoring"

  • Demonstração de conteúdos

    -

  • Demonstração da metodologia

    -

  • Docente(s) responsável(eis)

    Patrícia Alexandra Pires Macedo - 1.º Semestre

  • Bibliografia

    António Adrego; Estruturas de Dados e Algoritmos em Java,, FCA, 2011. ISBN: 978-972-722-704-4
    Michael T. Goodrich, Roberto Tamassia;; Data Structure and Algorithms in Java, John Wiley & Sons, 2001. ISBN: 0-471-38367-8 (Alternativa ao livro em Portugues)
    Eric Freeman ,Elisabeth Robson, Bert Bates, Kathy Sierra; Head First Design Patterns, OREILLY, 2004. ISBN: ISBN 9780596007126
    Martin Fowler; Refactoring: Improving the Design of Existing Code, 2002. ISBN: 978-0201485677

  • Código

    INF32157-S-0-6

  • Modo de Ensino

    PRESENCIAL

  • ECTS

    6.0

  • Duração

    Semestral

  • Horas

    30h Práticas e Laboratórios

    45h Teórico-Práticas

Conteúdo atualizado em 21/03/2025 15:46
Visão Geral da Privacidade
Escola Superior de Tecnologia de Setúbal - ESTSetúbal/IPS

Este site utiliza cookies para lhe oferecer a melhor experiência possível. As informações dos cookies são armazenadas no seu navegador e permitem funcionalidades como reconhecê-lo quando regressa ao nosso site e ajudar a nossa equipa a perceber quais as secções que considera mais interessantes e úteis.

Cookies Estritamente Necessários

Os cookies estritamente necessários devem estar sempre ativados para que possamos guardar as suas preferências de configuração de cookies.

Cookies de Terceiros

Este site utiliza o Google Analytics para recolher informação anónima, como o número de visitantes do site e as páginas mais populares. Manter este cookie ativado ajuda-nos a melhorar o nosso website.