Disciplina

Área

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

Activa nos planos curriculares

Min-I 2021 > Min-I 2021 > Desenho de Algoritmos Usando Python

LEME 2021 > LEME 2021 > 1º Ciclo > Área Principal > Desenho de Algoritmos Usando Python

Nível

2 Projetos (30%, nota minima de 9,5) Laboratórios (10%, nota minima de 9,5) Exame (60%, nota mínima de 8,5)

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

2.0 h/semana

1.5 h/semana

119.0 h/semestre

Objectivos

O objectivo é consolidar os conhecimentos de algoritmia e estruturas de dados numa linguagem de programação acessível que permita o foco nas componentes algorítmicas das soluções computacionais. Pretende-se dotar os alunos de conhecimentos suficientes para construírem programas de média dimensão que lhes permita manipular dados de forma eficiente.

Programa

Elementos de programação em Python. Funções, abstração procedimental, módulos, programação com objectos. Algoritmos de procura e ordenação. Estruturas de dados elementares. Eficiência de algoritmos. Algoritmos em estruturas discretas. Técnicas de desenho de algoritmos: dividir para conquistar, programação dinâmica e algoritmos greedy. Tópicos avançados em algoritmos: programação com restrições, algoritmos de aproximação e algoritmos estocásticos.

Metodologia de avaliação

2 Projetos (30%, nota minima de 9,5) Laboratórios (10%, nota minima de 9,5) Exame (60%, nota mínima de 8,5)

Pré-requisitos

na

Componente Laboratorial

A componente laboratorial será focada no desenvolvimento de soluções computacionais para problemas propostos.

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Componente de Programação e Computação

Esta UC é da área de programação.

Componente de Competências Transversais

Não existindo uma componente explícita de Competências Transversais a desenvolver no âmbito desta UC, o desenvolvimento de 2 projectos individuais levará ao desenvolvimento de Pensamento Crítico e Inovador e Competências Intrapessoais.

Bibliografia

Principal

Programação em Python: Introdução à programação com múltiplos paradigmas

João P. Martins

2013

IST Press


Introduction to Computation and Programming Using Python

John V. Guttag

2013

MIT Press


Introduction to Algorithms

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein

2009

MIT Press