Computadores e Programação

Ano
1
Ano lectivo
2020-2021
Código
01002420
Área Científica
Engenharia
Língua de Ensino
Português
Modo de Ensino
Presencial
Duração
Semestral
Créditos ECTS
6.0
Tipo
Obrigatória
Nível
1º Ciclo - Licenciatura

Conhecimentos de Base Recomendados

N.A.

Métodos de Ensino

O ensino desta disciplina é teórico-prático, com grande ênfase na compreensão e desenvolvimento de algoritmos para problemas concretos, incluindo uma primeira abordagem a algumas ferramentas de análise numérica aplicada a problemas simples de física e de lógica.
As aulas comportam uma pequena exposição introdutória sobre aspetos formais da linguagem e no restante os alunos são desafiados a resolver interactivamente um conjunto de problemas utilizando a linguagem Python.

Resultados de Aprendizagem

Objetivos de importância central:
- Conhecimento genérico do funcionamento de um computador e da representação de dados em formato digital.
- Capacidade de equacionar a resolução de um problema sobre a forma de um algoritmo.
- Conhecimento dos paradigmas da programação imperativa, funcional e por objetos.
- Capacidade operacional de programação numa linguagem de programação de muito alto nível (Python).
Objetivos de importância secundária:
- Capacidade para procurar e utilizar bibliografia e ferramentas de software adequadas usando a internet.
- Conhecimento operacional de algoritmos básicos de análise numérica aplicados a situações simples da física e da engenharia.
- Capacidade para realizar, em grupo, e de forma modular, pequenos projetos de software.

Estágio(s)

Não

Programa

Arquitetura (modelo de von Neumann) de um computador digital. Sistemas operativos.
Representação binária de números inteiros e reais, texto, imagens e som.
Introdução à linguagem Python.
A instrução de atribuição. Noção de ponteiro e “aliasing”.
Tipos numéricos: inteiros, inteiros longos, vírgula flutuante e complexos.
Booleanos.
Sequências (listas, tuplas e strings) e conjuntos. Iteração e fatiagem. Abrangências.
Dicionários.
Instruções de controlo de fluxo.
Funções. Espaço dos nomes e regras de alcance. Mecanismo de passagem e devolução de argumentos.
Programação imperativa e funcional.
Módulos. Ficheiros. Formatação. Redirecção dos canais de entrada/saida.
Exceções e estruturas de gestão.
Programação orientada por objetos. Classe e instanciação. Atributos e métodos. Herança, encapsulamento e polimorfismo. Sobrecarga de operadores. Introspeção e metaprogramação.
Recursão. Iteradores e geradores.
Métodos Numéricos básicos aplicados a problemas de Engenharia.

Métodos de Avaliação

Avaliação
Exame: 100.0%

Bibliografia

1. Documentação online do Python:
- Homepage: http://www.python.org
- Tutorial: http://docs.python.org/tutorial/introduction.html
- Tutorial em português: http://turing.com.br/pydoc/2.7/tutorial/introduction.html
2. Learning Python, M. Lutz, D. Ascher, O'Reilly
3. How to think like a computer scientist, A. Downey, J. Elkner & C. Mayers, Green Tee Press
4. Numerical methods in engineering with Python, J Kiusalaas, Cambridge University Press
5. Python for dummies, S. Maruch, A. Maruch, Wiley
6. Computadores e Programação – Apontamentos da disciplina, Helmut Wolters