UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE CIENCIAS MATEMATICAS Escuela Académico Profesional de Investigación Operativa SILABO 1. ESPECÍFICACIONES GENERALES Nombre del Curso Código del Curso Número de Créditos Requisito Carácter Duración del Curso Semestre Académico Forma de Dictado Horas Semanales Profesor : Algoritmo y Estructura de Datos en I.O : 964035 :3 : Programación de Computadoras II : Electivo : 17 Semanas : 2015 – 2 : Teórico - Práctico : 3 Hrs. (Sábado 8am – 11am) : Bravo Suarez Jhon 2. SUMILLA - Algoritmos Arreglos Unidimensionales Arreglos Multidimensionales Estructura de Datos. Archivos Listas Enlazadas Pilas Cola Árboles Grafos 3. OBJETIVOS Proveer una formación lógica matemática para desarrollar soluciones específicas. Implementar soluciones eficientes a problemas mediante métodos algorítmicos computacionales eligiendo correctamente las estructuras de datos más adecuadas, para finalmente aplicarlo en un lenguaje de programación. 4. SISTEMA DE EVALUACIÓN La evaluación es integral, continua y permanente. Se tendrá en cuenta la capacidad creativa y crítica del estudiante. PROMEDIO FINAL = ( EP + EF + PL ) / 3 EP: EXAMEN PARCIAL EF: EXAMEN FINAL PL: PROMEDIO DE PRACTICAS-LABORATORIO 5. DISPOSICIONES GENERALES El desarrollo del curso se rige por las siguientes disposiciones: Tolerancia de 20 minutos después de iniciada la clase. Límite de inasistencias 30%, pasado este límite el alumno no tendrá derecho a Examen Final ni a entrega de trabajos de laboratorio. 6. CONTENIDO ANALÍTICO POR SEMANAS 1ª Semana: Algoritmos. Introducción Estructura de datos: Definición – Clasificación – Operaciones sobre estructura de datos. Lenguaje de Pseudocódigo. Formalismo y abstracción de problemas y soluciones. Modularidad. Algoritmos: Características. Pre y Post condiciones. Complejidad del algoritmo. Aplicaciones. 2ª Semana: Desarrollo de algoritmos Técnicas del planteamiento del problema Implementación del algoritmo Uso de herramientas de análisis de programa(dfd y pseudocódigo) 3ª y 4ª Semana: Procedimientos y funciones Procedimientos. Funciones. Uso de parámetros. Recursividad: Definición. Recurrencias. Procedimientos recursivos. Aplicaciones. 5ª y 6ª Semana: Arreglos Unidimensionales Noción de arreglo unidimensional. Definición. Características. Representación en memoria. Acciones primitivas. Algoritmos básicos: Carga, Recorrido, Acceso a un elemento por posición, Acceso a un elemento por valor, Salvar en una fila, Recuperar desde una fila, Búsqueda binaria, Búsqueda secuencial en un arreglo ordenado, Inserción de un elemento en una posición, Inserción de un elemento después de un valor dado, Ordenación. Arreglo de registros. Aplicaciones. Cadenas. Funciones de conversión de cadenas, manipulación de cadenas, búsqueda, comparación de cadenas. Aplicaciones. Primera Práctica-Laboratorio. 7ª Semana: Examen Parcial 8ª y 9ª Semana: Arreglos Multidimensionales Noción de arreglo multidimensional - Definición. Matrices: Características. Acciones primitivas. Algoritmos básicos: Carga, Recorrido, Copia, Salvar en una fila secuencial, Recuperar desde una fila, Matriz simulado mediante un vector, Recorrido de una matriz simulada, Salvar la matriz simulada, Recuperar desde una fila secuencial. Aplicaciones. Matrices particulares: Triangulares, Simétricas, Huecas. Características. Representación. 10ª Semana: Estructuras y Archivos Noción de estructura. Aplicaciones y utilidad. Noción de registros. Aplicaciones Noción de Archivo. Principales operación con archivos. 11ª Semana: Listas Enlazadas Noción de lista enlazada. Definición. Características. Representación de listas enlazadas mediante arreglos, mediante arreglos de cursores y mediante apuntadores. Algoritmos básicos: Adición al final de la lista, Recorrido, Acceso a un elemento por posición, Acceso a un elemento por valor, Salvar en una fila, Recuperar desde una fila, Inserción de un elemento en una posición, Inserción de un elemento después de un valor dado, Eliminación de un elemento situado en una posición dada, Eliminación de un elemento dado, Ordenación, Mezcla. Aplicaciones. Noción de Listas doblemente enlazadas y Listas circulares 12ª Semana: Pilas y Colas Noción de Pila. Definición. Características. Representación mediante: arreglos, arreglos de cursores y apuntadores. Acciones primitivas. Aplicaciones de Pilas: Conversión y Evaluación de Expresiones Infija, Postfija y Prefija. Llamadas a procedimientos recursivos. Noción de Cola. Definición. Características. Representación mediante: arreglos, arreglos de cursores y apuntadores. Acciones primitivas. Aplicaciones. Bicolas. Bicolas de Entrada restringida. Bicolas de salida restringida. Colas de prioridades. Representación mediante arreglos y listas enlazadas. 13ª Semana: Árboles Noción de Árbol. Definición. Características. Acciones primitivas. Representación mediante arreglos y mediante apuntadores. Tipos de Árboles. Algoritmos básicos: Recorrido (orden previo, orden simétrico, orden posterior). Aplicaciones. Noción de Árbol binario. Definición. Características. Acciones primitivas. Representación mediante arreglos y mediante apuntadores. Árboles estrictamente binarios. Árboles completos y cuasi completos. Representación de un árbol completo o cuasi completo. Algoritmos básicos: Recorrido (pre orden, in orden, post orden), Recorrido por niveles, Ordenamiento, Búsqueda, Inserción, Eliminación. Aplicaciones: Árboles de expresiones. Construcción y Evaluación de expresiones. Árbol en montón (Ordenamiento por montón), Árbol binario de búsqueda, Árbol de Huffman (Algoritmo y código). 14ª y 15ª Semana: Grafos Noción de Grafo. Tipos: Grafos dirigidos y no dirigidos. Definición de grafo no dirigido. Representación mediante una matriz de adyacencia y lista de adyacencia. Operaciones básicas: Recorrido en profundidad y amplitud, paseo euleriano, ciclo Hamiltoniano, caminos mínimos, Algoritmo de Dijkstra, matriz de caminos, Algoritmo de Warshall. Grafo cíclico. Matriz de incidencia. Árbol abarcador de costo mínimo (Algoritmos de Prim y Kruskal). Aplicaciones. Definición de grafo dirigido. Búsqueda en profundidad. Árboles de recubrimiento, camino hamiltoniano, paseo euleriano, Recorrido. Matriz de adyacencia, matriz de incidencia, matriz de caminos. Algoritmo de Dijkstra, Algoritmo de Warshall. Segunda Práctica-Laboratorio. 16ª Semana: Examen Final 17ª Semana: Examen Sustitutorio 7. BIBLIOGRAFÍA Fundamentos de Programación. Joyanes Aguilar Luis Estructura de Datos y Algoritmos. Aho, Hopcroft y Ullman. Estructura de Datos y Algoritmos. Augusto Cortez. Estructura de Datos. Gallardo y Pérez. Estructura de Datos y Algoritmos. Hernández, Lázaro, Dormido y Ros. Estructura de Datos y Algoritmos. Jaime Alberto. Diseño de programas – Formalismo y Abstracción. Ricardo Peña Mori. Estructura de Datos con C y C++. Tenembaum, Langsam y Augenstein Estructura de datos y Algoritmos. Mark Allen Weiss Algoritmos en C++. Robert Sedgewick.