Grado en Matemáticas. Programación Conjunta de Estudios Oficiales Grado en Matemáticas y Grado en Física
En este libro se abordan los fundamentos de una programación moderna, con un lenguaje de programación ampliamente utilizado y demandado en disciplinas científicas (Python) para que los alumnos en matemáticas (u otras áreas) puedan tener un perfil versátil a la hora de afrontar problemas de distinta naturaleza matemática. En concreto, se explican las bases del paradigma de Programación Orientada a Objetos (POO) y los Tipos de Datos Abstractos (TDA).
La POO es ideal para modelar algunos objetos matemáticos complejos de uso cotidiano en este campo como matrices, polinomios, funciones, grafos, conjuntos, entre otros. Esto permite al estudiante en matemáticas trabajar con objetos matemáticos abstractos y realizar cálculos complejos de manera más comprensible.
Los TDA son una herramienta fundamental en programación. Para un matemático, le permitirá comprender cómo representar y manipular estructuras complejas, como conjuntos, listas, árboles y grafos, que se utilizan en una amplia variedad de aplicaciones.
El material que se presenta proporciona una introducción a estos temas desde un perspectiva práctica basada en la experiencia docente impartida durante varios años.
INTRODUCCIÓN
BLOQUE TEÓRICO
CAPÍTULO 1. Programación orientada a objetos
1.1. Esquema de contenidos
1.2. Resultados de aprendizaje
1.3. Desarrollo de contenidos fundamentales
1.3.1. Introducción a la POO
1.3.2. Cómo se usa la POO para resolver problemas
1.3.3. Clases
1.3.4. Objetos
1.3.5. TDAs y POO
1.4. Referencias
CAPÍTULO 2. Miembros, sobrecarga y visibilidad
2.1. Esquema de contenidos
2.2. Resultados de aprendizaje
2.3. Desarrollo de contenidos fundamentales
2.3.1. Miembros de una clase
2.3.2. Variables miembros
2.3.3. Métodos miembros
2.3.4. Sobrecarga
2.3.5. Visibilidad
2.4. Referencias
2.5. Anexos
CAPÍTULO 3. Jerarquización
3.1. Esquema de contenidos
3.2. Resultados de aprendizaje
3.3. Desarrollo de contenidos fundamentales
3.3.1. Relaciones entre clases
3.3.2. Relaciones de clientela
3.3.3. Inyección de dependencias
3.3.4. Delegación
3.3.5. Clonación
3.3.6. Herencia
3.4. Referencias
CAPÍTULO 4. Clases abstractas e interfaces
4.1. Esquema de contenidos
4.2. Resultados de aprendizaje
4.3. Desarrollo de contenidos fundamentales
4.3.1. Clases abstractas
4.3.2. Interfaces
4.3.3. Mixin
4.3.4. Intefaces vs Clases Abstractas vs Mixin
4.3.5. Tipos genéricos y clases paramétricas
4.3.6. Principios SOLID
4.4. Referencias
CAPÍTULO 5. Excepciones. Entradas y salidas
5.1. Esquema de contenidos
5.2. Resultados de aprendizaje
5.3. Desarrollo de contenidos fundamentales
5.3.1. Excepciones
5.3.2. Ficheros
5.4. Referencias
CAPÍTULO 6. Interfaz gráfica de usuario
6.1. Esquema de contenidos
6.2. Resultados de aprendizaje
6.3. Desarrollo de contenidos fundamentales
6.3.1. Interfaz Gráfica de Usuario
6.3.2. Ventanas predefinidas
6.3.3. Construcción de Interface Gráficas de Usuario
6.3.4. Patrón MVC
6.4. Referencias
CAPÍTULO 7. Abstracción. Tipos de Datos Abstractos
7.1. Esquema de contenidos
7.2. Resultados de aprendizaje
7.3. Desarrollo de contenidos fundamentales
7.3.1. ¿Qué es la abstracción?
7.3.2. Mecanismos de abstracción
7.3.3. Tipos de abstracción
7.3.4. Tipos de datos abstractos
7.4. Referencias
CAPÍTULO 8. TDA sin relación de orden
8.1. Esquema de contenidos
8.2. Resultados de aprendizaje
8.3. Desarrollo de contenidos fundamentales
8.3.1. Qué son los TDAs sin relación de orden
8.3.2. Estructuras de datos para implementar TDA
8.3.3. TDA Bag
8.3.4. TDA Set
8.3.5. TDA Map
8.4. Referencias
CAPÍTULO 9. TDA con relación de orden lineal
9.1. Esquema de contenido
9.2. Resultados de aprendizaje
9.3. Desarrollo de contenidos fundamentales
9.3.1. Qué son los TDA con ordenación lineal
9.3.2. TDA Lista
9.3.3. Búsqueda y ordenación
9.3.4. TDA Pila
9.3.5. TDA Cola
9.3.6. Colas de prioridad
9.4. Referencias
CAPÍTULO 10. TDA con relación de orden no lineal
10.1. Esquema de contenidos
10.2. Resultados de aprendizaje
10.3. Desarrollo de contenidos fundamentales
10.3.1. Recursión
10.3.2. Qué son los TDAs con ordenación no lineal
10.3.3. TDA Árbol
10.3.4. TDA Árbol Binario
10.3.5. El TDA árbol binario de búsqueda
10.3.6. TDA Heap
10.3.7. TDA Grafo
10.4. Referencias
BLOQUE PRÁCTICO
CAPÍTULO 11. Abstracción y clases
11.1. Desarrollo de la práctica
11.1.1. Objetivos
11.1.2. Contenidos
11.1.3. Metodología
11.1.4. Proceso
11.1.5. Materiales y recursos
11.2. Cronograma y temporización
11.3. Criterios de evaluación
11.4. Referencias
11.5. Anexos
CAPÍTULO 12. Miembros, visibilidad y sobrecarga. TDA sin relación de orden
12.1. Desarrollo de la práctica
12.1.1. Objetivos
12.1.2. Contenidos
12.1.3. Metodología
12.1.4. Proceso
12.1.5. Materiales y recursos
12.2. Cronograma y temporización
12.3. Criterios de evaluación
12.4. Referencias
12.5. Anexos
CAPÍTULO 13. Relaciones entre clases. TDA con relación lineal
13.1. Desarrollo de la práctica
13.1.1. Objetivos
13.1.2. Contenidos
13.1.3. Metodología
13.1.4. Proceso
13.1.5. Materiales y recursos
13.2. Cronograma y temporización
13.3. Criterios de evaluación
13.4. Referencias
13.5. Anexos
CAPÍTULO 14. Proyecto: parte I
14.1. Desarrollo de la práctica
14.1.1. Objetivos
14.1.2. Contenidos
14.1.3. Metodología
14.1.4. Proceso
14.1.5. Materiales y recursos
14.2. Cronograma y temporización
14.3. Criterios de evaluación
14.4. Referencias
14.5. Anexos
CAPÍTULO 15. Herencia. Interfaces. Excepciones. E/S. TDA con relación no lineal
15.1. Desarrollo de la práctica
15.1.1. Objetivos
15.1.2. Contenidos
15.1.3. Metodología
15.1.4. Proceso
15.1.5. Materiales y recursos
15.2. Cronograma y temporización
15.3. Criterios de evaluación
15.4. Referencias
CAPÍTULO 16. Proyecto: parte II
16.1. Desarrollo de la práctica
16.1.1. Objetivos
16.1.2. Contenidos
16.1.3. Metodología
16.1.4. Proceso
16.1.5. Materiales y recursos
16.2. Cronograma y temporización
16.3. Criterios de evaluación
16.4. Referencias