Saltar para:
Logótipo
Você está em: Início > EIC0013

Algoritmos e Estruturas de Dados

Código: EIC0013     Sigla: AEDA

Áreas Científicas
Classificação Área Científica
OFICIAL Programação

Ocorrência: 2020/2021 - 1S Ícone do Moodle

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEIC 174 Plano de estudos a partir de 2009/10 2 - 7,5 70 202,5
Mais informaçõesA ficha foi alterada no dia 2020-09-23.

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

Língua de trabalho

Português

Objetivos

Na sequência das unidades curriculares de Introdução à Programação, é objetivo desta unidade curricular: recorrer às noções de programação já estabelecidas e sistematizar o uso de estruturas de informação e de algoritmos para resolver categorias de problemas;  usar, como paradigma de suporte ao desenvolvimento de programas, a orientação por objetos; dar ênfase à organização dos programas em torno de tipos de dados abstratos. Serão realizados pequenos projetos usando a linguagem C++.

Resultados de aprendizagem e competências

No final da unidade curricular, os estudantes deverão ter competência para: modelar problemas recorrendo ao paradigma da orientação por objetos; resolver problemas fazendo uso de tipos de dados abstratos e estruturas de dados simples lineares e não lineares.

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

O estudante deve possuir conhecimentos básicos de programação e linguagem C++.

Programa

Programação orientada por objetos. Herança e Polimorfismo. Aspetos básicos de UML. Linguagem C++. Análise de algoritmos: classes e complexidade. Algoritmos de pesquisa e ordenação. Tipos abstratos de dados. Iteradores. Estruturas de dados lineares e sua implementação: pilhas, filas e listas. Árvores binárias, árvores binárias de pesquisa e algoritmos associados. Tabelas de dispersão e algoritmos de manipulação. Filas de prioridade. Conjuntos Disjuntos. Árvores equilibradas: Árvores AVL e "Splay". Exemplos de aplicação.

Bibliografia Obrigatória

Weiss, Mark Allen; Data structures and algorithm analysis in C++. ISBN: 0-201-36122-1
Sedgewick, Robert; Algorithms in C++. ISBN: 0-201-35088-2

Bibliografia Complementar

Deitel, H. M.; C++ how to program. ISBN: 0-13-185757-6
Stroustrup, Bjarne; The C++ programming language. ISBN: 0-201-88954-4
Koenig, Andrew; Accelerated C++. ISBN: 0-201-70353-X
Cormen, Thomas H.; Introduction to algorithms

Métodos de ensino e atividades de aprendizagem

As aulas teóricas são usadas para exposição formal da matéria, acompanhada da apresentação de exemplos e sua discussão. Nas aulas práticas são resolvidos exercícios de programação em C++. Avaliações práticas são aplicadas ao longo do curso, em datas previamente anunciadas, onde os estudantes são continuamente avaliados a nível teórico e prático, com a realização de exercícios individuais em computador (Componente Individual). Os alunos efetuam trabalhos de grupo de pequena dimensão que são acompanhados fora das aulas e avaliados em dois momentos ao longo do curso (Componente de Grupo).

Software

Doxygen: Documentation system for C++
Google Tests: unit testing
CLion: a cross-platform IDE for C++

Palavras Chave

Ciências Físicas > Ciência de computadores > Programação
Ciências Físicas > Matemática > Algoritmos

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Teste 60,00
Trabalho laboratorial 40,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Elaboração de projeto 60,00
Estudo autónomo 48,00
Frequência das aulas 70,00
Trabalho laboratorial 10,00
Total: 188,00

Obtenção de frequência

O estudante não pode exceder o limite de faltas previsto.

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

A avaliação será baseada nas seguintes componentes:

CIP = componente prática de programação usando testes unitários, a realizar individualmente com recurso ao sistema SIGEX (média de dois momentos de avaliação)

CIT = componente teórica através de questionários de respostas múltiplas, a realizar individualmente no Moodle

CG = componente de grupo. Inclui 2 trabalhos (CG1 e CG2) a realizar em grupo (de 3 estudantes), de igual peso, sendo em cada um destes pontos de avaliação contabilizado o empenho e assiduidade do estudante no trabalho de grupo.


Classificação final = 30% CIP + 30% CIT + 40% CG


Observações:

1. É exigida classificação mínima de 40% em todas as componentes CIP, CIT, CG1 e CG2

2. Terá lugar uma prova de recuperação (componente prática + componente teórica) para estudantes admitidos e que não obtiveram a nota mínima. A nota desta prova substitui as avaliações CIP e CIT é limitada a 50% em cada uma destas.

Provas e trabalhos especiais

A avaliação em Época Especial inclui duas componentes (CE e CT):

  • Componente de Exame (CE) (60%), inclui:
  • uma parte prática de programação usando testes unitários (CEP)
  • uma parte teórica(CET)
  • Componente de Trabalho Prático(CT) (40%), relativo à implementação de um mini-projeto e elaboração do respetivo relatório. O Trabalho Prático deverá ser entregue até à data do exame e os estudantes devem contactar o regente da UC para escolha do trabalho a implementar.

A classificação final (CF) é computada como: CF = CE*0,6 + CT*0,4.

Para aprovação na disciplina, o estudante deve obter uma classificação mínima de 40% em qualquer das componentes CEP, CET e CT.

Avaliação especial (TE, DA, ...)

Os estudantes inscritos ao abrigo de regimes especiais sem frequência de aulas práticas:

  • podem efetuar a Componente de Grupo (CG) de avaliação constituindo grupo com outros colegas ou sozinhos, devendo acordar com os docentes o trabalho a realizar e as datas de avaliação dos mesmos
  • devem realizar a avaliação individual CI nas datas estipuladas.

Melhoria de classificação

A realizar na época seguinte da unidade curricular

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