Asignatura: ALGORITMOS Y PROGRAMACIÓN I Vigente desde: Octubre 2008 Horas semanales Unidades Período Teoría Práctica Laboratorio de crédito II 4 2 0 5 Requisitos Estar cursando o haber aprobado Lógica Computacional SINOPSIS: En esta asignatura se tratan los siguientes tópicos: Introducción a la Esctructura del computador. Lenguajes de programación. Nociones de programas.Tipos de datos básicos. Algoritmos sobre tipos primitivos de datos. Estructuras de datos: listas y n-uplas. Entrada y salida. Tipos estructurados : arreglos y registros. OBJETIVOS: • Comprender los fundamentos básicos de la arquitectura von Neumann,Comprender las nociones básicas de algoritmo y tipo de datos,Conocer técnicas básicas para el desarrollo de algoritmos, Desarrollar algoritmos sencillos, en los cuales haga uso de estructuras de datos básicas, de demostrar su validez y de demostrarlos en algún lenguaje de programación de alto nivel. Conocer las nociones básicas del análisis de algoritmos.Conocer los rudimentos de la noción de tipo abstracto de datos, así como también, su importancia en el desarrollo de algoritmos. CONTENIDO PROGRAMÁTICO: 1. • 2. • 4. • • 5. Diseño de Programas y Algoritmos Concepto de algoritmo.Análisis del problema.Definición de algoritmo.Diseño de algoritmos.Verificación de algoritmos.Herramientas para la representación de algoritmos.Diagramas de flujo.Pseudocódigo. Introducción al Lenguaje de Programación Lenguajes naturales, pseudoformales y de programación.Características de un buen lenguaje de programación.Tipos de Datos simples.Concepto de tipo de datos.Tipos predefinidos.Tipos de datos simples definidos por el programador. Constantes, variables y expresiones.Operadores relacionales: asignación e igualación.Operaciones de Entrada y Salida.Estructura general de un programa. Ejemplos. Estructuras de control Estructuras secuenciales.Estructuras de selección simple, selección doble y selección múltiple. Estructuras repetitivas. Ejercicios de programación para descomponer un número en números primos, obtener el Máximo Común Divisor y el Mínimo Común Múltiplo. Algoritmo de Euclídes. Procedimientos y Funciones • • 6. Concepto de subprograma.Definición y llamadas a subprogramas. Parámetros formales y reales.Parámetros de entrada, salida y entrada-salidaPaso de parámetros por valor y por referencia.Procedimientos y funciones. Diferencias entre procedimientos y funciones.Anidamiento de subprogramas. Alcance. Corrida en frío de programas. Diseño de algoritmos recursivos Recursión.Recursividad frente a iteración.Ejemplos clásicos de recursividad: función Factorial, función Fibonacci, función Ackerman, etc. 7. • • 8. Cadena de Caracteres Definición. Operaciones: concatenación, subcadena, copiar, mover, eliminar, longitud. Tipos de Datos Estructurados Estructuras de datos: Arreglos unidimensionales y multidimensionales, arreglos como parámetros. Manejo de vectores y matrices. Operaciones de suma, resta, multiplicación. Diagonal de una matriz, triangular superior e inferior.Estructura de datos: Registros, registros variantes.Estructura de datos: Arreglos de registros.Estructura de datos Conjuntos, SubRangos y Enumerados 9. • • • Archivos Definición de archivos.Tipos de archivos: clasificación de archivos según su contenido y acceso.Operaciones de Archivos: apertura, cierre, lectura y escritura. Función fin de archivo, fin de línea Recorrido de archivos secuenciales. EVALUACIÓN: Materia Teórico-Práctico que se evalúa con exámenes parciales y proyectos sin final y sin reparación. BIBLIOGRAFÍA: • Joyanes. Fundamentos de la Programación. Ed. McGraw-Hill. 2ª Edición. Joyanes. Metodología de la Programación. Ed. McGraw-Hill.Dale y S. C. Lilly. PASCAL y estructuras de datos. Ed. McGraw-Hill.Prieto, Lloris y Torres. Introducción a la Informática. Ed. McGraw-Hill.Biondi-Clavel. Introducción a la Programación. Tomos 1, 2. Ed. Masson.Johnston. Learning to program. Ed. Prentice-Hall.Aho, Hopcroft y Ullman. Estructuras de datos y algoritmos. Ed. Addison-Wesley.Niklaus Wirth, “ Sistematic Programming. Prentice-Hall, 1975.