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.
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.
nt class=column grid_10> Computers and Programming ‹ back to study programme Academic year 2011-2012
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
total of teaching hours
assessment implementation in 20112012 Project: 30.0% Resolution Problems: 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.
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.