Programação
Objetivos de Desenvolvimento Sustentável
Objetivos de Aprendizagem
Pretende-se dotar o aluno dos conceitos e métodos base de programação, a utilizar, potencialmente, em computação numérica. Recorre-se à linguagem Python “procedimental”, com base nas figuras de programação estruturada, estruturas de dados nativos e vetores/matrizes. Introduzem-se, com exemplos e exercícios dados nas aulas práticas, alguns dos padrões básicos de programação imperativa, e um primeiro contacto com cálculo científico. Com base nos conhecimentos adquiridos os alunos deverão ser capazes de caminhar para a construção/alteração de programas mais complexos e aprender com facilidade outras linguagens/sistemas/produtos utilizados em ambientes científicos (Fortran, C, Maple, Matlab, etc) e evoluir, se necessário, para o paradigma de programação “object oriented”.
Conteúdos Programáticos
Utilização do interpretador em modo script e interativo.
Variáveis, expressões e instruções.
Definição e Uso de Funções.
Estruturas de controlo.
Estruturas de dados nativas.
Estruturas de dados sequenciais: listas, tuplos e strings.
Estruturas de dados associativas: dicionários.
Conceitos básicos de input/output (I/O).
Manipulação de ficheiros.
Interface gráfica.
Recurso a bibliotecas / módulos.
Bibliotecas com funcionalidade avançada para cálculo científico.
Desenvolvimento de programas
Métodos de Ensino
exercícios, de dificuldade incremental, cobrindo os tópicos ensinados, para os alunos praticarem o seu domínio da
matéria.
A avaliação é constituída por dois componentes: (i) testes intercalares (avaliação contínua) ou um exame final
(avaliação por exame); (ii) desenvolvimento de um pequeno projeto de programação. O componente (i) vale 75% na nota final e o componente (ii) 25%. O aluno pode escolher entre avaliação contínua ou por exame.
Bibliografia
Think Python - How to Think Like a Computer Scientist
Allen Downey
Maio de 2012
Introduction to Python for Econometrics, Statistics and Data Analysis
Kevin Sheppard
University of Oxford, 2013
PYTHON PROGRAMMING - AN INTRODUCTION TO COMPUTER SCIENCE
John M. Zelle
2004
Equipa Docente
- António Manuel Ribeiro dos Anjos [responsável]