
Fundamentos de Programación es una asignatura introductoria orientada al desarrollo del pensamiento lógico y algorítmico, una de las bases esenciales de la formación en Ciencias de la Computación. A lo largo del curso aprenderás a analizar problemas, identificar sus datos y procesos, y construir soluciones claras, ordenadas y verificables antes de convertirlas en programas.
El recorrido comienza con conceptos fundamentales de computación y lógica proposicional, y avanza hacia el diseño de algoritmos mediante diagramas de flujo y pseudocódigo. Posteriormente trabajarás con variables, tipos de datos, operadores y expresiones; estructuras secuenciales, selectivas e iterativas; arreglos de una o más dimensiones; y, finalmente, diseño modular y funciones. Estas herramientas te permitirán pasar progresivamente de problemas sencillos a soluciones de mayor alcance.
Durante las sesiones se combinarán explicaciones, ejercicios, resolución de problemas y actividades prácticas, utilizando recursos como PSeInt y, cuando resulte conveniente, Python. Más que memorizar instrucciones, el objetivo es que desarrolles la capacidad de razonar paso a paso, de justificar tus decisiones y de mejorar tus soluciones. Al finalizar el curso, contarás con una base sólida para continuar tu formación en programación y en otras áreas de la licenciatura en las que el pensamiento computacional será una herramienta central.
Este curso es, ante todo, una invitación a aprender a pensar como quien resuelve problemas con precisión, creatividad y método. Cada algoritmo que diseñes será un paso hacia una comprensión más profunda de cómo transformar una idea en una solución computacional.
Dr. Francisco J. Moo Mena
- Profesor: Francisco Moo Mena

Mediante el análisis de algoritmos se puede determinar la complejidad de cada uno de ellos, es decir, el tiempo de ejecución que tendrá ese programa en función de la cantidad de datos de entrada. En situaciones reales este análisis permitirá elegir justificadamente un algoritmo u otro para ser desarrollado e implementar la solución más eficiente a un problema real.
Cuando se habla de complejidad se hace referencia, casi todas las veces, a la complejidad temporal. No obstante, también existe otro tipo de complejidad: la espacial. La primera de ellas, determina de una forma exacta el tiempo (donde una posible unidad de medida son los segundos) de ejecución de un algoritmo. Sin embargo, la segunda de estas determina la cantidad de memoria utilizada (medida en bytes) por el algoritmo.
- Profesor: Francisco Alejandro Madera Ramírez

El estudio de Álgebra Superior es importante para la formación de los estudiantes de la Licenciatura en Ciencias de la Computación, ya que les permitirá adquirir las herramientas algebraicas básicas para aplicar diferentes formas de razonamiento al reconocer, definir y resolver problemas, contribuyendo a la comprensión y utilización del lenguaje matemático.
Para LCC, se relaciona con las asignaturas Álgebra Intermedia, Álgebra Avanzada, Álgebra Lineal, Matemáticas Discretas, Cálculo Diferencial, Cálculo Integral, Cálculo Vectorial, Probabilidad, Inferencia Estadística y Ecuaciones Diferenciales; ya que contribuyen al logro de las cuatro competencias de egreso: Desarrollo de Software de Aplicación, Desarrollo de Software de Base, Gestión Tecnológica y Computación Científica.
- Profesor: Victor M. Bautista Ancona

Estructura de Datos es un curso que desarrolla habilidades para implementar estructuras de datos lineales y no lineales en el lenguaje de programación C. El estudiante dominará la gestión explícita de memoria dinámica y el control de punteros mediante el diseño de pilas, colas, listas, árboles, tablas hash y grafos.
- Profesor: Anabel Martín González

Gráficas por Computadora, proporciona los fundamentos matemáticos y algorítmicos para la implementación de objetos en forma gráfica. En esta asignatura se estudiará la base geométrica para representar objetos en un escenario tridimensional, las transformaciones que pueden sufrir los objetos y las técnicas de programación para su correcta visualización. Se aprenderá a programar código de shaders, que son los requeridos en las tarjetas gráficas para obtener una visualización precisa y rápida.
- Profesor: Francisco Alejandro Madera Ramírez
Descripción: El estudio de los diferentes modelos de datos permite diseñar e implementar sistemas de bases de datos eficientes que utilicen las diferentes reglas de integridad y normalización mediante el uso de un sistema manejador de bases de datos. Además, esta asignatura aborda los conceptos principales de algunos modelos de bases de datos no estructurados para aplicarlos en el diseño e implementación de sistemas de bases de datos para resolver un problema determinado.
Competencia: Diseña sistemas de bases de datos para la solución de problemas informáticos, considerando modelos estandarizados.
- Profesor: Luis Ramiro Basto Díaz

