Saltar para:
Logótipo
Você está em: Início > ECC114
Mapa das Instalações
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Estrutura de Dados

Código: ECC114     Sigla: ECC114

Áreas Científicas
Classificação Área Científica
OFICIAL Ciências Complementares

Ocorrência: 2018/2019 - 2S Ícone do Moodle

Ativa? Sim
Unidade Responsável: Departamento de Ciência de Computadores
Curso/CE Responsável: Licenciatura em Ciências de Engenharia

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
L:CE 60 PE2007- Perfil Engenharia Geográfica 1 - 7,5 - 202,5
PE2007- Perfil Engenharia Alimentar 1 - 7,5 - 202,5
PE2007- Perfil Engenharia Agronómica 1 - 7,5 - 202,5

Língua de trabalho

Português

Objetivos

O estudante deverá ser capaz de:
- compreender, utilizar e desenvolver programas com tipos abstratos de dados (TAD) de acordo com os requisitos de problemas propostos;
- compreender e utilizar as noções de atributo e método de um tipo abstrato de dados;
- utilizar e adaptar, programando-os, TADs que implementam listas ligadas, pilhas, filas, árvores binárias, heaps, tabelas de hash e grafos;
- analisar trechos de algoritmos do ponto de vista da complexidade computacional e situá-los numa ordem de complexidade;
- programar funções recursivas;
- programar e analisar algoritmos de procura e inserção sequencial, em lista ordenada, em árvore ordenada e em tabela de hash;
- programar e analisar algoritmos de ordenação tais como o bubblesort, mergesort, quicksort e heapsort;
- programar e analisar algoritmos de criação e manipulação de estruturas de dados como árvores binárias, árvores binárias ordenadas, heaps e grafos.

Nota: nesta unidade curricular a programação é feita utilizando a linguagem Python.

Resultados de aprendizagem e competências

O estudante é capaz de:
- compreender, utilizar e desenvolver programas com tipos abstratos de dados (TAD) de acordo com os requisitos de problemas propostos;
- compreender e utilizar as noções de atributo e método de um tipo abstrato de dados;
- utilizar e adaptar, programando-os, TADs que implementam listas ligadas, pilhas, filas, árvores binárias, heaps, tabelas de hash e grafos;
- analisar trechos de algoritmos do ponto de vista da complexidade computacional e situá-los numa ordem de complexidade;
- programar funções recursivas;
- programar e analisar algoritmos de procura e inserção sequencial, em lista ordenada, em árvore ordenada e em tabela de hash;
- programar e analisar algoritmos de ordenação tais como o bubblesort, mergesort. quicksort e heapsort;
- programar e analisar algoritmos de criaçao e manipulação de estruturas de dados como árvores binárias, árvores binárias ordenadas, heaps e grafos.
Nota: nesta unidade curricular a programação é feita utilizando a linguagem Python.

Modo de trabalho

Presencial

Programa

Revisão do Python. Tipos abstractos de dados: atributo e método. Colecções de objectos: listas ligadas, filas, e pilhas. Recursividade. Noções de complexidade algorítmica. Algoritmos de procura e inserção: procura sequencial, binária  em tabela de hash. Algoritmos de ordenação. Árvores binárias: não ordenadas e ordenadas. Árvores de procura e armazenamento. Heaps. Grafos.

Bibliografia Obrigatória

Miller Bradley N.; Problem solving with algorithms and data structures using Python. ISBN: 1-59028-053-0

Bibliografia Complementar

Downey Allen; How to think like a computer scientist. ISBN: 0-9716775-0-6

Métodos de ensino e atividades de aprendizagem

- Aulas teóricas em parte expositivas e em parte demonstrativas da resolução de problemas.
- Aulas práticas em laboratório.
- Exercícios formativos (auto-avaliação) em computador, para realizar fora das aulas e utilizando uma plataforma de validação automática de programas através de testes unitários.
- Plataforma de e-learning (Moodle) com pdfs das transparências apresentadas nas aulas e dos exercícios práticos apresentados.
- Esta plataforma tem também um forum onde são feitos anúncios relativos à disciplina e onde os alunos.

- Avaliação distribuída com exame final:
* 2 testes de programação: 6 valores 
* exame final: 14 valores. 

Software

Pyzo
Idle

Palavras Chave

Ciências Físicas > Ciência de computadores > Programação

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 70,00
Participação presencial 0,00
Teste 30,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 125,00
Frequência das aulas 65,00
Total: 190,00

Obtenção de frequência

* Necessário assistir às aulas práticas, não faltando a mais de 1/4 das aulas dadas.
* Obter nota maior que zero num dos testes práticos.
* Ter sucesso em pelo menos 50% (ponderado) das tarefas de auto-avaliação propostas.

Fórmula de cálculo da classificação final

0.2*MPT+0.1*PTP+0.7*EX

MPT: melhor teste prático
PTP: pior teste prático
EX: exame

Melhoria de classificação

Pode melhorar em recurso a nota do exame na época normal e combinar com as notas dos testes.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-11-08 às 23:01:50 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias