Profesor: Erick Palacios Moreno
Integrantes del equipo
# | Alumno | Clave única | usuario de Github | Roles |
---|---|---|---|---|
1 | Angel Rafael Ortega Ramírez | 123972 | 123972 | Project Manager |
2 | Elizabeth Rodriguez | 191430 | erodriguezul | Revisión de código |
3 | Karla Alfaro Pizaña | 137314 | alpika19186 | Revisión de código |
4 | Leonardo Marín | 175903 | leonardomarintellez | Programador |
5 | Mario Rodríguez | 164471 | shimanteko | Programador |
6 | Elizabeth Viveros | 161224 | ElyVV | Programadora |
La estructura del repositorio está basado en este template y está organizado de la siguiente forma:
-
Carpeta avances: contiene los avances de cada una de las etapas del proyecto.
-
Carpeta data: contiene la base de datos a utilizar.
-
Carpeta docker: Contiene la información pertienete para poder correr los scripts y notebooks en un contenedor de docker.
-
Carpeta docs: Contiene la carpeta img que incluye las imagenes empleadas en el reporte final.
-
Carpeta environment: Contiene el ambiente con las instalaciones de python empleadas en este proyecto. Dichas instalaciones también se pueden instalar vía el archivo de requirements.txt
-
Carpeta notebooks: Contiene tres carpetas con los notebooks de las siguentes secciones: EDA, Programación y Revisión.
-
Carpeta results:Esta carpeta contiene los resultados obtenidos por el proyecto, así como la presentación y el reporte final.
-
Carpeta references: Incluye todas las referencias consultadas durante el proyecto.
-
Carpeta src: Incluye todos los scripts separados en dos secciones:pca y test algorithms
Cada integrante tendrá una calificación (un número: de 0 a 10) dependiendo de su trabajo individual. Para la revisión del trabajo por cada integrante, se seleccionarán y agendarán equipos durante los sábados de los meses de abril y mayo en los que se deberá exponer lo que han realizado.
En el nivel:
analisis-numerico-computo-cientifico/proyecto_final/proyectos/equipos
se tendrán directorios para que cada equipo coloque los avances que ha realizado (ver ejemplo).
El archivo README.md debajo del nivel:
analisis-numerico-computo-cientifico/proyecto_final/proyectos/
es un archivo de control para la lista de proyectos y únicamente lo actualiza/modifica el prof. con comentarios para sus avances, títulos y objetivos de su proyectos y ligas hacia sus avances, trabajo escrito, presentación e implementación de su proyecto.
*Las ligas hacia el trabajo escrito y presentación son hacia otro lado (p.ej. una liga de dropbox en donde tienen pdfs o lo que utilicen para realizar esto) y no hacia directorios dentro del repositorio de la materia. Así evitamos tener archivos grandes en este repo :) y la liga hacia la implementación sí es al repo.
-
Ojo: deben entregarse los 4 rubros: implementación, trabajo escrito, presentación y avances para que se considere válido el proyecto final. Si alguno de estos rubros no es entregado en tiempo y forma se tendrá 0 en el proyecto final.
-
Ojo: Si un equipo no presenta avance alguno en las fechas de los sábados de abril y mayo que se les pide asistan, tendrán 0 en el rubro de avances y por tanto 0 en el proyecto final.
Que l@s estudiantes refuercen la teoría vista en el curso con la investigación e implementación de un método numérico en su forma en paralelo para resolver un problema relacionado con la optimización numérica y en aplicaciones de áreas como análisis numérico y cómputo científico, inteligencia artificial, machine learning, estadística, bioestadística, física, economía, actuaría, ingeniería, finanzas o big data.
Cada equipo realiza una investigación del método numérico elegido para su estudio, reporte en un trabajo escrito, presentación e implementación para resolver el problema definido por el equipo en el marco del objetivo anterior. La definición del problema se discute entre los integrantes del equipo y con el profesor. Juntos determinan el tiempo que requieren para la entrega del proyecto, para ello, semanalmente se solicitan avances del proyecto, siendo parte fundamental para el éxito del mismo. Más indicaciones respecto a esto último se encuentran en indicaciones.
La implementación de los métodos numéricos es fundamental para el proyecto. Esta implementación utiliza código escrito en R, Python, C o algún otro lenguaje para resolver los objetivos de cada equipo. El código debe crearse dentro de un repositorio en github
, utilizar docker
, AWS
y cómputo en paralelo.
Tiene un porcentaje de 40% y la calificación es por equipo. Se entrega el código de la implementación en una liga a ella, más información sobre esta liga en indicaciones.
El trabajo escrito consiste en el reporte de la investigación realizada y los resultados obtenidos. Se dan referencias utilizadas. No se sube al repo del curso, pero se proporciona una liga al mismo, más información sobre esta liga en indicaciones.
Tiene un porcentaje de 20% y la calificación es por equipo. Se entrega una semana antes de la fecha del examen final en un 95% completo.
Se realiza una presentación de máximo 20 min por cada equipo para reporte sobre el trabajo realizado y resultados. En esta presentación no se entra en detalles sobre los métodos, sólo cuestiones generales. No se sube al repo del curso, pero se proporciona una liga al mismo, más información sobre esta liga en indicaciones.
Tiene dos calificaciones 10% de forma individual y 5% para el equipo. Se realiza en la fecha del examen final determinada por control escolar.
Tienen un porcentaje de 25% y encuentran más información en indicaciones.
La calificación se conforma de los porcentajes anteriores:
-
avances de forma individual (25%).
-
trabajo escrito por equipo (20%).
-
presentación individual (10%) y por equipo (5%).
-
implementación del método numérico por equipo (40%).
El porcentaje del proyecto de acuerdo a la primera clase del curso tiene un porcentaje del 40%
de la calificación final.
Ojo: deben entregarse los 4 rubros: implementación, trabajo escrito, presentación y avances para que se considere válido el proyecto final. Si alguno de estos rubros no es entregado en tiempo y forma se tendrá 0 en el proyecto final.
La siguiente lista no pretende ser exhaustiva.
-
Multiplicación de matrices.
-
Multiplicación de tensores.
-
Reglas de integración.
-
Métodos para resolver sistemas de ecuaciones lineales: triangulares, sparse, densos.
-
Factorización de matrices: lu, cholesky, qr, svd.
-
Cálculo de eigenvalores, eigenvectores.
-
Generación de números aleatorios.
-
Ordenamiento de elementos en un arreglo.
-
Mínimos cuadrados.
-
Componentes principales.
-
Sistemas de ecuaciones diferenciales.
-
Algoritmos basados en árboles o grafos.
-
Métodos numéricos para optimización: métodos de descenso, métodos Quasi-Newton, métodos de aproximación de rango reducido o rango bajo.
Los métodos numéricos deben ser utilizados en problemas de optimización numérica y en aplicaciones detalladas al inicio.