Computadores e Programação - F

Ano letivo: 2012-2013
Specification sheet

Specific details
course codecycle os studiesacademic semestercredits ECTSteaching language

Learning goals

Central Importance: Generic knowledge of the functioning of a computer and the digital representation of data.

Ability to equate the resolution of a problem in the form of an algorithm. Knowledge of the imperative, functional and object-oriented programming paradigms and operational ability to program using a very high level programming language (Python).

Secondary importance. Ability to search and use bibliography and appropriate software tools using the internet.

Operational knowledge of basic algorithms for numerical analysis that are applied to simple situations of physics.

Ability to carry out small software projects in group and in a modular form.


The Von Neumann digital computer model.  Architecture of a modern computer.

Digital representation of data. Binary codes for the representation of whole numbers, real numbers (floating point), characters (ASCII, Unicode), image and sound.

Numerical operations on binary data. Processors. Functioning of a CPU. Programming languages. Operating systems.

Introduction to Python programming language.

The instruction of attribution. Aliasing. The notion of pointer.

Numerical types: integers, long integers, floating point and complex numbers. Sequences (lists, tuples and character sequences). Booleans and Booleans operations. Interaction sequences and slicing operations.

Extents. Dictionaries.

Flux control instructions.

Functions. Namespace and range rules. Passage mechanism of arguments and value return.

Functional and imperative programming.

Modules: Introspection tools and metaprogramming.

Files: Formatting. Redirection of entry and exit flux channels.

Exceptions. The instructions – #raise, #try, #except, #finally.

Object-oriented programming. Notion of class and class instances.

Attributes and methods. Inheritance, Encapsulation and Polymorphism. Operator Overloading.

Resources. Iterators and generators.

Applications in Numerical Analysis applied to Physics problems.

Resolution of non-linear equations.

Lagrange’s interpolation.

Curve adjustment by the least-squares.

Derivation and numerical integration.

Resolution of ordinary differential equations (applications: radioactive decay equations, oscillators, projectiles, planetary motion, etc.)

Monte Carlo Method (simple applications)

nt class=column grid_10> Computers and Programming ‹ back to study programme Academic year 2012-2013
Generic skills to reach
. Computer Skills for the scope of the study;
. Competence to solve problems;
. Using the internet as a communication medium and information source;
. Critical thinking;
. Competence in applying theoretical knowledge in practice;
. Competence in analysis and synthesis;
. Competence in organization and planning;
. Knowledge of a foreign language;
. Competence in information management;
. Competence for working in group;
. Creativity;
(by decreasing order of importance)
Teaching hours per semester
laboratory classes60
total of teaching hours60

Problem solving30 %
Project30 %
Mini tests40 %
assessment implementation in 20122013
Resolution Problems: 30.0%
Project: 30.0%
Mini Tests: 40.0%

Bibliography of reference

GUIDO van ROSSUM. Tutorial de Python.

LUTZ, M.; ASCHER, D. Learning Python. O’Reilly

DOWNEY, A.; ELKNER, J. & MAYERS, C. How to think like a computer scientist. Green Tee Press.

KIUSALAAS, J. Numerical methods in engineering with Python. Cambridge University Press.

MARUCH, S.; MARUCH, A. Python for dummies. Wiley.

Teaching method

The teaching of this curricular unit is theoretical-practical focusing on the understanding and development of algorithms for concrete problems, including a first approach to some numerical analysis tools that are applied to simple problems of physics.

Resources used
Laboratório de computação