Programação II › 43257

código no paco
43257
área científica
Informática / Ciência e Tecnologia da Programação
créditos
8
escolaridade
ensino teórico-prático (TP) - 2 horas/semana
ensino prático e laboratorial (PL) - 3 horas/semana
idioma(s) de lecionação
a inserir brevemente
objectivos

No final desta disciplina os alunos deverão estar habilitados a:

  • Identificar e construir algoritmos iterativos e recursivos de baixa
    e média complexidade.
  • Construir programas usando uma decomposição modular das soluções e
    recorrendo a tipos de dados abstractos.
  • Desenvolver e utilizar diferentes estruturas de dados (pilha, fila, listas,
    árvores, tabelas de dispersão) bem como dos algoritmos associados para pesquisa,
    introdução e remoção de informação.
competências

No final desta disciplina os alunos deverão estar habilitados a:

  • Identificar e construir algoritmos iterativos e recursivos.
  • Construir programas usando uma decomposição modular das soluções e recorrendo a tipos de dados abstractos.
  • Desenvolver e utilizar diferentes estruturas de dados (pilhas, filas, listas ligadas, arrays associativos) bem como dos algoritmos associados para pesquisa, introdução e retirada de informação.
conteúdos
  • Introdução ao Unix (linux) na perspectiva do utilizador
    • Linguagem de comandos bash
    • Suporte para programação em Java
  • Estrutura dos programas em Java
    • Revisões
    • Classes
    • Pacotes
  • Aproximações modulares à programação
    • Avaliando a qualidade de programas
    • Modularidade
    • Evolução na modularidade na construção de programas
    • Protecção de informação (encapsulamento)
    • Tipos de dados abstractos
  • Correcção e robustez
    • Mecanismo de Excepções
    • Aproximações sistemáticas à programação
    • Gestão de falhas
    • Introdução à Programação por Contrato
  • Acesso à informação armazenada em ficheiros
    • Ficheiros de texto
  • Recursividade
    • Abordagem top-down vs. bottom-up à implementação de processos iterativos
    • Backtracking
  • Ordenação e complexidade algorítmica
    • Ordenação por inserção, fusão e quicksort
    • Introdução à complexidade algorítmica
  • Estruturas de dados
    • Pilhas, Filas
    • Tipos de dados genéricos
    • Listas ligadas e bi-ligadas
    • Memórias Associativas e Tabelas de dispersão
    • Árvores binárias de procura
avaliação

Esta unidade curricular segue o modelo de avaliação discreta, com três momentos de avaliação ao longo do período lectivo complementados com uma avaliação final:

Avaliação Prática Intercalar nº 1 - 20%

Avaliação Prática Intercalar nº 2 - 20%

Avaliação Teórico-Prática Intercalar - 20%

Avaliação Prática Final - 40%

A classificação final é determinada pela média pesada das notas obtidas com os pesos indicados acima.

requisitos

Conhecimentos introdutórios de programação

metodologia

As aulas teórico-práticas têm um carácter expositivo, ilustrado, sempre que possível, com exemplos de aplicação.

As aulas práticas decorrem em laboratório de computadores e consistem na  resolução de problemas aplicando os conceitos apresentados nas aulas teórico-práticas.

Será utilizada a linguagem Java (na continuidade de Programação I).

bibliografia recomendada

  • Estruturas de Dados e Algoritmos em Java, António Adrego da Rocha, 2011
  • Programação, Algoritmos e Estruturas de Dados, João Pedro Neto, 2004
  • Java – How to Program, Deitel H.M. e Deitel P.J., Pearson Education International / Prentice Hall, 6th Editon, 2005
  • Problem Solving with Java, Koffman E.B. e Wolz U., Addison Wesley, 2nd Revised Editon, 2002
  • Data Structures and Algorithms in Java (4th edition), Michael T. Goodrich and Roberto Tamassia, John Wiley & Sons, Inc.
  • Data Structures & Algorithms in Java, Mitchell Waite Signature Series,
  • Documentação on-line de apoio ao ambiente de desenvolvimento de programas em Java fornecida pela Sun Microsystems Inc (Java 2 JDK Standard Edition 6)
Este sítio web utiliza cookies sem recolher informação pessoal que permita a identificação dos utilizadores. Ao navegar neste sítio está a consentir a sua utilização.saber mais
Para que esta página funcione corretamente deve ativar a execução de Javascript. Se tal não for possível, algumas funcionalidades poderão estar limitadas.