Este es un curso de posgrado dictado por miembros del Departamento de Informática de la Facultad de Ciencias Exactas de la Universidad Nacional de Salta
Dr. Javier Edgardo Trenti
- Dr. Javier Edgardo Trenti javiertrenti@gmail.com
- Lic. Dario Ledesma rdledesma1995@gmail.com
- Lic. Maria Laura Massé mlmassep.unsa@gmail.com
- Lic. Cecilia Espinoza cespinoza@di.unsa.edu.ar
La disponibilidad de datos con el avance de las tecnologías para recabarlos ha crecido de modo exponencial de unos años a esta parte. Según estadísticas de YouTube, en 2019 se subían 500 horas de contenidos en video por minuto, lo cual significa que YouTube mantiene en sus servidores varios petabytes de memoria persistente. Para el año 2010, la corporación de almacenes de descuentos Walmart registraba en sus terminales de servicios un millón de transacciones por hora, y sus bases de datos contenían 2.5 petabytes de información. Un petabyte representa 260 bytes, esto es 1.152.921.504.606.846.976 de bytes que pueden almacenar 8.260.000 minutos de video de alta resolución (FHD 1080), 200 millones de canciones en formato MP3, o 500.000 millones de páginas de texto. Si bien los proyectos de investigación en general no llegan a tal profusión de datos, lo cierto es que recopilan a menudo grandes cantidades de datos que requieren ser procesados. Estos contienen información de mucho valor para un investigador, entonces, resulta necesario aprender a utilizar herramientas que permitan administrar esas fuentes para obtener de manera eficiente el respaldo y la evidencia que den sustento a las tesis propuestas.
El objetivo general del curso es proveer a los participantes de instrumentos para el análisis de grandes cantidades de datos. Se aplicará para tal propósito el lenguaje de programación Python, cuya utilización en los últimos años, está asociada directamente a la ciencia de datos e inteligencia artificial. Dada la necesidad de organizar los datos para un buen uso de los mismos, se introducirán los tipos de datos elementales (int, float, str, bool), las estructuras de control básicas (for, while, if), estructuras de datos clásicas de Python (listas, diccionarios), el concepto de función, de recursión, y métodos de entrada, análisis y salida de datos. Se realizará una breve introducción a la programación orientada a objetos y al concepto de complejidad de algoritmos. Se proporcionará conocimiento para el uso de librerías asociadas con la administración de datos, así como la búsqueda de patrones entre los mismos mediante modelos de aprendizaje automático.
Python es un lenguaje moderno y versátil. Fue concebido para facilitar la colaboración y el intercambio de código. Es uno de los lenguajes más utilizados hoy en día y es el más solicitado en el ámbito profesional. Es utilizado para analizar datos, resolver problemas numéricos, realizar cálculos estadísticos, como plataforma de implementación de algoritmos de aprendizaje automático y en general, como herramienta para resolver los grandes desafíos de la ciencia, la ingeniería, la medicina y los negocios. Este curso procura preparar a los estudiantes para poder programar algoritmos y comprender los métodos desarrollados por otros. Los conocimientos adquiridos serán fundamentales para que los estudiantes puedan luego profundizar en los diferentes temas antes mencionados.
- Modalidad: Presencial.
- Duración total del curso: 60 horas reloj.
- Distribución de horas:
- 40 horas de clases teóricas y prácticas (dos encuentros presenciales semanales de 2 horas cada uno)
- 20 horas de consulta/tutoría remota
- Unidad 1: El entorno y las variables: Diferentes entornos de programación Python (consola, IDE, notebooks). Sintaxis del lenguaje. Tipos de datos básicos. Funciones y su documentación.
- Unidad 2: Estructuras de control: Condicionales. Iteraciones. Comprensión de listas. Recursión.
- Unidad 3: Estructuras de datos: Diccionarios, listas, tuplas, vectores y matrices.
- Unidad 4: Programación orientada a objetos y tipos abstractos de datos: Concepto de objeto y método. Lista, pila, cola y árboles binarios. Sobrecarga de Operadores. Decoradores. Distribución del código abierto.
- Unidad 5: Python para el análisis de datos: Archivos de entrada/salida. Obtención de archivos con clientes FTP. Cómputo de estadísticas. Visualización de datos. Librerías disponibles. Datos de Origen Satelital: Formatos NetCDF, Shapfiles, Generación de Mapas.
- Unidad 6: Introducción al aprendizaje automático: Modelos de aprendizaje automático. Sobreajuste. Validación. Regresión. Clasificación. Clustering. Librerías disponibles. Regresión Lineal, Perceptron Multicapa, Arboles de Decisión. Bagging. Boosting. K-Means. Introducción las series temporales: tendencia, estacionalidad. Redes LSTM. Exportación de Modelos.
- Unidad 7: Aplicaciones de la programación: Aplicaciones científicas. Aplicaciones en la ingeniería. Casos de uso en Simulación numérica y modelado computacional. Análisis de datos experimentales en laboratorios.
Los contenidos se organizan en clases teórico/prácticas y trabajos prácticos de laboratorio. En cada tema se incluyen actividades prácticas que promueven la participación de los estudiantes. Los conceptos más elementales de programación serán introducidos al inicio del curso y se profundizará en los mismos a lo largo del dictado. Las diferentes técnicas estudiadas serán introducidas con una breve descripción teórica y con énfasis en su aplicación a diversos ejemplos. Los estudiantes realizan ejercicios en el laboratorio supervisados por los docentes.
Para aprobar el curso, los aspirantes deberán elaborar un trabajo final sobre una situación problemática planteada por los docentes. Este problema podrá relacionarse con el campo de acción de cada estudiante integrando todos los conceptos adquiridos. Dicho trabajo se considerará aprobado si obtiene una calificación igual o mayor a 6 (seis).
ReTEC - Revista Electrónica de Tecnología, Educación y Ciencia, es una revista de carácter científico y multidisciplinar que surge como resultado del esfuerzo conjunto del Departamento de Informática y del C.I.D.I.A. - Centro de Investigación y Desarrollo en Informática Aplicada que dependen de la Facultad de Ciencias Exactas de la Universidad Nacional de Salta, con la finalidad de conseguir una investigación de calidad y excelencia mediante la difusión, especialmente, de trabajos centrados en las tecnología de la información y su aplicación a la educación y a la mejora de la sociedad. https://retec.unsa.edu.ar/ojs/index.php/retec
1 a 5 (Insuficiente); 6 a 7 (Bueno); 8 a 9 (Muy Bueno) y 10 (Sobresaliente).
Nociones de estructuras de control y diseño de algoritmos.