Durante la segunda mitad del año 2015, se me presentó por primera vez la oportunidad de laborar como docente en forma de ayudante de profesor en la Facultad de Ciencias de la Universidad Nacional Autónoma de México; misma donde hice la licenciatura y gracias a la invitación de uno de mis más estimados profesores.
Pararse frente al pizarrón para exponer temas a otras personas me ha resultado fascinante. En estos años he confirmado que la docencia es una de mis ocupaciones favoritas.
Para las clases que imparto me gusta tener notas preparadas que quiero compartir con todos en ésta página (con permiso del profesor titular en caso de que no sea yo).
Así con esta pequeña introducción dada, va una lista de los cursos (tópicos) de los que dispongo notas:
Estructuras de datosCurso de segundo semestre de la licenciatura en Ciencias de la Computación (UNAM plan 2013). El contenido es sobre estructuras de datos; como listas, pilas, colas, gráficas, etc... Cómo se define un Tipo de Datos Abstracto, qué operaciones podemos definir sobre las estructuras y para que podemos usarlas. |
Análisis de AlgoritmosCurso de quinto semestre de la licenciatura en Ciencias de la Computación (UNAM plan 2013). El contenido del curso es sobre eficiencia computacional, centrándose en eficiencia temporal: como calcular la complejidad de un algoritmo, técnicas para eliminar ineficiencias, algoritmos de búsqueda, de ordenamiento, etc... |
Cómputo concurrenteCurso de octavo semestre de la licenciatura en Ciencias de la Computación (UNAM plan 2013). El contenido es sobre problemas teóricos que suponen dos computadoras que comparten memoria de alguna forma, exhibiendo que esto puede resultar en problemas a raíz de comportamientos no esperados. Se estudian técnicas, herramientas y estrategias mediante las cuales podemos diseñar soluciones a problemas de concurrencia. |
Arquitectura de softwareCurso de octavo semestre de la licenciatura en Ingeniería de Software (UACM plan 2010). El curso gira en torno a actividades de diseño general de un producto de software: la integración de sus componentes y definición de puntos de flexibilidad que permitan al producto alcanzar sus objetivos, satisfaciendo a todos los interesados relevantes. Se exploran estrategias de diseño arquitectonico, modelaje de arquitecturas y el rol de un arquitecto de software en un proyecto. |
Programación de dispositivos móvilesCurso optativo de la licenciatura en Ciencias de la Computación (UNAM plan 2013). El contenido es sobre desarrollo de Android. Comienza con consideraciones más básicas sobre desarrollo móvil en general, luego introduce al Android SDK y Android Studio para empezar a explorar la plataforma de Android y las herramientas y conceptos más básicos para empezar a desarrollar aplicaciones con Android. Debido a la pandemia de COVID-19, la modalidad de este curso se volvió virtual; por lo que grabé la mayoría de los temas. Las Video Clases y las prácticas del curso se encuentran disponibles en esta sección |
Riesgo TecnológicoCurso optativo de la licenciatura en Ciencias de la Computación (UNAM plan 2013). El contenido es sobre el análisis de los riesgos que pueden presentarse al desarrollar un producto de software o una investigación, ya sea por medio de auto-financiamientos, presupuestos, programas de investigación... |
Introducción al desarrollo Web con NodeJSCurso extracurricular dirigido a estudiantes de últimos semestres o egresantes de carreras afines a las Ciencias de la Computación, Ingeniería en Computación e Informática. El curso introduce el desarrollo Web comenzando por aspectos muy generales, como el protocolo HTTP y la arquitectura Modelo-Vista-Controlador, pasando por JavaScript, sus características y estrategias de uso recomendadas, aplicando al final el contenido el el desarrollo de una aplicación Web con NodeJS que gestiona Altas, Bajas y Consultas de usuarios, incluye la implementación de interfaces mediante plantillas de vistas HTML y su presentación con jQuery y Bootstrap. |