**HMC** Hedonismo, Matemáticas y Computación Grupo de Estudio del Dpto. Ciencias de la Computación e Inteligencia Artificial (Universidad de Sevilla) Año 2022-2023 # Introducción ![](./img/main-logo.png align=right width=40%)**HMC** no es un grupo de estudio de **Matemáticas Computacionales**, ni **Matemáticas para las Ciencias de la Computación**, sino de **Matemáticas Y Ciencias de la Computación**. Desde el momento en que las Ciencias de la Computación son una rama y extensión natural de las Matemáticas ya no puede ser un fin el centrarse en ninguna de los dos de forma aislada. En este sentido, el ideal que persigue el grupo es el de encontrar temas que resulten interesantes y útiles a sus miembros, ya sea por el placer propio que proporcionan las temáticas de ambas disciplinas o como medio para llegar a entender algún área que proporcione ese placer: el principio del **Hedonismo Intelectual**. # Contenido El contenido que se propone es (y será) adaptable al gusto de los miembros del grupo. A pesar de ello, en una primera fase se propone el estudio de algunos fundamentos de las ramas principales de las Matemáticas que parecen centrales en la comprensión de otras o proporcionan herramientas de utilidad demostrada. Uno de los objetivos principales de este grupo es ayudar a sus miembros a alcanzar cierta independencia y comodidad en el uso del lenguaje formal matemático, que es la base de todo el conocimiento científico desarrollado en los últimos siglos. En algunos momentos del curso es probable que nos apoyemos en herramientas de programación (en general, herramientas computacionales) para cumplir el doble propósito de afianzar el uso de la computación con fines científicos y ayudar a la asimilación de los conceptos matemáticos subyacentes. La siguiente lista enumera, sin orden ni exhaustividad, algunos posibles conjuntos temáticos que podrían resultar interesantes: !!!Tip:Contenido 1. **Conceptos de Álgebra Abstracta Básica**: Aunque comenzamos con los apuntes de la asignatura de [**Álgebra Básica**](https://asignatura.us.es/algbas/) que se imparte en el Grado de Matemáticas de la Universidad de Sevilla, pasamos a trabajar sobre el libro [**Álgebra Abstracta**](./recursos/álgebra-abstracta-john-b-fraleigh.pdf) de John F. Fraleigh, que es mucho más completo y tiene ejemplos elaborados que facilitan su estudio. 2. **Conceptos de Geometría Abstracta**. 2. **Fundamentos de Teoría de Conjuntos**. 2. **Lógica Matemática**. 2. **Teoría de la Computabilidad**. 2. **Análisis Real (de una y varias variables)**: Seguiremos el libro [**Calculus with Julia**](https://jverzani.github.io/CalculusWithJuliaNotes.jl/) para matar dos pájaros de un tiro: aprender Análisis Real, y aprender Julia. 2. **Fundamentos de Aprendizaje Automático**: Quizás se pueda hacer algo similar que mezcle fundamentos y Julia. 2. **Teoría de la Optimización**: Quizás se pueda hacer algo similar que mezcle fundamentos y Julia. 2. **Geometric Deep Learning**. # Dinámica Se propone la siguiente metodología de trabajo (siempre con la flexibilidad necesaria para adecuarse a los tiempos de los que disponen sus miembros): 1. Cada tema se estudia de manera individual en un plazo de una semana. No es necesario profundizar en los detalles del tema, basta intentar captar los rasgos fundamentales de su contenido. 2. Uno de los miembros del grupo (rotando en cada semana/tema) se encarga de hacer una presentación detallada, centrándose en los puntos/resultados/demostraciones que puedan ser más interesantes o resultar más complicados. # Programación Científica !!!note: Sobre Julia Aunque los contenidos estudiados son de un carácter fundamentalmente teórico, veremos la implementación de algunas estructuras y métodos, lo que nos facilitará trabajar con algunos de los resultados desde un punto de vista aplicado. Con este fin, se ha buscado un lenguaje de alto nivel, de orientación científica y que tuviera una estructura muy clara y cercana a la formalización matemática. En este sentido, se ha elegido Julia como lenguaje de programación por defecto. ![](img/logo.svg align="right" width="150px")[**Julia**](https://julialang.org/) es un lenguaje de programación **homoicónico** (la representación primaria de los programas escritos en Julia es también una estructura de datos en un tipo primitivo del lenguaje), **multiplataforma**, **multiparadigma**, de **tipado dinámico**, de **alto nivel** y alto desempeño para la **computación genérica, técnica y científica**, con una sintaxis similar a la de otros entornos de computación similares. Dispone de un compilador avanzado (**JIT**, Just in Time), mecanismos para la ejecución en paralelo y distribuida, además de una extensa biblioteca de funciones matemáticas. La biblioteca, desarrollada fundamentalmente en Julia, también contiene código desarrollado en C o Fortran, para el álgebra lineal, generación de números aleatorios, procesamiento de señales, aprendizaje automático, ciencia de datos y procesamiento de cadenas. Adicionalmente, la comunidad de desarrolladores de Julia contribuye con la creación y distribución de paquetes externos a través del [gestor de paquetes](https://juliapackages.com/) integrado de Julia a un paso acelerado. Además, hay muchos entornos de programación (como [VSCode](https://code.visualstudio.com/), [Atom](https://atom.io/), etc.) que proporcionan extensiones específicas para facilitar el trabajo con Julia, así como sistemas de notebooks que permiten usar Julia como lenguaje de desarrollo ([Jupyter](https://jupyter.org/) y [Pluto](https://www.juliapackages.com/p/pluto)) o entornos interactivos como [IJulia](https://juliapackages.com/p/ijulia). !!!Tip: Recursos de Julia * [Istalación Julia con `juliaup`](installJulia.md.html) * [Manual brevísimo](Julia.md.html). * [Colección de implementaciones: Beautiful Algorithms](https://github.com/mossr/BeautifulAlgorithms.jl). * [Instalar Julia con VSCode](https://www.juliabloggers.com/installing-julia-1-8-and-vscode/). * [Instalar paquetes en Julia](https://datatofish.com/install-package-julia/). * [Entendiendo los paquetes y entornos de Julia](PkgEnv.md.html) # Miembros | Nombre (orden alfabético)| |:------------------------:| |[Pedro Almagro Blanco](https://www.cs.us.es/~palmagro/) | |Isabel Mylonás Ojeda | |[Víctor Ramos González](https://www.cs.us.es/~vramos/) | |[Fernando Sancho Caparrini](https://www.cs.us.es/~fsancho/) |