Finalidad formativa
Esta unidad curricular permite introducir a los estudiantes en los conceptos básicos de programación para el desarrollo de la capacidad de razonamiento y de resolución de problemas y así fortalecer las bases necesarias para el pensamiento computacional.
Ejes de contenido
Diseño funcional, lógico, imperativo, características fundamentales. Concepto de algoritmo, resolución algorítmica de problemas, estrategias de diseño, de implementación, de depuración. Algoritmos fundamentales, algoritmos numéricos simples. Estructuras fundamentales, variables, tipos, expresiones y asignaciones, entrada/salida, estructuras de control condicionales e iterativas, funciones y pasaje de parámetros, descomposición estructurada. Concepto de lenguaje de alto nivel y la necesidad de traducción, comparación entre compiladores e intérpretes, aspectos de la traducción dependientes y no dependientes de la máquina. Programas generadores de código. Verificación unitaria de unidades de código, concepto de cubrimiento, organización, ejecución y documentación de la prueba. Representación de datos numéricos, rango, precisión y errores de redondeo. Arreglos. Representación de datos de caracteres, listas y su procesamiento. Manejo de memoria en tiempo de ejecución, punteros y referencias, estructuras encadenadas, pilas, colas y tablas de hashing. Recolección de espacios no utilizados. La elección de una estructura de datos adecuada. Diseño orientado a objetos, estructurado, orientado al reuso de componentes. Incorporación de elementos disponibles al diseño. Diseño de interfaces con el usuario. Prototipos rápidos.