Física Opcional

Computadores e Programação

Física 6.0 ECTS 1º Ciclo - Licenciatura
Ano
0
Ano lectivo
2026-2027
Código
01002420
Área Científica
Física
Língua de Ensino
Português
Modo de Ensino
Presencial
Duração
Semestral
Créditos ECTS
6.0
Tipo
Opcional
Nível
1º Ciclo - Licenciatura

Conhecimentos de Base Recomendados

Não aplicável.

Métodos de Ensino

O ensino desta disciplina é 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.

Docente(s) responsável(eis)

Maria Filomena de Osório Pinto dos Santos Figueiredo

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, 5th Edition, M. Lutz, D. Ascher, Ed. O'Reilly Media Inc, CA, 2013
3. How to think like a computer scientist, A. Downey, J. Elkner & C. Mayers, Green Tee Press, 2018
4. Numerical methods in engineering with Python, J Kiusalaas, Cambridge University Press, 2014
5. Learning to Program with Python, Richard L. Halterman,, Southern Adventist University, 2011.