Esta asignatura aporta al perfil del egresado, la capacidad para desarrollar un pensamiento lógico a través del diseño de algoritmos utilizando herramientas de programación para el desarrollo de aplicaciones computacionales que resuelvan problemas reales. Está diseñada para el logro de competencias específicas y genéricas dirigidas al aprendizaje de los conceptos básicos de la programación, siendo capaz de aplicar expresiones aritméticas y lógicas en un lenguaje de programación; así como el uso y funcionamiento de las estructuras secuenciales, selectivas y repetitivas, como también la organización de los datos, además de la declaración e implementación de funciones para construir y desarrollar aplicaciones de software que requieran dichas estructuras. Se relaciona con todas aquellas asignaturas en donde se apliquen metodologías de programación y desarrollo de software de las carreras de Ingeniería en Sistemas Computacionales e Ingeniería en Animación Digital y Efectos Visuales.
La asignatura se organiza en cinco temas donde se abordan los conceptos esenciales del diseño algorítmico y de la programación, así como el uso de entornos de desarrollo. En el primer tema, se estudian los conceptos básicos para introducir al estudiante en la programación con la finalidad de obtener el fundamento conceptual para el análisis, diseño y desarrollo de algoritmos, así como los primeros pasos al mundo de la programación a través de ejercicios dirigidos. En este tema es fundamental propiciar el pensamiento lógico del estudiante. El segundo tema, tiene la finalidad de propiciar que el estudiante adquiera los conocimientos necesarios para diseñar e implementar soluciones en un lenguaje de programación y resolver problemas del contexto. El tercer tema, tiene como objetivo que se comprenda, seleccione e implemente la estructura de control adecuada para la resolución de un problema específico. El cuarto tema, se buscará propiciar la capacidad de aplicar e implementar los arreglos para proporcionar un medio eficaz en la organización de datos para la resolución de problemas reales. El quinto tema tiene como finalidad que el estudiante implemente el diseño de bloques de códigos reutilizables, que optimizan la funcionalidad y reducen la complejidad de los programas desarrollados. Para cada uno de los temas se sugiere que el docente promueva la práctica a través de herramientas computacionales que propicien la habilidad en el desarrollo de programas.