Análisis de Algoritmos y Estructuras de Datos
Instructor
- Ing. Carlos Roberto Álvarez Barragán
Objetivo
Establecer las bases del análisis de algoritmos a través de notación asintótica y el entendimiento de distintas técnicas que permiten establecer la complejidad de distintos algoritmos. Entender estos principios permitirán un mejor entendimiento del mismo análisis pero de algoritmos desarrollados para plataformas paralelas o distribuidas.
Contenido
- Temas introductorios
- Dividir y vencer: Recursividad y métodos para el análisis
- Quicksort
- Ordenamientos de tiempo lineal
- Tablas de hash y funciones de hash
- Introducción a árboles y su importancia
Multiprocesamiento en lenguaje C (para profesores)
Instructores
- Ing. Laura Sandoval Montaño
- M.I. Elba Karen Sáenz García
- M.I Oscar René Valdez Casillas
Objetivo
Presentar al participante las bases para la elaboración de programas paralelos que agilicen el cómputo de aplicaciones de cálculo intensivo; así como aprovechar las arquitecturas paralelas que están al alcance de la mayoría de los usuarios académicos.
Contenido
- Conceptos básicos de computación paralela
- Sistemas de multiprocesamiento
- Demandas de aplicación
- Arquitecturas paralelas
- Taxonomía de Flynn
- Arquitectura de memoria compartida
- Arquitectura multicore
- Creación y manejo de procesos en lenguaje C
- Estados de un proceso
- Estructura de un proceso
- Creación de procesos en UNIX
- Manejo de procesos en UNIX
- Manejo y creación de hilos en lenguaje C
- Diferencias entre hilos y procesos
- Estructura de un hilo
- Manejo de hilos POSIX
- Algoritmos paralelos
- Niveles de paralelismo
- Paradigmas de programación paralela
- Metodologías de diseño
- Ejemplos aplicativos de la programación paralela
- Herramientas de desarrollo y aplicaciones
- OpenMP
- MPI
Material
Multiprocesamiento en lenguaje C
Instructor
- Luis Manuel García Hernández
Objetivo
El alumno conocerá los principios básicos de la programación paralela, así como entornos de desarrollo y aplicaciones actuales.
Contenido
- El multiprocesamiento en la actualidad
- Supercomputadoras
- Programación actual
- Programación secuencial
- Programación paralela
- Los procesos y su creación
- Los hilos y su creación
- Interacción entre procesos e hilos
- Señales
- Tuberías
- Planificación de procesos e hilos
- Por turno - Round Robin
- Herramientas de desarrollo y aplicaciones
- OpenMP
- Aplicaciones gráficas
Material
Programación con Multitareas
Instructores
- Ing. Laura Sandoval Montaño
- Ing. Andrés Mondragón Contreras
Objetivo
Presentar al participante las bases para la elaboración de programas que utilicen multitareas para mejorar su desempeño y aprovechar las arquitecturas de procesadores de varios núcleos.
Contenido
- Fundamentos del procesamiento con multitareas
- Definición de proceso tarea
- Concepto de multitarea/multiprogramación
- Estados de un proceso en multitarea
- Problemas de concurrencia
- Niveles de programación con multitareas
- Programación de multitareas utilizando hilos POSIX
- Diferencias entre hilos y procesos
- Características de los hilos POSIX
- Creación de multitareas/multihilos
- Comunicación y concurrencia de hilos
- Programación de multitareas utilizando un compilador de C paralelo
- Características generales de Cilk++ SDK
- Creación de multitareas
- Consideraciones de concurrencia síncrona y asíncrona
- Medición del desempeño y escalabilidad
Material
Programación de multitareas utilizando hilos
Instructores
- Ing. Laura Sandoval Montaño
- Ing. Manuel Castañeda Castañeda
Objetivo
Presentar al participante las bases para la elaboración de programas que utilicen multi-hilos para mejorar la eficiencia de ambientes de multitareas.
Contenido
- Origen de los hilos como elemento necesario en la programación de multitareas.
- Sistemas de multitareas
- Tarea
- Proceso
- Estados de un proceso
- Concepto de multitarea
- Ambientes de multitarea
- Monoprocesador
- Multiprocesador
- Elementos de programación de multitareas
- Proceso
- Hilo
- Diferencias entre procesos e hilos
- Multihilos
- Multihilos en un solo procesador
- Hilos POSIX
- Hilos en C
- Hilos en Java
- Multihilos en varios procesadores
- Hilos en .NET
- Hilos en Linux
- Implementación
- Estudios de caso
- en .NET
- en Linux
Material
Nociones de scripting y programación en paralelo
Instructores
- M.I. Elba Karen Sáenz García
- M.I. Oscar René Valdez Casillas
Objetivo
Presentar al participante las bases para la elaboración de programas o scripts que aprovechen el tener una arquitectura de varias unidades de procesamiento.
Contenido
- Utilidad de realizar procesamiento paralelo en arquitecturas con varias unidades de procesamiento.
- Ejecución de comandos e implementación de scripts en paralelo.
- Herramientas para programación en paralelo.
Material
Programación paralela con Microsoft .NET
Ponentes
- Ing. Andrés Mondragón Contreras
- Néstor Abdy García Fragoso
Objetivo
Presentar a los participantes una introducción al desarrollo de aplicaicones paralelas con tecnología Microsoft .NET
Contenido
- Introducción y conceptos básicos de paralelismo
- Factores a considerar en la implementación paralela de una aplicación
- Enfoques de diseño
- Identificación de patrones y aplicaciones en C, C++ y C#
- Loops paralelos
- Tareas paralelas
- Agregación paralela
- Futuros
- Paralelismo de tareas dinámicas
Material
Algoritmos seriales vs paralelos
Instructores
- Ariel Ulloa Trejo
- Carlos Aldair Román Balbuena
- Luis Fernando Pérez Franco
Objetivo
El estudiante implementará algoritmos en forma secuencial para determinar las ventajas y desventajas sobre su versión paralela.
Contenido
- Diseño de algoritmos
- Diseño de algoritmos seriales (características, eficiencia, análisis, métricas).
- Diseño de algoritmos paralelos (características, eficiencia, análisis, métricas, herramientas de desarrollo).
- Caso de estudio 1: Quicksort
- Análisis e implementación del algoritmo serial.
- Análisis e implementación del algoritmo paralelo.
- Análisis comparativo.
- Caso de estudio 2: Serie de Fibonacci
- Análisis e implementación del algoritmo serial.
- Análisis e implementación del algoritmo paralelo.
- Análisis comparativo.
- Caso de estudio 3: Problema de las N reinas
- Análisis e implementación del algoritmo serial.
- Análisis e implementación del algoritmo paralelo.
- Análisis comparativo.
- Desarrollo de una aplicación
Material
Programación Paralela en OpenMP
Instructores
- M.I. Elba Karen Sáenz García
- M.I. Oscar René Valdez Casillas
Objetivos
Debido a que en la actualidad las computadoras tienen varias unidades de procesamiento surge la necesidad para los programadores y usuarios avanzados de conocer y utilizar herramientas como OpenMP para el desarrollo de programas que trabajen de una forma eficiente aprovechando las unidades de procesamiento de la computadora.
Al finalizar el curso el participante contará con las bases para la elaboración de programas paralelos utilizando OpenMP que podrá usar en computadoras con arquitectura de memoria compartida.
Contenido
- Memoria Compartida y Arquitectura de Memoria Compartida.
- Introducción al diseño de programas paralelos.
- Etapas de diseño de un programa paralelo (Ian, Foster).
- Multicore Programming Practices.
- Particionamiento o descomposición.
- Descomposición de dominio.
- Descomposición funcional.
- Descomposición pipelined.
- Herramienta para análisis de dependencia de datos y control.
- Gráfica de dependencias.
- Conceptos.
- Concurrencia.
- Paralelismo.
- Modelos de Programación Paralela.
- Modelo de programación en Memoria Compartida.
- Introducción a OpenMP.
- Arquitectura y sitaxis.
- Regiones paralelas.
- Trabajo compartido.
- Variables compartidas y privadas.
- Condiciones de carrera.
- Funciones de ambiente.
- Operación de reducción.
- Regiones críticas.
- Secciones paralelas.
- Constructores single y master.
- Colocar y quitar barreras.
- Paralelismo anidado.
- Paralelismo de tareas.
Material
Seminario de cómputo paralelo
Ponentes
- Ariel Ulloa Trejo
- Carlos Aldair Román Balbuena
- Luis Fernando Pérez Franco
Objetivos
- Conocer las generalidades de: aplicaciones multicore, la biblioteca "Intel Threading Building Blocks" y aplicaciones concurrentes
- Los estudiantes podrán relacionar temas abordados en materias como Algoritmos y Estructuras de Datos, Sistemas Operativos, Estructura y Programación de Computadoras, entre otras
- Los académicos, pueden apoyarse en estos conocimientos, ya sea para dar clases o investigación
- Brindar material de consulta a la comunidad estudiantil de cualquier institución
Contenido
- Multicore Application Programming: For Windows, Linux, and Oracle Solaris (autor: Darryl Gove)
- Hardware, procesos e hilos
- Rendimiento en la codificación
- Códigos
- Intel Threading Building Blocks (autor: James Reinders)
- ¿Qué es Intel Threading Building Blocks?
- Comparación de ITBB con otras herramientas
- Piensa en paralelo
- C++ Concurrency in action (autor: Anthony Williams)
- ¿Qué es concurrencia?
- Porqué usar concurrencia
- Concurrencia y multihilos en C++
Material
Sinopsis de Libros disponibles en el Laboratorio
Analista
- Ing. Andrés Mondragón Contreras
Objetivos
- Con la finalidad de orientar a la comunidad académica y estudiantil interesada en adquirir o aumentar sus conocimientos en temas del área de cómputo paralelo y distribuido, como producto del proyecto PAPIME PE104911 Pertinencia de cómputo paralelo en el currículo de las Ingenierías, presentamos la siguiente sinopsis de los libros adquiridos a través de dicho proyecto.
- La sinopsis indica, para cada título: los temas tratados, los conocimientos antecedentes para entender los temas y el grado de dificultad; de esta forma el interesado podrá solicitar en préstamo el ejemplar que pueda cubrir sus expectativas.
Contenido
- Parallel Programming for Multicore and Cluster Systems (autor: Thomas Rauber)
- Intel Threading Building Blocks (autor: James Reinders)
- Programming Massively Parallel Processors (autor: David B. Kirk)
- Algorithms and Parallel Computing (autor: Fayez Gebali)
- CUDA BY EXAMPLE (autor: Jason Sanders)
- Structured Parallel Programming (autor: Michael McCool)
- C++ Concurrency in action (autor: Anthony Williams)
- Multicore Application Programming (autor: Darryl Gove)
- Parallel Combinatorial Optimization (autor: El-Ghazali Talbi)
- Hadoop In Action (autor: Chuck Lam)
Material
Introducción a CUDA
Instructores
- Ariel Ulloa Trejo
- Luis Fernando Pérez Franco
Objetivo
El alumno conocerá los conceptos básicos de la programación paralela con GPUs utilizando la herramienta CUDA de NVIDIA
Contenido
- Antecedentes
- Programación Serial.
- Programación Paralela.
- Modelos de Programación.
- El GPU
- Terminología usada en CUDA.
- Diferencias entre el GPU y CPU.
- Propiedades de nuestro GPU.
- La función kernel.
- Funciones
- Jerarquia de memoria.
- cudaMalloc, cudaFree, cudaMemcpy.
- Índices.
- Manejo de Matrices
- Detectando errores.
- Matrices.
- Tomando el tiempo.
- Memoria Compartida
- Usando memoria compartida.
- Sincronización de hilos.
- Reducción.
Material
Introducción al Cómputo Paralelo con CUDA C/C++
Instructores
- Ariel Ulloa Trejo
- Jaime Esteban Beltrán Rosales
Objetivo
El alumno utilizará los beneficios de la programación en paralelo que brindan las Unidades de Procesamiento Gráfico (GPUs) de Nvidia para acelerar aplicaciones, mediante CUDA.
Contenido
- Antecedentes
- Programación Serial.
- Programación Paralela.
- Modelos de Programación.
- Modelo de Programación CUDA
- Arquitectura.
- Diferencias entre el GPU y CPU.
- Propiedades del GPU.
- Funciones
- Jerarquia de memoria.
- Funciones CUDA.
- Arreglos unidimencionales.
- Manejo de Matrices
- Detectando errores.
- Medición de tiempo.
- Memoria Compartida
Material
Programación en Lenguaje C
Instructores
- M.I. Elba Karen Sáenz García
- Ing. Laura Sandoval Montaño
Objetivo
Al finalizar el curso los participantes contarán con la bases para diseñar e implementar programas en lenguaje C.
Contenido
- Diseño de programas.
- El lenguaje de programación C.
- Tipos de datos, variables y constantes.
- Estructuras de control y repetición.
- Arreglos de una y varias dimensiones.
- Manejo de funciones.
- Estructuras.
- Fundamentos de apuntadores.
- Manejo de memoria dinámica.
- Manejo de archivos.
- Varios.
Material
Fundamentos de Programación en GPUs de Propósito General con CUDA
Instructores
- Ing Laura Sandoval Montaño
- M.I. Elba Karen Sáenz García
- Ariel Ulloa Trejo
Objetivo
Al finalizar el curso los participantes contarán con las bases para empezar a programar en GPUs utilizando la herramienta CUDA de Nvidia.
Contenido
- Antecedentes.
- GPU.
- CUDA.
- Arquitectura.
- Jerarquía de memoria.
- Modelo de ejecución CUDA.
- Grids.
- Bloques.
- Hilos.
- Funciones CUDA.
- Manejo de arreglos unidimensionales y bidimensionales.
- Memoria compartida.
- Varios.
Material
Programación del lado del servidor con PHP
Instructores
- Juan Francisco de Reza Trujillo
- Alberto Embarcadero Ruiz
Objetivo
Difundir a la comunidad universitaria la programación del lado del servidor por medio del lenguaje PHP así como herramientas que permiten explotar al máximo los tipos de desarrollos creados.
Contenido
- Introducción
- Iniciando con PHP
- Formularios
- Ficheros
- Aplicaciones
- Cookies y sesiones
- GSM
- Producción de código para interpretarse en el cliente
Material
Programación Paralela de GPUs con CUDA
Instructores
- Alberto Embarcadero Ruiz
- Miguel Ángel Guillén Hernández
Objetivo
Difundir a la comunidad universitaria y hacer de su interés el tópico del cómputo en paralelo de forma práctica, mediante la programación de tarjetas gráficas (GPUs) y otros dispositivos similares de la compañía NVIDIA, utilizando el lenguaje C y la extensión CUDA, de la misma compañía.
Contenido
- Introducción a la programación paralela
- Concepto de paralelismo
- Procesamiento serial, concurrente y paralelo
- Taxonomía de Flynn
- Modelos de programación concurrente/paralela
- Concepto de 'granularidad'
- Introducción a CUDA
- Diversas opciones para programación concurrente/paralela
- ¿Qué es CUDA?
- ¿Qué es una GPU?
- Modelo Host-Device
- Ejecución de un programa en CUDA
- Hilos, bloques y mallas
- Modelo de memoria
- Programando en CUDA
- Estructura de un programa en CUDA y C
- Funciones básicas de CUDA
- Manipulación de arreglos y matrices
- Sincronización en CUDA
- Manipulación de imágenes
Fundamentos de programación orientada a objetos con Java
Contenido
- Paradigma de POO
- Objetos y clases, sus métodos y atributos
- Solución de un problema con el paradigma POO
- Diseño de diagrama de clases con arquitectura Modelo Vista controlador
- Implementación y uso de clases en JAVA
- Variables y métodos
- Encapsulación y Modificadores de acceso
- Estructuras condicionales y de repetición
- Métodos estáticos
- Arreglos
- Excepciones
- Herencia
- Polimorfismo, métodos abstractos- métodos constructores
- Otros
Fundamentos de Programación Paralela
Contenido
- Conceptos de paralelismo
- Definición de proceso
- Computo serial y paralelo
- Concurrencia y paralelismo
- Granularidad y niveles de paralelismo
- Patrones de Programación paralela
- Diseño de un programa paralelo
- Paradigmas de programación paralela
- Maestro - esclavo
- Entubamiento de datos
- Divide y conquista
- SPMD
- Descomposición del problema
- Datos
- Tareas o funciones
- Diferencia entre hilo y proceso
- Modelos de programación paralela
- Memoria compartida
- Dependencias de datos y de control
- OpenMP
- Hilos pthreads
- Memoria Distribuida
- MPI
Programación Paralela de GPUs con CUDA
Instructores
- Esaú Ugalde Vargas
Objetivo
Difundir a la comunidad universitaria y hacer de su interés el tópico del cómputo en paralelo de forma práctica, mediante la programación de tarjetas gráficas (GPUs) y otros dispositivos similares de la compañía NVIDIA, utilizando el lenguaje C y la extensión CUDA, de la misma compañía.
Contenido
- Introducción a la programación paralela
- Concepto de paralelismo
- Procesamiento serial, concurrente y paralelo
- Taxonomía de Flynn
- Modelos de programación concurrente/paralela
- Concepto de 'granularidad'
- Introducción a CUDA
- Diversas opciones para programación concurrente/paralela
- ¿Qué es CUDA?
- ¿Qué es una GPU?
- Modelo Host-Device
- Ejecución de un programa en CUDA
- Hilos, bloques y mallas
- Modelo de memoria
- Programando en CUDA
- Estructura de un programa en CUDA y C
- Funciones básicas de CUDA
- Manipulación de arreglos y matrices
- Sincronización en CUDA
- Manipulación de imágenes
Desarrollo Web
Instructores
- Juan Francisco de Reza Trujillo
- Melanie Sarai Galván Rodríguez
Objetivo
Al finalizar el curso, el alumno tendrá las bases para desarrollar sistemas en la industria dedicada al desarrollo web.
Contenido
- Introducción a las plataformas web
- Introducción a la arquitectura cliente-servidor
- Introducción a los frameworks
- Modelo, vista y controlador
- El lenguaje de marcado HTML
- El lenguaje PHP
- Funciones de PHP
- Características avanzadas de PHP
- El lenguaje de marcado CSS
- Introducción al lenguaje JavaScript
- Introducción a jQuery
- Introducción a las bases de datos
- Introducción al lenguaje SQL
- Introducción a CodeIgniter
- La tecnología AJAX y el protocolo JSON
- Introducción a CSS3 y HTML5
- Canvas
- Elaboración de una aplicación real
Explorando XML: Aprende a leer, entender y trabajar con archivos del SAT
Instructor
- Rubén Pedro Jiménez Enriquez
Objetivo
Capacitar a los estudiantes para interpretar, procesar y extraer información útil de archivos XML mediante herramientas accesibles como Microsoft Excel y Python, con énfasis en aplicaciones prácticas como la lectura de comprobantes fiscales digitales (CFDI) del SAT.
Contenido
- Módulo 1: Introducción a XML
- ¿Qué es XML? Finalidad y características.
- Estructura general: etiquetas, atributos, jerarquía, nodo raíz
- Casos de uso comunes.
- Módulo 2: Análisis de XML del SAT
- ¿Qué es un CFDI? ¿Cómo se ve su estructura XML?
- Partes clave del archivo: nodo raíz, Emisor, Receptor, Conceptos, Impuestos, Complemento.
- Módulo 3 Práctica con Excel (importación, macros)
- Cómo abrir/importar un XML en Excel
- Introducción a macros con VBA: leer nodos XML mediante código.
- Exportar resultados a tabla para análisis o impresión.
- Filtros, fórmulas y análisis básico.
- Módulo 4: Python básico para leer XML
- Introducción a la biblioteca xml.etree.ElementTree
- Cargar un archivo XML, recorrer elementos y extraer texto y atributos
- Módulo 5: Extracción de datos del SAT con Python
- Filtrar elementos específicos
- Almacenar información en listas o diccionarios
- Introducción a pandas para crear DataFrames con los datos extraídos
- Módulo 6: Exportación y automatización
- Exportar los datos extraídos a CSV o Excel (to_csv(), to_excel())
- Automatizar lectura de varios XML con un script
Fundamentos prácticos de Linux: Domina la terminal
Instructor
- Rubén Pedro Jiménez Enriquez
Objetivo
Capacitar a los estudiantes para interpretar, procesar y extraer información útil de archivos XML mediante herramientas accesibles como Microsoft Excel y Python, con énfasis en aplicaciones prácticas como la lectura de comprobantes fiscales digitales (CFDI) del SAT.
Contenido
- Módulo 1: Introducción a Linux y navegación básica
- ¿Qué es Linux? Historia y distribución del sistema
- Diferencias con otros sistemas operativos
- Comandos básicos de navegación: pwd, ls, cd, clear, echo
- Estructura del sistema de archivos Linux
- Módulo 2: Archivos, permisos y gestión de usuarios
- Manipulación de archivos y directorios: cp, mv, rm, mkdir, touch
- Permisos y propiedades de archivos (rwx, chmod, chown, ls -l)
- Concepto de usuarios y grupos en Linux
- Comandos de gestión de usuarios: whoami, id, adduser, passwd
- Módulo 3: Gestión de procesos y software
- Visualización y control de procesos: ps, top, kill, jobs, bg, fg
- Instalación y administración de software con APT: install, remove, update, upgrade
- Módulo 4: Redirecciones, tuberías y scripting básico
- Redirección de entrada/salida: >, >>, <, 2>.
- Introducción a Bash scripting: variables, condicionales, scripts ejecutables
- Creación y ejecución de scripts simples
- Módulo 5: Automatización y red
- Comandos de red básicos: ping, curl, wget, ip a
- Visualización de logs del sistema: cat, tail, less, journalctl
- Automatización de tareas
Programación en Lenguaje C: Fundamentos y Técnicas Intermedias
Instructora
- M.C. Laura Sandoval Montaño
Objetivo
Al finalizar el curso, los estudiantes habrán adquirido las bases esenciales del lenguaje C y técnicas intermedias para desarrollar programas. Serán capaces de escribir código estructurado y modular, manejar punteros y memoria dinámica, y aplicar conceptos intermedios para resolver problemas prácticos utilizando C.
Contenido
- Módulo 1: Introducción al Lenguaje C y Configuración del Entorno
- Módulo 2: Tipos de Datos y Operaciones Básicas
- Módulo 3: Estructuras de Control de Flujo
- Módulo 4: Funciones y Modularización del Código
- Módulo 5: Arreglos y Punteros
- Módulo 6: Manejo de Memoria Dinámica
- Módulo 7: Introducción a Estructuras de Datos Básicas
Fundamentos de Python para Análisis de datos
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Proporcionar a los/as participantes habilidades para manipular, limpiar, visualizar y analizar datos usando Python y algunas de sus bibliotecas.
Contenido
- Módulo 1: Introducción
- Módulo 2: Estructura de Datos
- Módulo 3: Estructuras de Control
- Modulo 4: Funciones
- Módulo 5: Manejo de Archivos
Fundamentos de Programación con Python
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Proporcionar a las participantes habilidades para manipular, limpiar, visualizar y analizar datos usando Python y algunas de sus bibliotecas.
Contenido
- Módulo 1: Fundamentos de Python para Análisis de Datos
- Módulo 2: Manipulación y Limpieza de Datos con Pandas
- Módulo 3: Visualización de Datos
- Módulo 4: Análisis Exploratorio de Datos
- Módulo 5: Introducción a Machine Learning con Scikit-Learn
Fundamentos de Word y Excel para Ciencias e Ingeniería
Instructores
- Iván Martínez Martínez
- Hugo Abraham Rivera Rodriguez
Objetivo
Al finalizar el curso, el estudiante será capaz de utilizar de manera competente las herramientas fundamentales de Microsoft Word y Microsoft Excel, creando y editando documentos y hojas de cálculo con formato profesional. Podrá aplicar técnicas básicas de edición, organización y presentación de información, incorporar elementos visuales y emplear funciones esenciales de cálculo, así como generar documentos e informes correctamente estructurados y listos para impresión.
Contenido
- Parte 1 PROCESADOR DE TEXTOS (MICROSOFT WORD)
- Modulo 1: Introducción al entorno de trabajo
- La interfaz de usuario: Cinta de opciones y barra de acceso rápido.
- Creación, apertura y guardado de documentos
- Formatos de archivo: .docx vs .pdf
- Modos de vista y Zoom
- Modulo 2: Edición y manejo de texto
- Selección de texto (teclado y mouse)
- Uso del Portapapeles: Cortar, Copiar y Pegar
- Deshacer y Rehacer acciones
- Revisión ortográfica y gramatical básica
- Modulo 3: Formato de fuente y párrafo
- Tipografía: Fuente, tamaño, color y estilos (negrita, cursiva, subrayado)
- Alineación de párrafos (Izquierda, Derecha, Centro, Justificado)
- Interlineado y espaciado
- Listas: Viñetas y numeración
- Modulo 4: Gestión de referencias y citación en Word
- Uso del administrador de referencias
- Inserción de citas automáticas
- Bibliografía automática en estilos como APA e IEEE
- Modulo 5: Diseño de página e inserción de elementos
- Configuración de página: Márgenes, orientación y tamaño de papel
- Inserción y manipulación básica de imágenes
- Creación de tablas sencillas
- Impresión de documentos
- Inserción de ecuaciones (Editor de ecuaciones de Word)
- Símbolos técnicos comunes en ingeniería y ciencias (Ω, °C, Σ, →, etc.)
- Parte 2 HOJA DE CÁLCULO (MICROSOFT EXCEL)
- Modulo 6: Introducción a la hoja de cálculo
- Conceptos básicos: Libro, Hoja, Fila, Columna y Celda
- Desplazamiento y selección en la hoja
- Tipos de datos: Texto, Números y Fechas
- Gestión de hojas: Insertar, eliminar y renombrar
- Modulo 7: Formato de celdas y estructura
- Ajuste de ancho de columnas y alto de filas
- Bordes y sombreados (Relleno)
- Formato de números: Moneda, Contabilidad y Decimales
- Alineación de celdas y herramienta "Combinar y centrar"
- Modulo 8: Fórmulas y funciones esenciales
- Estructura de una fórmula y uso del signo igual (=)
- Operadores aritméticos básicos (+, -, *, /)
- Referencias de celdas (operar con direcciones, no con valores fijos)
- Funciones básicas: SUMA y PROMEDIO
- Uso del controlador de relleno para copiar fórmulas
- Modulo 9: Visualización de datos
- Ordenar datos (A-Z, Z-A)
- Inserción de gráficos básicos (Columnas y Circulares)
- Personalización básica de gráficos (Títulos y etiquetas)
- Configuración de área de impresión en Excel
Explorando XML: Aprende a leer, entender y trabajar con archivos del SAT
Instructor
- Rubén Pedro Jiménez Enriquez
Objetivo
Capacitar a los estudiantes para interpretar, procesar y extraer información útil de archivos XML mediante herramientas accesibles como Microsoft Excel y Python, con énfasis en aplicaciones prácticas como la lectura de comprobantes fiscales digitales (CFDI) del SAT.
Contenido
- Módulo 1: Introducción a XML
- ¿Qué es XML? Finalidad y características.
- Estructura general: etiquetas, atributos, jerarquía, nodo raíz
- Casos de uso comunes.
- Módulo 2: Análisis de XML del SAT
- ¿Qué es un CFDI? ¿Cómo se ve su estructura XML?
- Partes clave del archivo: nodo raíz, Emisor, Receptor, Conceptos, Impuestos, Complemento.
- Módulo 3 Práctica con Excel (importación, macros)
- Cómo abrir/importar un XML en Excel
- Introducción a macros con VBA: leer nodos XML mediante código.
- Exportar resultados a tabla para análisis o impresión.
- Filtros, fórmulas y análisis básico.
- Módulo 4: Python básico para leer XML
- Introducción a la biblioteca xml.etree.ElementTree
- Cargar un archivo XML, recorrer elementos y extraer texto y atributos
- Módulo 5: Extracción de datos del SAT con Python
- Filtrar elementos específicos
- Almacenar información en listas o diccionarios
- Introducción a pandas para crear DataFrames con los datos extraídos
- Módulo 6: Exportación y automatización
- Exportar los datos extraídos a CSV o Excel (to_csv(), to_excel())
- Automatizar lectura de varios XML con un script
Fundamentos prácticos de Linux: Domina la terminal
Instructor
- Rubén Pedro Jiménez Enriquez
Objetivo
Capacitar a los estudiantes para interpretar, procesar y extraer información útil de archivos XML mediante herramientas accesibles como Microsoft Excel y Python, con énfasis en aplicaciones prácticas como la lectura de comprobantes fiscales digitales (CFDI) del SAT.
Contenido
- Módulo 1: Introducción a Linux y navegación básica
- ¿Qué es Linux? Historia y distribución del sistema
- Diferencias con otros sistemas operativos
- Comandos básicos de navegación: pwd, ls, cd, clear, echo
- Estructura del sistema de archivos Linux
- Módulo 2: Archivos, permisos y gestión de usuarios
- Manipulación de archivos y directorios: cp, mv, rm, mkdir, touch
- Permisos y propiedades de archivos (rwx, chmod, chown, ls -l)
- Concepto de usuarios y grupos en Linux
- Comandos de gestión de usuarios: whoami, id, adduser, passwd
- Módulo 3: Gestión de procesos y software
- Visualización y control de procesos: ps, top, kill, jobs, bg, fg
- Instalación y administración de software con APT: install, remove, update, upgrade
- Módulo 4: Redirecciones, tuberías y scripting básico
- Redirección de entrada/salida: >, >>, <, 2>.
- Introducción a Bash scripting: variables, condicionales, scripts ejecutables
- Creación y ejecución de scripts simples
- Módulo 5: Automatización y red
- Comandos de red básicos: ping, curl, wget, ip a
- Visualización de logs del sistema: cat, tail, less, journalctl
- Automatización de tareas
Programación en Lenguaje C: De lo Básico a lo Intermedio
Instructora
- M.C. Laura Sandoval Montaño
Objetivo
Al finalizar el curso, los estudiantes habrán adquirido las bases esenciales del lenguaje C y técnicas intermedias para desarrollar programas. Serán capaces de escribir código estructurado y modular, manejar punteros y memoria dinámica, y aplicar conceptos intermedios para resolver problemas prácticos utilizando C.
Contenido
- Módulo 1: Introducción al Lenguaje C y Configuración del Entorno
- Historia y aplicaciones de C
- Instalación y configuración del entorno de desarrollo (IDE o terminal)
- Estructura básica de un programa en C
- Primer programa en C: "Hola Mundo"
- Módulo 2: Tipos de Datos y Operaciones Básicas
- Tipos de datos primitivos: int, float, char, double, void
- Declaración de variables y constantes
- Operadores aritméticos, lógicos, de comparación y asignación
- Conversión de tipos y operaciones entre tipos de datos
- Módulo 3: Estructuras de Control de Flujo
- Condicionales: if, else, else if, switch
- Bucles: for, while, do-while
- Sentencias de control: break, continue, return
- Buenas prácticas en el control de flujo y optimización del código
- Módulo 4: Funciones y Modularización del Código
- Declaración, definición y uso de funciones
- Paso de parámetros por valor y por referencia
- Retorno de valores y buenas prácticas de modularización
- Archivos de cabecera (.h) y separación del código en múltiples archivos
- Módulo 5: Arreglos y Punteros
- Arreglos unidimensionales y bidimensionales
- Operaciones con arreglos: acceso, modificación, iteración
- Introducción a punteros y aritmética de punteros
- Relación entre punteros y arreglos
- Módulo 6: Manejo de Memoria Dinámica
- Uso de funciones de asignación dinámica de memoria: malloc(), calloc(), free()
- Problemas comunes de manejo de memoria y cómo evitarlos
- Aplicaciones prácticas con memoria dinámica: manejo de cadenas, matrices dinámicas
- Módulo 7: Introducción a Estructuras de Datos Básicas
- Definición y uso de estructuras
- Operaciones comunes con estructuras: asignación, acceso a elementos, paso de estructuras a funciones
- Introducción a listas enlazadas y su implementación básica
Fundamentos de Python para Análisis de datos
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Proporcionar a los/as participantes habilidades para manipular, limpiar, visualizar y analizar datos usando Python y algunas de sus bibliotecas.
Contenido
- Módulo 1: Fundamentos de Python para Análisis de Datos
- Repaso estructuras de datos (listas, diccionarios, tuplas)
- Repaso funciones, comprensión de listas y funciones lambda
- Manejo de archivos CSV y otros
- Introducción a NumPy:
- Creación de arrays y operaciones básicas
- Indexación y slicing
- Operaciones matemáticas y estadísticas
- Módulo 2: Manipulación y Limpieza de Datos con Pandas
- Introducción a pandas
- Creación de Series y DataFrames
- Importación de datos desde archivos
- Filtrado y selección de datos
- Manejo de valores nulos y duplicados
- Transformación y agregación de datos
- Módulo 3: Visualización de Datos
- Conceptos clave:
- Introducción a Matplotlib:
- Creación de gráficos de líneas, barras y dispersión
- Personalización de títulos, etiquetas y colores
- Introducción a Seaborn:
- Gráficos avanzados: histogramas, boxplots y mapas de calor
- Uso combinado de pandas y seaborn para análisis gráfico
- Módulo 4: Análisis de Datos con caso de estudio
- Descripción del problema
- Exploración inicial de Datos
- Limpieza y preparación de datos
- Visualización de Datos
- Ingeniería de características básica
- Análisis de correlaciones entre variables
- Identificación de valores atípicos
- Visualización de datos
- Aplicación de Modelo Básico de Machine Learning
- Evaluación del Modelo
Fundamentos de programación con Python
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Proporcionar a las participantes habilidades para manipular, limpiar, visualizar y analizar datos usando Python y algunas de sus bibliotecas.
Contenido
- Módulo 1: Introducción
- Entorno de trabajo
- Sintaxis de Python
- Tipos de datos. variables y asignación
- Operadores y Expresiones. Entrada y salida estándar
- Módulo 2: Estructura de Datos
- Cadenas
- Listas
- Tuplas
- Conjuntos
- Diccionarios
- Módulo 3: Estructuras de Control
- If, elif y else
- while y for in
- Uso de estructuras de control en colecciones de datos
- Modulo 4: Funciones
- Definición y uso
- Parámetros y retorno
- Estructuración del código en módulos
- Bibliotecas estándar
- Módulo 5: Manejo de Archivos
- Apertura y cierre de archivos
- Lectura y escritura en archivos de texto
- Guardar y cargar datos
Fundamentos Prácticos de Programación Paralela con OpenMP y MPI
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Al finalizar el curso, el participante será capaz de comprender, aplicar y analizar los principios fundamentales de la programación paralela utilizando OpenMP y MPI, desarrollando programas básicos que permitan evaluar el desempeño y distinguir entre los modelos de memoria compartida y distribuida.
Contenido
- Modulo 1 Fundamentos del Cómputo Paralelo
- Motivación del paralelismo
- Memoria compartida vs distribuida
- Aceleración, Ley de Amdahl y otras métricas
- Herramientas y entornos de desarrollo
- Hilos y procesos
- Módulo 2 Fundamentos de OpenMP
- Arquitectura de OpenMP
- Directivas, Funciones y variables de ambiente
- Variables privadas y compartidas
- Paralelismo de Datos y Funcional
- Mecanismo de exclusión mutua
- Paralelización de ciclos y reducciones
- Ejemplos prácticos
- Módulo 3 Fundamentos de MPI
- Modelo SPMD
- Conceptos y funciones básicas de MPI
- Funciones de comunicación punto a punto
- Funciones de comunicación colectiva
- Ejemplos prácticos
Introducción a Django
Instructora
- Laura Reyes Carrillo
Objetivo
Al finalizar el curso, el estudiante será capaz de comprender y utilizar los conceptos fundamentales del framework Django para el desarrollo de aplicaciones web basadas en Python. Podrá crear proyectos y aplicaciones, manejar rutas, vistas y plantillas, y ejecutar aplicaciones en un entorno local. Será capaz de estructurar adecuadamente un proyecto, implementar funcionalidades básicas y generar aplicaciones web funcionales con buenas prácticas.
Contenido
- Módulo 1: Introducción al entorno de trabajo
- ¿Qué es Django? Conceptos básicos del desarrollo web
- Instalación de Python y entorno virtual (venv)
- Instalación de Django y verificación de la versión
- Estructura inicial de un proyecto Django
- Módulo 2: Rutas, vistas y plantillas
- Estructura de carpetas del proyecto
- ¿Qué es el patrón MTV? Función de Model, Template y View
- Creación de vistas básicas
- Introducción al sistema de plantillas HTML
- Crear la primera aplicación
- Módulo 3: Modelos, migraciones y base de datos
- Modelo SPMD
- ¿Qué es un modelo? Creación de modelos
- Tipos de campos más comunes
- Migraciones: makemigrations y migrate
- Módulo 4: Formularios básicos
- Modelo SPMD
- Crear un formulario HTML simple
- Procesar datos enviados desde el navegador
- Implementación básica de un CRUD
- Módulo 5: Panel de administración y proyecto final
- Organización general del proyecto: apps, templates, static
- Revisión de errores comunes y buenas prácticas básicas
- Integración final del proyecto completo (modelo + vista + template)
- Ejecución final y recomendaciones para continuar aprendiendo
Taller de Automatización con Excel y Macros para Ingeniería
Instructores
- Ivan Martínez Martínez
- Hugo Abraham Rivera Rodriguez
Objetivo
Proporcionar a los participantes las habilidades necesarias para grabar, editar y programar macros en Excel, permitiendo la automatización de procesos y la resolución rápida de cálculos aplicados a la ingeniería.
Contenido
- Sesión 1
- Introducción a VBA, grabadora de macros, entorno de desarrollo y variables básicas (2 horas).
- Sesión 2
- Estructuras de control (IF, FOR, WHILE) y manipulación de celdas y rangos mediante código (2 horas).
- Sesión 3
- Creación de funciones personalizadas (UDF), manejo de errores y botones de interfaz (2 horas).
- Producto final esperado
- Un libro de Excel funcional que incluya macros programadas desde cero para limpiar, procesar y presentar un conjunto de datos técnicos o de laboratorio de manera automática.
Fundamentos prácticos de Linux: Domina la terminal
Instructor
- Rubén Pedro Jiménez Enriquez
Objetivo
Capacitar a los estudiantes para interpretar, procesar y extraer información útil de archivos XML mediante herramientas accesibles como Microsoft Excel y Python, con énfasis en aplicaciones prácticas como la lectura de comprobantes fiscales digitales (CFDI) del SAT.
Contenido
- Módulo 1: Introducción a Linux y navegación básica
- ¿Qué es Linux? Historia y distribución del sistema
- Diferencias con otros sistemas operativos
- Comandos básicos de navegación: pwd, ls, cd, clear, echo
- Estructura del sistema de archivos Linux
- Módulo 2: Archivos, permisos y gestión de usuarios
- Manipulación de archivos y directorios: cp, mv, rm, mkdir, touch
- Permisos y propiedades de archivos (rwx, chmod, chown, ls -l)
- Concepto de usuarios y grupos en Linux
- Comandos de gestión de usuarios: whoami, id, adduser, passwd
- Módulo 3: Gestión de procesos y software
- Visualización y control de procesos: ps, top, kill, jobs, bg, fg
- Instalación y administración de software con APT: install, remove, update, upgrade
- Módulo 4: Redirecciones, tuberías y scripting básico
- Redirección de entrada/salida: >, >>, <, 2>.
- Introducción a Bash scripting: variables, condicionales, scripts ejecutables
- Creación y ejecución de scripts simples
- Módulo 5: Automatización y red
- Comandos de red básicos: ping, curl, wget, ip a
- Visualización de logs del sistema: cat, tail, less, journalctl
- Automatización de tareas
Fundamentos de Python para Análisis de datos
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Proporcionar a los/as participantes habilidades para manipular, limpiar, visualizar y analizar datos usando Python y algunas de sus bibliotecas.
Contenido
- Módulo 1: Introducción
- Módulo 2: Estructura de Datos
- Módulo 3: Estructuras de Control
- Modulo 4: Funciones
- Módulo 5: Manejo de Archivos
Fundamentos de Programación con Python
Instructora
- M.I. Elba Karen Sáenz García
Objetivo
Proporcionar a las participantes habilidades para manipular, limpiar, visualizar y analizar datos usando Python y algunas de sus bibliotecas.
Contenido
- Módulo 1: Fundamentos de Python para Análisis de Datos
- Módulo 2: Manipulación y Limpieza de Datos con Pandas
- Módulo 3: Visualización de Datos
- Módulo 4: Análisis Exploratorio de Datos
- Módulo 5: Introducción a Machine Learning con Scikit-Learn
Curso Practico de LaTeX para Redacción Academica y Cientifica
Instructores
- Iván Martínez Martínez
- Hugo Abraham Rivera Rodriguez
Objetivo
Capacitar a los participantes en el uso de LaTeX para estructurar, compilar y dar formato a documentos técnicos complejos, manejando correctamente ecuaciones, referencias cruzadas y bibliografía.
Contenido
- Sesión 1
- Introducción a LaTeX (Overleaf vs. instalación local), preámbulo y estructura básica del documento (2 horas).
- Sesión 2
- Formato de texto, creación de listas, secciones y elaboración de tablas simples y complejas (2 horas).
- Sesión 3
- Escritura de expresiones matemáticas, ecuaciones numeradas y símbolos científicos (2 horas).
- Sesión 4
- Inserción de imágenes, manejo de figuras, referencias cruzadas y automatización de índices (2 horas).
- Sesión 5
- Gestión de bibliografía con BibTeX, uso de plantillas para reportes y tesis, y proyecto integrador (2 horas).
- Producto final esperado
- Un documento final en formato PDF compilado desde LaTeX (como un artículo o reporte de laboratorio) que integre portada, índice automático, ecuaciones matemáticas, tablas, imágenes referenciadas y bibliografía.
Introducir a los participantes en el uso básico de Docker como herramienta para crear entornos de ejecución reproducibles, permitiendo ejecutar programas y dependencias de forma aislada, portable y controlada.
Instructora
- Laura Reyes Carrillo
Objetivo
Introducir a los participantes en el uso básico de Docker como herramienta para crear entornos de ejecución reproducibles, permitiendo ejecutar programas y dependencias de forma aislada, portable y controlada.
Contenido
- Sesión 1: Introducción a Docker y contenedores
- Sesión 2: Creación de imágenes propias con Dockerfile
- Sesión 3: Docker Compose y mini proyecto final Producto final esperado: Proyecto funcional que incluya un programa básico en Python, archivo requirements.txt, Dockerfile y archivo compose.yaml, ejecutado mediante Docker.
Programación en Lenguaje C: De lo Básico a lo Intermedio
Instructora
- M.C. Laura Sandoval Montaño
Objetivo
Al finalizar el curso, los estudiantes habrán adquirido las bases esenciales del lenguaje C y técnicas intermedias para desarrollar programas. Serán capaces de escribir código estructurado y modular, manejar punteros y memoria dinámica, y aplicar conceptos intermedios para resolver problemas prácticos utilizando C.
Contenido
- Módulo 1: Introducción al Lenguaje C y Configuración del Entorno
- Historia y aplicaciones de C
- Instalación y configuración del entorno de desarrollo (IDE o terminal)
- Estructura básica de un programa en C
- Primer programa en C: "Hola Mundo"
- Módulo 2: Tipos de Datos y Operaciones Básicas
- Tipos de datos primitivos: int, float, char, double, void
- Declaración de variables y constantes
- Operadores aritméticos, lógicos, de comparación y asignación
- Conversión de tipos y operaciones entre tipos de datos
- Módulo 3: Estructuras de Control de Flujo
- Condicionales: if, else, else if, switch
- Bucles: for, while, do-while
- Sentencias de control: break, continue, return
- Buenas prácticas en el control de flujo y optimización del código
- Módulo 4: Funciones y Modularización del Código
- Declaración, definición y uso de funciones
- Paso de parámetros por valor y por referencia
- Retorno de valores y buenas prácticas de modularización
- Archivos de cabecera (.h) y separación del código en múltiples archivos
- Módulo 5: Arreglos y Punteros
- Arreglos unidimensionales y bidimensionales
- Operaciones con arreglos: acceso, modificación, iteración
- Introducción a punteros y aritmética de punteros
- Relación entre punteros y arreglos
- Módulo 6: Manejo de Memoria Dinámica
- Uso de funciones de asignación dinámica de memoria: malloc(), calloc(), free()
- Problemas comunes de manejo de memoria y cómo evitarlos
- Aplicaciones prácticas con memoria dinámica: manejo de cadenas, matrices dinámicas
- Módulo 7: Introducción a Estructuras de Datos Básicas
- Definición y uso de estructuras
- Operaciones comunes con estructuras: asignación, acceso a elementos, paso de estructuras a funciones
- Introducción a listas enlazadas y su implementación básica
Taller de Introducción a Docker para Entornos Reproducibles
Instructora
- Laura Reyes Carrillo
Objetivo
Introducir a los participantes en el uso básico de Docker como herramienta para crear entornos de ejecución reproducibles, permitiendo ejecutar programas y dependencias de forma aislada, portable y controlada.
Contenido
- Sesión 1: Introducción a Docker y contenedores
- Sesión 2: Creación de imágenes propias con Dockerfile
- Sesión 3: Docker Compose y mini proyecto final Producto final esperado: Proyecto funcional que incluya un programa básico en Python, archivo requirements.txt, Dockerfile y archivo compose.yaml, ejecutado mediante Docker





