7
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.

Programación del curso - Estructura de Datos I

Embed Size (px)

Citation preview

Page 1: Programación del curso - Estructura de Datos I

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.

Page 2: Programación del curso - Estructura de Datos I

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.

Page 3: Programación del curso - Estructura de Datos I

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.

Page 4: Programación del curso - Estructura de Datos I

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

Page 5: Programación del curso - Estructura de Datos I

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

Page 6: Programación del curso - Estructura de Datos I

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

Page 7: Programación del curso - Estructura de Datos I

13. Langsam / Augenstein / Tenenbaum Estructuras de Datos con C y C++ Prentice may 14. Goodrich/Tamasia Estructura de Datos y Algoritmo en JAVA

CECSA