Download Estructura de datos
Document related concepts
Transcript
Ingeniería de Software 3er. Semestre CC404 ESTRUCTURA DE DATOS Características del curso: Este curso ofrece a los estudiantes de las carreras de cómputo las técnicas para organizar piezas relacionadas de información. El curso ofrece un tratamiento moderno de las Estructuras de Datos y aborda su implementación mediante técnicas disponibles en los lenguajes orientados a objetos. Todas las estructuras de datos (Archivos, listas, arreglos, registros, árboles y tablas) y algoritmos se trabajarán primero en un nivel conceptual de tipo de Dato Abstracto y posteriormente se implementarán mediante prácticas usando algún lenguaje de programación orientada a objetos (se sugiere C++). El enfoque del curso será hacia la utilización de las Estructuras de Datos en la solución de problemas. Se requiere que los estudiantes que deseen cursar esta asignatura sepan construir programas de computadora de mediana complejidad, conozca y entienda las fases para el desarrollo de programas por computadora. Al término del curso se espera que el estudiante: Conozca y comprenda: 1. El concepto de Tipo de Dato Abstracto (TAD, siglas en inglés) y su relación con el diseño de estructuras de datos y algoritmos. 2. La importancia del análisis y diseño de algoritmos para las ciencias de computación. 3. La importancia del enfoque de sistemas para un ingeniero y que lo haya aplicado a lo largo del curso en su interacción con compañeros, por lo que se espera también que el estudiante desarrolle actitudes positivas hacia el trabajo interdisciplinario, cooperativo y colaborativo. Sepa: 1. Estimar matemáticamente el tiempo de ejecución de los algoritmos y programas que desarrolle. 2. Utilizar funciones de estimación ya conocidas para obtener parámetros importantes de los algoritmos. 3. Aplicar los elementos principales de la programación orientada a objetos y su implementación con el lenguaje C++. 4. Diseñar y / o seleccionar las mejores estructuras de datos y / o algoritmos para aplicarlos en el desarrollo de programas de computadora que solucionen problemas diversos, tratando siempre de optimizar los recursos computacionales.