Actividades de Docencia
“El mundo para ellos no es un concurso de objetos en el espacio.”
Jorge Luis Borges, Ficciones
Asignaturas de Pregrado
Modelos Estocásticos y Simulación en Computación y Comunicaciones
Esta asignatura estudia el modelado del comportamiento de sistemas de cómputo y telecomunicaciones modernos, los cuales se caracterizan por su dinámica estocástica. Para su análisis, se emplean modelos teóricos basados en la teoría de probabilidad y procesos estocásticos, herramientas fundamentales para describir componentes, sus relaciones y operación. Estos modelos permiten analizar concretamente flujos de tráfico, movilidad, topologías, colas y la relación oferta-demanda.
Lenguajes de Programación
Un lenguaje de programación es un sistema formal que permite expresar algoritmos y controlar el comportamiento de una máquina mediante reglas sintácticas y semánticas definidas. Este curso estudia la estructura de un compilador a través de sus capas funcionales, explicando cómo se traducen las instrucciones a lenguaje máquina, y analiza el impacto de los paradigmas de programación en el diseño de los lenguajes.
Computación Paralela y Distribuida
La computación paralela y distribuida estudia los sistemas que ejecutan tareas de forma concurrente, ya sea mediante múltiples procesadores en una misma máquina (paralela) o a través de una red de computadoras interconectadas (distribuida). Esta asignatura aborda los fundamentos, arquitecturas, modelos de programación y algoritmos diseñados para resolver problemas complejos aprovechando la capacidad de cómputo simultáneo, mejorando así el rendimiento, la escalabilidad y la tolerancia a fallos.
Sistemas Operativos
Un sistema operativo es el software fundamental que gestiona los recursos de hardware y provee servicios esenciales para las aplicaciones. Este curso estudia sus componentes centrales: gestión de procesos, memoria, almacenamiento y sus mecanismos de protección y seguridad, analizando cómo interactúan para lograr eficiencia y estabilidad del sistema.
Elementos de Computadores
Se busca que los estudiantes exploren los componentes físicos y lógicos que forman un sistema computacional. Se estudia la electrónica digital aplicada al diseño de circuitos, el funcionamiento de la ALU y su interacción con la Unidad de Control, los principios de transmisión y recepción de datos, así como la arquitectura y tecnología de memorias. Adicionalmente, se introducen conceptos básicos de computación cuántica para establecer los fundamentos de las próximas generaciones de computadoras.
Arquitectura de Computadores
La materia de Arquitectura de Computadores avanza en el diseño de sistemas digitales mediante el uso de compuertas programables (FPGAs), con énfasis en herramientas como Xilinx para implementación práctica. Se profundiza en la organización jerárquica de memorias, el diseño de arquitecturas RISC, el análisis temporal mediante diagramas de secuencia y la estructura de conjuntos de instrucciones. El curso integra estos conceptos para desarrollar sistemas computacionales eficientes y adaptables, combinando teoría con prototipado físico en hardware reconfigurable.
Asignaturas de Posgrado
Redes Ad hoc
Las redes ad hoc son sistemas inalámbricos descentralizados que no requieren infraestructura, adaptándose a entornos adversos mediante auto-organización. El curso cubre sus propiedades, patrones de movilidad, análisis de tráfico por simulación, y aplicaciones en dispositivos embebidos.
Kernel de Linux
Exploramos el núcleo del sistema operativo GNU/Linux, desde su arquitectura y principios de diseño hasta su implementación práctica. Los temas centrales incluyen: gestión de procesos e hilos, planificación, manejo de memoria virtual, sistemas de archivos, drivers de dispositivos, comunicación entre procesos (IPC), concurrencia y sincronización. El curso combina teoría con ejercicios prácticos de programación en espacio kernel, debugging y análisis de código fuente real, proporcionando una comprensión profunda de cómo se construyen y mantienen los sistemas operativos modernos.
Tópicos avanzados de simulación
Se profundiza en el modelado de sistemas complejos usando NS-3 como herramienta central. Abarca diseño de escenarios, implementación de protocolos, modelado de canales inalámbricos, movilidad y análisis estadístico de resultados, aplicado a redes y sistemas distribuidos. Enfoque práctico con validación metodológica.
Sistemas multiagente
El curso trata de estudiar el diseño e implementación de entornos donde múltiples agentes autónomos interactúan y colaboran para resolver problemas complejos. Incluye arquitecturas de agentes, protocolos de comunicación, coordinación, negociación y algoritmos descentralizados, con aplicaciones en robótica, logística o simulaciones sociales. Se enfoca en modelar comportamientos emergentes y estrategias cooperativas/competitivas en sistemas distribuidos.
Programación en C
Programación en C es un curso fundamental que enseña los principios y técnicas esenciales de la programación estructurada utilizando el lenguaje C. Los estudiantes aprenden a manejar conceptos como punteros, gestión de memoria, estructuras de datos, y el uso de bibliotecas estándar. El curso combina teoría con práctica intensiva, desarrollando habilidades para crear software eficiente y de bajo nivel, sentando las bases para el desarrollo de sistemas y aplicaciones de alto rendimiento.