Interpretación y resolución de problemas. Interpretación de enunciados. Identificación de datos, problema a resolver, resultados. Resolución de problemas identificando los datos, planteo y prueba de la solución. Definición de algoritmo y programa. Concepto de compilador y enlazador. Entornos de desarrollo integrados (IDE). Concepto de código fuente, objeto y binario. Algoritmos de resolución lineal. Algoritmos de resolución mediante métodos lineales. Aplicación del criterio top down en la resolución de problemas. Concepto de variable y constante. Asignación del tipo de dato. Diagramación lógica. Modelos y estándares de diagramación. Resolución de problemas simples mediante diagramación lógica. Concepto de Contador y Acumulador. Tipos de datos y modificadores. Tipos de datos aplicados a la programación. Determinación del tipo de dato. Variables enteras, reales boolenas, doble precisión y de caracteres. Rango de datos. Variables locales y globales. Modificadores de tipos. Palabras reservadas. Operadores y su precedencia. Operadores aritméticos, relacionales y lógicos. Operadores unarios. Operadores a nivel de bytes y a nivel de bits. Precedencia de operadores.
Estructuras condicionales. Toma de decisiones. La estructura condicional if...else. Resolución de algoritmos en los que se apliquen estructuras condicionales. Condicionales simples y anidadas. Estructuras condicionales de selección múltiple switch...case. Resolución de problemas mediante el diseño y desarrollo de programas. Prueba de escritorio. Estructuras de repetición. Concepto de estructura de repetición. Repetición controlada por contador y por centinela. Estructura de repetición for. Estructuras de repetición while y do...while. Condiciones de corte y salida de programa. Resolución de problemas mediante el desarrollo de algoritmos donde se apliquen estructuras condicionales y de repetición. Diseño de programas, técnicas para la construcción, documentación y seguimiento. Clasificación de los lenguajes de programación. Selección de la herramienta adecuada según la plataforma sobre la cual se realizará la solución. Confección de la documentación. Ventajas de comentar los programas realizados. Implementación y seguimiento de la solución desarrollada. Asistencia básica al usuario.
Ventajas de dividir la problemática en problemas menores. Aplicación del criterio top down. Concepto de biblioteca y funciones. Definición de funciones. Prototipos de función. Pasaje de parámetros por valor y por referencia. Concepto de recursividad. Diferencias y similitudes entre recursividad e iteración. Arreglos unidimensionales (vectores) y bidimensionales (matrices). Declaración y ejemplos. Métodos de búsqueda y ordenamiento. Pasaje de arreglos a una función. Arreglos de caracteres. Bibliotecas para la manipulación de caracteres y cadenas. Funciones de conversión, comparación y de memoria. Concepto de Punteros, representación de la memoria de la computadora. Definición e inicialización de punteros. Operadores. Llamadas a funciones y pasajes por referencia. Expresiones con punteros. Aritmética de punteros. Relación entre punteros y arreglos. Arreglos de punteros. Punteros a funciones.
Se propone mediante los siguientes contenidos el abordaje a la programación en un segundo nivel de complejidad. Si bien la presente propuesta es factible de desarrollarse con cualquier lenguaje de programación, se sugiere, así como en el año anterior, el trabajo con ANSI C/C++.
Estructuras de datos. Definición e inicialización de estructuras. Acceso a los miembros de la estructura. Funciones y estructuras. Definición de tipos. Uniones. Procesamiento de archivos. Jerarquía de datos. Archivos y flujos. Acceso secuencial. Acceso aleatorio. Archivos de texto y binarios. Introducción a las estructuras dinámicas en programación. Estructuras autorreferenciadas. Asignación dinámica de memoria. Listas. Listas enlazadas. Pilas. Colas. Árboles. Concepto de Shell. Shells y sistemas operativos. Operación de los shells y conceptos de sintaxis Variables utilizadas y establecidas por el shell. Procesamiento en segundo plano y control de procesos. Sustitución de comandos. Creación de alias de comandos. Programación de shell. Generación de archivos de inicio de shell. Scripting.
#EJERCITACIONES http://progdispelec.weebly.com/ejercicios.html