Contenidos mínimos: Programación imperativa. Sintaxis de un lenguaje imperativo simple. Algoritmo, proceso, programa. Variables. Asignación. Estructuras de control: secuencia, selección, iteración. Tipos de datos predefinidos. Tipos dato definidos por el usuario. Modularización: funciones y procedimientos. Comunicación por parámetros. Variables locales y globales. Arreglos y algoritmos sobre arreglos. Estructuras de control anidadas. Arreglos y matrices. Implementación de algoritmos fundamentales: recorrido, búsqueda, ordenamiento, actualización. Registros: operaciones. Vector y Matriz de Registros. Características de la programación estructurada: modularización, legibilidad, mantenibilidad, reusabilidad. Documentación. Estructuras de datos dinámicas. Concepto de referencias. Punteros. Listas vinculadas simples. Concurrencia y Paralelismo.