|course code||cycle os studies||academic semester||credits ECTS||teaching language|
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.
Resolution of non-linear equations.
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)
|total of teaching hours||60|
|Problem solving||30 %|
|Mini tests||40 %|
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.