CONTENIDO TEMÁTICO DE LA ASIGNATURA FUNDAMENTOS DE PROGRAMACIÓN El contenido, es un documento institucional tomado del plan de estudios de la EISI, aprobado en el año 2005, el cual fue elaborado por docentes del area de programación de computadores de la Escuela. MATERIA: Fundamentos de programación. CODIGO: 22948 INTENSIDAD HORARIA: 5 horas semanales CREDITOS: 4 E1. PROPÓSITOS DEL CURSO A. Explicar y utilizar correctamente la terminología y los conceptos básicos de la informática. B. Explicar el concepto de algoritmo, enunciar las propiedades básicas de un algoritmo y desarrollar algoritmos para resolver problemas simples. C. Usar habilidades y destrezas para concebir la solución de un problema como una serie de procedimientos, lógicamente relacionados entre sí y susceptibles de ser programados. D. Emplear eficientemente un lenguaje de programación de alto nivel para construir, probar y perfeccionar programas que implementen algoritmos que resuelvan problemas sencillos. E. Usar eficientemente un ambiente integrado para desarrollo de programación. E2. JUSTIFICACIÓN El trabajo científico y tecnológico exige cada vez más a los profesionales soluciones inmediatas y eficaces ante los problemas que se presenten; la habilidad para producir tales soluciones exige que los profesionales posean la capacidad de conceptualizar y definir de manera adecuada los problemas. Es deber de toda universidad lograr que el estudiante aprenda a crear abstracciones de la realidad de los problemas que ha de resolver y aprenda a plantear dichas abstracciones en los lenguajes usados por los expertos en el área de conocimiento específico. El ingeniero de sistemas debe manejar diversos paradigmas de solución de problemas mediante el uso de la informática. E3. CONTENIDO 1. TEORÍA INFORMÁTICA BÁSICA 1.1. Descripción Funcional de un Sistema Computacional 1.1.1 Habilidades fundamentales de un sistema de cómputo 1.1.2 Componentes Hardware de un sistema computacional 1.1.3 Dispositivos de entrada, Dispositivos de salida, Memoria, Dispositivos de almacenamiento 1.1.4 Unidad Central de Procesamiento 1.1.5 Componentes Software de un sistema computacional 1.1.6 Programas, Lenguajes de programación, Noción de software 1.2 Clases de Aplicaciones de la Informática 1.2.1 Numéricas 1.2.2 Alfanuméricas 1.2.3 Gráficas 1.2.4 Audio 1.2.5 Video 1.2.6 Telecomunicaciones 1.2.7 Control automático. 1.2.8 Reconocimiento de lenguaje natural 1.3 Evolución histórica de los sistemas computacionales 1.3.1 Evolución histórica del hardware 1.3.2 Evolución histórica del software 1.4 Las Redes de Computadores 1.4.1 Noción elemental de red de computadores 1.4.2 La Internet 1.4.3 El paradigma de la computación en red 1.5 Almacenamiento de Datos 1.5.1 Conceptos básicos de Sistemas Numéricos 1.5.2 Unidades de medida de memoria 1.5.3 Direcciones de memoria 1.5.4 Variables y constantes 1.5.5 Caracteres, Campos, Registros, Archivos, Bases de Datos 1.6 Etapas Para Resolver Problemas Mediante el Computador 1.6.1 Planteamiento del problema 1.6.2 Análisis 1.6.3 Desarrollo de algoritmo 1.6.4 Codificación 1.6.5 Edición 1.6.5 Compilación 1.6.7 Enlace 1.6.8 Cargue 1.6.9 Ejecución 1.6.10 Verificación de resultados 2. CONCEPTOS GENERALES PARA SOLUCIÓN DE PROBLEMAS 2.1 Conceptos Básicos de Tipos de Datos 2.1.1 Beneficios de los tipos de datos soportados por cualquier lenguaje de programación. 2.1.2 Variables y constantes 2.1.3 Operadores y expresiones 2.2 Acciones Básicas De Programación 2.2.1 Lectura, 2.2.2 Escritura, 2.2.3 Asignación, 2.2.4 Comparación (selección, decisión), 2.2.5 Repetición. 2.2.6 Agrupación de instrucciones 2.3 Procesos Básicos de Programación 2.3.1 Sumatoria 2.3.2 Conteo 2.3.3 Selección de datos 2.3.4 Generación de datos 2.3.5 Ordenamiento de datos 2.3.6 Búsqueda de datos 2.4 Algoritmos 2.4.1 El concepto y las propiedades de los algoritmos 2.4.2 Formas de descripción de algoritmos 2.4.3 Seudocódigo: Estructuras de secuencia lineal, estructuras de selección y estructuras de repetición 2.4.4 Diagramas de flujo: Estructuras de secuencia lineal, estructuras de selección y estructuras de repetición 2.4.5 Verificación de un algoritmo 2.4.6 Recomendaciones para la elaboración de algoritmos 2.4.7 Ayudas computacionales para elaborar diagramas de flujo y simular programas. 3. PROGRAMACIÓN EN LENGUAJE DE ALTO NIVEL VISUAL C++.NET 3.1 Introducción 3.1.1 Características del lenguaje. 3.1.2 Estructura de un programa. 3.1.3 Elementos léxicos 3.1.4 Estilo de codificación. 3.1.5 El ambiente de programación 3.2 Tipos de Datos 3.2.1 Clasificación de los tipos de datos 3.2.2 Formas de representación de los datos 3.2.3 Declaración de los datos constantes y variables 3.2.4 Inicialización de variables 3.3 Expresiones 3.3.1 El concepto de expresión 3.3.2 Clasificación de operadores. 3.3.3 Las prioridades de los operadores. 3.3.4 Evaluación de expresiones. 3.4 Proposiciones 3.4.1 Clasificación de las proposiciones. 3.4.2 Proposiciones de asignación. 3.4.3 Proposiciones de lectura 3.4.4 Proposiciones de escritura 3.4.5 Proposiciones de selección. 3.4.6 Proposiciones de repetición. 3.4.7 Proposiciones de control especiales 3.5 Estructuras básicas de datos 3.5.1 Estructuras de datos homogéneos 3.5.2 Estructuras de datos heterogéneos 3.5.3 Estructuras integradas (datos y programas) 3.6 Programación modular 3.6.1 Concepto de sistema para solución de problemas complejos 3.6.2 Clasificaciones de los subprogramas 3.6.3 Requisitos para el uso de subprogramas (definición, invocación) 3.6.4 Estructura de un sistema modular 3.6.5 Enlaces y uso de bibliotecas de subprogramas 3.6.6 Catalogación de subprogramas 3.7 Estructuras contenedoras de datos 3.7.1 Pilas: Estructura de almacenamiento y operaciones 3.7.2 Colas: Estructura de almacenamiento y operaciones 3.7.3 Listas enlazadas: Estructura de almacenamiento y operaciones. 3.8 Archivos de datos en disco 3.8.1 Conceptos básicos 3.8.2 Modos de acceso 3.8.3 Operaciones de almacenamiento y recuperación 3.8.4 Operaciones de consulta y actualización E4. ESTRATEGIAS PEDAGÓGICAS Y CONTEXTOS APRENDIZAJE PARA HORAS TIPO TAD Y TI POSIBLES DE Este curso se desarrolla mediante exposiciones del profesor con participación de los estudiantes en la discusión de conceptos y solución de problemas y con prácticas en el laboratorio de computadores. Las estrategias evidenciadas para la asignatura se presentan detalladamente en la planeación curricular contenida en el Anexo F. E5. EVALUACIÓN DE LA ASIGNATURA Examen 1. 30% 150 puntos Examen 2. 30% 150 puntos Examen 3. 30% 150 puntos Quizes y Laboratorios 10% 50 puntos Proyectos, tareas, trabajo investigación. E6. BIBLIOGRAFÍA BÁSICA Y COMPLEMENTARIA LIBROS CAIRO, Osvaldo. Metodología de la programación, Tomo I, Computec, Alfa Omega Grupo Editor S.A. México, 1996. CARRILLO, Elberto. Problemario solucionario de Introducción a los Computadores. Publicaciones UIS, Bucaramanga, 1995. FERREIRA C., Gonzalo, Informática paso a paso, Computec, Alfa Omega Grupo Editor S.A. México, 2000. Joyanes, Luis, Problemas de metodología de la Programación, McGrawHill, 2000. NORTON, Peter. Introducción a la computación, McGraw-Hill, 2000, Tercera Edición. Pappas, Chris, Manual de referencia Visual C++.NET, Interamericana de España S.A., 2002 PARRA, Leonel. El arte de la programación, Introducción a la Informática. Publicaciones UIS, Bucaramanga, 1989. PARRA Pinilla Leonel, Programación y Algortimia, Enfoque procedimental para la solución de problemas bajo ambiente Visual Studio C++ (Diagrama, Seudocódigo y Código). 2007 TREJOS Baritica Omar Ivàn, Fundamentos de Programación – Básico VILLALOBOS S. Jorge A. / Programación, Nivel I CASALLAS G. Rubby, Fundamentos de