DEPARTAMENTO DE FÍSICA

 

Computadores e Programação - EF

Ano letivo: 2014-2015
Especificação técnica - ficha curricular

Elementos especificos
código da disciplinaciclo de estudossemestre lectivocréditos ECTSlíngua de ensino
1002607124.5pt


Objectivos formativos
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 objectos e capacidade operacional de programação numa linguagem de programação de muito alto nível(Python). 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. Capacidade para realizar, em grupo, e de forma modular, pequenos projectos de software.
Programa genérico mínimo
O modelo de von Neumann do computador digital. Arquitectura de um computador moderno.
Representação digital de dados. Códigos binários para representação de inteiros, reais (vírgula flutuante), caracteres (ASCII, unicode), imagem e som.
Operações numéricas sobre dados binários. Processadores. Funcionamento de um CPU. Linguagens de programação. Sistemas operativos.
Introdução à linguagem de programação Python.
A instrução de atribuição. Aliasing. Noção de ponteiro.
Tipos numéricos: inteiros, inteiros longos, números em vírgula flutuante e complexos.
Sequências (listas, tuplas e sequências de caracteres). Booleanos e operações sobre booleanos. Iteração sobre sequências e operações de fatiagem.
Abrangências. Dicionários.
Instruções de controlo de fluxo.
Funções. Espaço dos nomes e regras de alcance. Mecanismo de passagem de argumentos e devolução de valores.
Programação funcional e imperativa.
Módulos. Ferramentas de introspecção e metaprogramação.
Ficheiros. Formatação. Redirecção dos canais de fluxo de entrada e saída.
Excepções. As instruções raise e try..except..finally.
Programação orientada por objectos. Noção de classe e instâncias de classe. Atributos e métodos. Herança, encapsulamento e polimorfismo. Sobrecarga de operadores.
Recursão. Iteradores e geradores.

Aplicações em Análise Numérica aplicada a problemas de Engenharia.
Resolução de equações não-lineares
Interpolação de Lagrange.
Ajuste de curvas por mínimos quadrados.
Derivação e integração numérica
Resolução de equações diferenciais ordinárias (aplicações: equações do decaimento radioactivo, osciladores, projécteis, movimento planetário, etc. )
Método de Monte-Carlo (aplicações simples).
Pré-requisitos
Competências genéricas a atingir
. Conhecimentos de informática relativos ao âmbito do estudo;
. Competência para resolver problemas;
. Uso da internet como meio de comunicação e fonte de informação;
. Competência em raciocínio crítico;
. Competência em aplicar na prática os conhecimentos teóricos;
. Competência em análise e síntese;
. Competência em organização e planificação;
. Conhecimento de uma língua estrangeira;
. Competência em gestão da informação;
. Competência em trabalho em grupo;
. Criatividade;
(por ordem decrescente de importância)
Horas lectivas semestrais
aulas práticas laboratoriais45
total horas lectivas45

Método de avaliação
Frequência100 %
Exame100 %

Bibliografia de referência
1.Documentação online do Python:
?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
Método de ensino
O ensino desta disciplina é teórico-prático, com grande ênfase no 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.
Recursos específicos utilizados
Laboratório de computação