Upload
yessenia-i-martinez-m
View
335
Download
3
Embed Size (px)
Citation preview
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales
Departamento de Computación y Simulación de Sistemas
PROGRAMA ANALÍTICO DE ASIGNATURA
I. DATOS GENERALES DE LA ASIGNATURA
1. Denominación de la Asignatura: Estructura de Datos I Código: 8362 Semestre: I
Año: II
2. Carrera: Licenciatura en Desarrollo de Software
3. Tipo de Asignatura: No Fundamental Prerequisitos: Desarrollo de Software I
4. Créditos: 4 Cantidad de Horas Teóricas: 3 Horas de Laboratorio: 2
5. Profesor Responsable de (la elaboración / actualización) del Programa: Ing.
Jacqueline de Ching
6. Fecha de Aprobación del Programa:
II. JUSTIFICACIÓN
El estudio de algunos fenómenos o problemas que se presentan en ciencias y otras
áreas, debe realizarse utilizando técnicas matemáticas que permitan representar
gráficamente estos fenómenos, de forma tal que sea más comprensible y manejable
su solución.
Las estructuras de datos son un conjunto de técnicas matemáticas gráficas, que
ayudan en gran medida a resolver una variedad de problemas en muchas de las
ciencias antes mencionadas, que de otra forma sería prácticamente imposible de
hacer. Lo más importante de todo esto, es la susceptibilidad de estas técnicas de
permitir su programación, resolviendo los problemas o fenómenos antes mencionados
a través del computador.
Por otro lado, las estructuras de datos son la base fundamental sobre la cual se
soportan otras estructuras más complejas, pero que agilizan la vida cotidiana de las
organizaciones, tal es el caso de las Bases de Datos.
El manejo eficiente de la información, con algoritmos adecuados y óptimos,
representa otro de los elementos básicos para todo profesional de la informática,
evitando con ello respuestas poco fiables a problemas y en períodos de tiempo no
aceptables.
Todo lo anterior, son razones más que suficientes para justificar el estudio profundo
de las estructuras de datos y del concepto de eficiencia algorítmica.
El curso de Estructura de Datos I, es una parte esencial en la formación del
estudiante de Ingeniería, en donde se abordan temas como los diferentes tipos
estructuras, que son necesarias en el diseño de un programa, y además el estudio de
la recursividad los cuales son necesarios para la solución de problemas por
computadoras.
El curso de Estructura de Datos I, es el primer curso en el cual se pretende que el
estudiante aprenda a manejar las estructuras de datos en su representación y
manejo. Todo ello, con el propósito de que logre implementar proyectos de casos
reales, cuya solución se obtiene utilizando estas técnicas.
III. DESCRIPCIÓN
El curso esta compuesto por los siguientes módulos: 1) Estructuras de Datos
Primitivas, 2)Estructuras de Datos Lineales, en la que se discuten las estructuras de
datos primitivas, simples y lineales en general, su representación y operaciones. 2)
Estructuras Dinámicas de Datos, el cual permite conocer las estructuras tipo
listas enlazadas y el concepto de recursividad.
Este curso está ubicado en el segundo semestre de la carrera de Licenciatura en Desarrollo de Software con un total de 4 créditos. Adicional a esto, para complementar todo el aspecto teórico es necesario el uso de un lenguaje de programación orientado a objetos (C++ y Java) y del computador, sin los cuales el curso perdería su efecto final en el estudiante. IV. COMPETENCIAS
Básicas Genéricas
Competencia en comunicación lingüística
Competencia en el conocimiento y la interacción con el mundo físico
Tratamiento de la información y competencia digital
Competencia para aprender a aprender
Autonomía e iniciativa personal
Capacidad de análisis y síntesis.
Conocimientos generales básicos.
Solidez en los conocimientos básicos de la profesión.
Habilidades elementales en informática.
Habilidades para recuperar y analizar información desde diferentes fuentes.
Resolución de problemas.
Toma de decisiones.
Capacidad de crítica y autocrítica.
Trabajo en equipo.
Habilidades en las relaciones interpersonales.
Habilidades para trabajar en un equipo interdisciplinario.
Capacidad para aplicar la teoría a la práctica.
Habilidades de investigación.
Capacidad de aprender.
Capacidad de adaptación a nuevas situaciones.
Técnicas
Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías relativas a la informática y a sus disciplinas de referencia.
Encontrar soluciones algorítmicas robustas y correctas a problemas, comprendiendo la idoneidad y complejidad de las soluciones propuestas y las restricciones de tiempo y coste.
Programar de forma robusta y correcta teniendo en cuenta restricciones.
Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
V. OBJETIVO GENERAL:
Analizar las diferentes estructuras de datos utilizables en el diseño de
programas.
Conocer las diferentes estructuras de datos lineales para la resolución de
algoritmos.
Analizar los procesos recursivos utilizables en el diseño de programas.
Aplicar los algoritmos adecuados de las diferentes estructuras de datos y
procesos recursivos que permitan la solución de un problema específico.
VI. METODOLOGÍA:
Clases magistrales expositivas, trabajos grupales, trabajos individuales,
investigaciones, sustentaciones en clase.
VII. CONTENIDO
I. ESTRUCTURA DE DATOS FUNDAMENTALES 1. Definición y conceptos básicos 2. Estructura de datos Primitivas. 2.1 Enteros 2.2 Reales 2.3 Caracteres 2.4 Booleanos 3. Estructuras de Datos Simples
3.1 Cadenas 3.2 Arreglos 3.2.1 Dimensiones 3.2.1.1 Unidimensionales 3.2.1.2 Bidimensionales 3.2.1.3 N-dimensionales
3.2.2 Algoritmos de ordenamiento y su eficiencia 3.2.2.1 Selección 3.2.2.2 Inserción 3.2.2.3 Burbuja
3.2.3.Algoritmos de búsqueda y su eficiencia 3.2.3.1.Secuencial
3.5 Registros 3.5.1 Implementación 3.6 Conjuntos
3.6.1 Implementación
I. ESTRUCTURA DE DATOS LINEALES
1. Introducción 2. Pila 2.1 Operaciones sobre pila 2.2 Implementación de pilas 2.2.1 Algoritmos 2.3 Ejemplos 3. Colas 3.1 Operaciones sobre cola 3.2 Implementación de cola 3.2.1 Algoritmos 3.3 Ejemplos II. ESTRUCTURA DE DATOS DINÁMICAS LINEALES 1. Variables punteros
1.1 Asignación dinámica de memoria 1.2 Utilización de variables puntero 1.3 Ejemplos
2. Listas enlazadas 2.1 Introducción 2.2 Operaciones sobre una listas enlazadas 2.3 Implementación de una lista enlazada 2.4 Ejemplos
3. Listas enlazadas circulares 3.1 Algoritmos 4. Listas enlazadas circulares con nodos cabeza
4.1 Algoritmos 5. Listas doblemente enlazadas
5.1 Algoritmos 5.2 Aplicaciones
IV. RECURSION 1.1 Algoritmos recursivos
2.1 Procedimientos recursivos 2.1.1 Ejemplos
VIII. EVALUACIÓN
Parciales (3): 35% Semestral: 35% Proyectos (3): 15% Tareas, quices e investigaciones: 15% VIII. BIBLIOGRAFÍA
1. Dale/Lilly Pascal y Estructura de Datos McGraw-Hill
2. Tenenbaum/Augenstein Estructura de Datos utilizando Pascal Prentice Hall 3. Wirth, Niklaus Algoritmos y Estructuras de Datos Prentice-Hall 4. Lipschuts, Seymour Estructura de Datos - Teoría y Problemas Mc-Graw Hill 5. Abellanas, Lodares Análisis de Algoritmos y Tecnología de Grafos Macrobit 6. Grawley Pascal - Programación Estructurada Prentice Hall
7. Cairo / Guardati Estructura de Datos Mc Graw-Hill 8. Loomis, Mary E Estructura de Datos y Organización de Archivos Prentice Hall 9. Aguilar, Luis Joyanes Fundamentos de Programación: Mc Graw-Hill Algoritmos y Estructura de Datos 10. Villalobos, Jorge Diseño y Manejo de Estructuras de Datos en C Mc Graw-Hill 11. Aho / Hopcraft / Ullman Estructuras de Datos y Algoritmos Addison-Wesley 12. Allen, Mark Estructuras de Datos y Algoritmos Addison-Wesley
13. Langsam / Augenstein / Tenenbaum Estructuras de Datos con C y C++ Prentice may 14. Goodrich/Tamasia Estructura de Datos y Algoritmo en JAVA
CECSA