Conocimientos sobre otros lenguajes de programación son bienvenidos, pero no obligatorios. Si se ha cursado DPOO o asignaturas similares, es suficiente.
Es necesario tener conocimientos sobre funciones de varias variables. Si se ha cursado la asignatura de Estadística y Análisis Matemático, es suficiente.
En caso contrario, consulte con el profesor.
Los objetivos de la asignatura son los siguientes:
1. Adquirir conocimientos de física básica aplicados al mundo de los gráficos y la animación digital.
2. Adquirir competencias para implementar los conocimientos de física en entornos de simulación y desde cero.
3. Adquirir competencias en el uso de librerías de física ya desarrolladas.
4. Adquirir conocimientos en aprendizaje automático.
5. Adquirir competencias para implementar desde cero algoritmos de aprendizaje con aplicaciones a problemas de gráficos y animación.
6. Adquirir competencias en el uso de librerías de aprendizaje automático.
1. Vectores
Recordatorio de conceptos básicos de vectores y su implementación algorítmica.
2. Fuerzas
La ley de Newton y su implementación numérica.
3. Impulso y energía
Aplicación del impulso y cálculo de colisiones mediante la conservación de la energía.
4. Movimiento rotatorio
Implementación de diferentes tipos de movimientos en un mismo sistema.
5. Leyes gravitacionales
Implementación de situaciones complejas y problemas multicírculo.
6. Oscilaciones y ondas
El movimiento armónico simple y su utilidad en la simulación física.
7. Campo eléctrico
Implementación de potenciales eléctricos y su relación con las fuerzas.
8. Campo magnético
Ampliación del campo eléctrico para crear sistemas electromagnéticos complejos.
9. Introducción a la IA
Introducción al mundo de la inteligencia artificial y familiarización con sus ideas y conceptos.
10. Algoritmos genéticos
Definición de algoritmos adaptativos y su integración en entornos físicos.
11. Redes neuronales
Introducción a las redes neuronales y a la hibridación con los algoritmos genéticos.
La metodología empleada se basa en clases magistrales donde se impartirán conocimientos combinadas con sesiones prácticas donde se implementarán estos conocimientos, así como ejercicios semanales o prácticas más completas. El entorno de programación que se utilizará es Python, con diversas librerías.
La evaluación consta de una combinación de tests teóricos cortos, ejercicios prácticos de evaluación continua y prácticas completas que se realizarán durante el curso. El peso de cada una de las partes es similar.
Los criterios de evaluación se ajustarán para comprobar si el estudiante ha alcanzado los objetivos de la asignatura descritos anteriormente.
The Nature of Code, Daniel Shiffman
A Visual Guide to Evolution Strategies, David Ha
Physics for Scientists and Engineers, Raymond Serway & John Jewet