Disciplina

Área

Área Científica de Metodologia e Tecnologias da Programação > Algoritmia

Activa nos planos curriculares

LEIC-T 2021 > LEIC-T 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados

GENI > GENI > 1º Ciclo > Área Principal > Obrigatórias > Introdução aos Algoritmos e Estruturas de Dados

LEME 2021 > LEME 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados

LETI 2021 > LETI 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados

LEIC-A 2021 > LEIC-A 2021 > 1º Ciclo > Área Principal > Introdução aos Algoritmos e Estruturas de Dados

Min-EG 2022 > Min-EG 2022 > Inteligência Artificial e Robótica > Introdução aos Algoritmos e Estruturas de Dados

LERC 2006 > LERC 2006 > 1º Ciclo > Ciências da Engenharia Informática > Introdução aos Algoritmos e Estruturas de Dados

LEIC-A 2006 > LEIC-A 2006 > 1º Ciclo > Ciências da Engenharia Informática > Introdução aos Algoritmos e Estruturas de Dados

LEIC-T 2006 > LEIC-T 2006 > 1º Ciclo > Ciências da Engenharia Informática > Introdução aos Algoritmos e Estruturas de Dados

Nível

60% testes, 40% projecto Componente Teórica: 2 Testes, com nota mínima de 8 na média dos testes Componente Prática: 2 Projectos

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

3.0 h/semana

1.5 h/semana

147.0 h/semestre

Objectivos

Ganhar conhecimentos de programação numa linguagem imperativa. Adquirir conhecimentos sobre algoritmos básicos de ordenação e procura. Saber seleccionar, criar e utilizar estruturas de dados elementares. Saber projectar algoritmos iterativos e recursivos, para a resolução de problemas. Saber analisar a complexidade dos algoritmos utilizados para resolver um dado problema por forma a poder escolher aqueles que sejam mais eficientes.

Programa

Introdução à programação imperativa e à linguagem de programação C. Introdução ao estudo da eficiência de algoritmos. Algoritmos de ordenação elementares e avançados: inserção directa, selecção directa, bubblesort, quicksort, fusão binária e heapsort. Tipos de dados: pilhas, filas de espera, filas de prioridade, amontoados, árvores. Implementações vectoriais e dinâmicas. Árvores binárias de pesquisa. Árvores de pesquisa equilibradas. Tabelas de dispersão. Resolução de colisões por encadeamento e por endereçamento aberto. Endereçamento linear, quadrático e dispersão dupla.

Metodologia de avaliação

60% testes, 40% projecto Componente Teórica: 2 Testes, com nota mínima de 8 na média dos testes Componente Prática: 2 Projectos

Pré-requisitos

Componente Laboratorial

Princípios Éticos

Componente de Programação e Computação

Componente de Competências Transversais

Bibliografia

Principal

Algorithms in C

Robert Sedgewick

1997

Addison-Wesley Publishing Company


The C Programming Language,

Brian W. Kernighan, Dennis Ritchie

1988

Prentice Hall


Introduction to Algorithms

T. Cormen, C. Leiserson, R. Rivest e C. Stein

2001

McGraw Hill e MIT Press