|
Computadores e Programação
EB 2017 . 2018 - 2º semestre
Especificação técnica - ficha curricular Elementos especificos
Objectivos formativos
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. Programa genérico mínimo
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. Pré-requisitos
Nenhuns
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
Método de avaliação
Bibliografia de referência
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 Método 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. Recursos específicos utilizados
Laboratório de computação
|