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
Português
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 de baixa e média complexidade.
  • Construir programas modulares recorrendo a tipos de dados abstratos.
  • Construir módulos versáteis e reutilizáveis que implementem tipos de dados abstratos com interfaces e contratos bem definidos.
  • Desenvolver e utilizar diferentes estruturas de dados (lista ligada, pilha, fila, dicionário) bem como os algoritmos associados para pesquisa, inserção e remoção de informação.
conteúdos

* Estrutura dos programas em Java (1 aula)
  * Classes
  * Pacotes
* Programação modular (1 aula)
  * Avaliação da qualidade de programas
  * Modularidade
  * Protecção de informação (encapsulamento)
  * Tipos de dados abstratos
* Correcção e robustez (1 aula)
  * Mecanismo de excepções
  * Abordagens sistemáticas à programação
  * Gestão de falhas em módulos
  * Introdução à programação por contrato
* Recursividade (2-3 aulas)
  * Abordagem top-down vs. bottom-up à implementação de processos iterativos
  * Algoritmos recursivos; condições de terminação
  * Estruturas de dados recursivas: listas ligadas
* Ordenação e complexidade algorítmica (1 aula)
  * Ordenação por inserção, fusão e quicksort
  * Introdução à complexidade algorítmica
* Estruturas de dados (5 aulas)
  * Tipos de dados genéricos
  * Pilhas, filas
  * Listas ligadas e bi-ligadas
  * Dicionários
  * Tabelas de dispersão,
  * Árvores binárias de procura
* Abordagens sistemáticas à resolução de problemas (1-2 aulas)

avaliação
Avaliação contínua:
  • 10.00% TP ATP1: prova teórica no Moodle
  • 10.00% TP ATP2: prova teórica no Moodle
  • 10.00% TP ATP3: prova teórica no Moodle
  • 35.00% P AP1: prova prática de programação
  • 35.00% P AP2: prova prática de programação
Avaliação Final:
  • 30.00% TP ATPF: prova teórica no Moodle (na época de exames)
  • 35.00% P AP1: prova prática de programação
  • 35.00% P AP2: prova prática de programação
requisitos

Para acompanhar as aulas com sucesso, os estudantes devem:

  • Conhecer a sintaxe da linguagem Java e
  • Ser capazes de usar os mecanismos essenciais da programação imperativa para criar programas de pequena dimenão.
metodologia

A unidade curricular está organizada em aulas teórico-práticas (2h/semana)
e práticas (3h/semana).
As aulas teórico-práticas servem para apresentar, discutir e demonstrar a aplicação dos tópicos da matéria da unidade curricular.
A abordagem seguida pressupõe a participação dos estudantes na discussão, procurando-se desenvolver competências que visam o raciocínio abstracto, a manipulação simbólica e a aprendizagem de técnicas gerais de resolução de problemas.
A componente prática é composta por um conjunto de exercícios de programação que obrigam o estudante a aplicar e consolidar os conceitos teórico-práticos discutidos.

bibliografia recomendada
  • Estruturas de Dados e Algoritmos em Java, António Adrego da Rocha, FCA, Abril 2011
  • Programação, Algoritmos e Estruturas de Dados, João Pedro Neto, Escolar Editora, 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.