Knowledge of other programming languages is welcome but not mandatory. If DPOO or similar courses have been completed, that is sufficient.
It is necessary to have knowledge of multivariable functions. If the Statistics and Mathematical Analysis course has been taken, that is sufficient.
Otherwise, consult the professor.
The objectives of the course are as follows:
1. Acquire basic physics knowledge applied to the world of graphics and digital animation.
2. Develop skills to implement physics knowledge in simulation environments from scratch.
3. Develop skills in using existing physics libraries.
4. Acquire knowledge in machine learning.
5. Develop skills to implement learning algorithms from scratch with applications to graphics and animation problems.
6. Develop skills in the use of machine learning libraries.
1. Vectors
Review of the basic concepts of vectors and their algorithmic implementation.
2. Forces
Newton's law and its numerical implementation.
3. Momentum and energy
Application of momentum and collision calculations through energy conservation.
4. Rotational motion
Implementation of different types of motion within the same system.
5. Gravitational laws
Implementation of complex situations and multi-body problems.
6. Oscillations and waves
Simple harmonic motion and its usefulness in physical simulation.
7. Electric field
Implementation of electric potentials and their relation to forces.
8. Magnetic field
Extension of the electric field to create complex electromagnetic systems.
9. Introduction to AI
Introduction to the world of artificial intelligence and familiarization with its ideas and concepts.
10. Genetic algorithms
Definition of adaptive algorithms and their integration into physical environments.
11. Neural networks
Introduction to neural networks and their hybridization with genetic algorithms.
The teaching methodology is based on lectures where key knowledge is taught, combined with practical sessions where this knowledge is implemented, as well as weekly exercises or more complete projects. The programming environment used will be Python with various libraries.
Assessment consists of a combination of short theoretical tests, practical continuous assessment exercises, and complete projects carried out during the course. Each component has a similar weight.
The evaluation criteria will be adjusted to verify whether the student has achieved the course objectives described above.
The Nature of Code, Daniel Shiffman
A Visual Guide to Evolution Strategies, David Ha
Physics for Scientists and Engineers, Raymond Serway & John Jewet