UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADEMICO SUBPROGRAMA DE DISEÑO ACADÉMICO AREA: INGENIERÍA CARRERA: INGENIERÍA DE SISTEMAS PLAN DE CURSO I. Identificación: Nombre: COMPUTACIÓN II Código: 324 U. C. : 4 Carrera: Ingeniería de Sistemas/ TSU en Mantenimiento de Sistemas Informáticos Código: 236 / 237 Semestre: III Prelaciones: Computación I (323) Requisito: Ninguno Autor: MSc. Maria Eugenia Mazzei Ing. Nelly Escorcha Asesores: MSc. Carmen Z. Maldonado Lic. Carmen Velásquez MSc. Judit Carvallo Dra. Egleé Arellano Dr. Antonio Alfonzo Nivel Central Caracas, abril 2015 2 II. FUNDAMENTACIÓN El curso Computación II se centra en el estudio y aplicación de las diferentes estructuras de datos, conjuntamente con el diseño e implementación de los algoritmos apropiados para tratarlas. Bajo el enfoque actual, las estructuras de datos se conciben como colecciones de datos, sobre los cuales se pueden definir operaciones. Es nuestro interés proporcionar un enfoque actualizado del curso en este nivel de la carrera, que sirva de punto de partida para el desarrollo de habilidades relacionadas con el diseño de algoritmos a través de estructuras de datos apropiadas, con una visión hacia la programación orientada a objetos. El desarrollo de destrezas para el diseño de soluciones sencillas y su implantación en el computador, con el diseño adecuado de las estructuras de datos, sólo se logra a través de la ejercitación, sin olvidar la comprensión de los conceptos, de ahí la naturaleza teórico-práctica de la asignatura. La asignatura Computación II se ubica dentro de las asignaturas básicas del ingeniero de sistemas y del TSU en mantenimiento de sistemas. Su asimilación es fundamental para el buen desempeño en gran parte de las asignaturas de estas carreras, en donde el estudiante deberá implementar programas, de allí su carácter obligatorio. Por otra parte, fomenta el desarrollo de la lógica y la realización de acciones coherentes, indispensables para el diseño e implementación de programas en computadores; esto jugará un papel muy importante en la formación del futuro ingeniero. El dinamismo con el que se mueve el conocimiento en el campo de la Computación ha sido determinante en la selección del material instruccional para este curso. En este sentido, se considera conveniente proponer el empleo de libros producidos por editoriales del mercado, que complementados con guías Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 3 instruccionales adecuadas, fomenten el fortalecimiento y la actualización de los conocimientos. Tomando en consideración estos elementos, se diseñó el siguiente paquete instruccional: 1. El libro: Estructuras de Datos en C++, de Joyanes L. y Sánchez L., Editorial Mc Graw Hill. La selección de este libro está basada en criterios de actualidad, presentación, abundancia de ejemplos y disponibilidad. 2. Como texto alternativo se recomienda el siguiente libro: Estructuras de Datos y Algoritmos, de Aho A. V., Hopcroft J. E. y de Ullman J. D., Addison Wesley Longman. 3. Una guía instruccional que servirá de directriz para el empleo adecuado del libro. 4. Un paquete de software de programación para la implementación de los programas en el lenguaje C++. 5. Referencias a páginas WEB y cursos WEB que tendrán el efecto de enriquecer los conocimientos adquiridos. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 4 Orientaciones Generales MODALIDAD OBJETIVOS PRIMERA Las pruebas son de modalidad presencial y de desarrollo. 1y2 PARCIAL Ponderación de los objetivos: La ponderación consiste en la asignación de pesos a los objetivos evaluables de la asignatura, de acuerdo con la importancia y/o complejidad que tienen. La SEGUNDA escala de ponderación de esta asignatura es de 1 a 5 puntos. 3y4 PARCIAL Esta ponderación está determinada por la incidencia de los objetivos evaluables en: el perfil de la carrera, el objetivo terminal de la asignatura y los objetivos terminales de las asignaturas sobre las que existe prelación. INTEGRAL 1, 2, 3, y 4 • Las especificaciones del trabajo práctico se publican la primera semana de presentación de las pruebas. El estudiante consignará el trabajo resuelto con la prueba integral. Responsable: TRABAJO 5,6 y 7 Ing. Nelly Escorcha (Especialista de contenido) PRÁCTICO Teléfono: (0212) - 5552110 Correo electrónico: [email protected] M U O OBJETIVOS 1 1 Elaborar un TAD (Tipo Abstracto de Datos) para representar un dato particular. 2 2 Resolver problemas de tipo algorítmico aplicando el TAD Lista Enlazada. I 3 3 Resolver problemas de tipo algorítmico aplicando el TAD Pila y/o el TAD Cola. CONTENIDO • • II M I: U 1 y 2 M I: U 3 M II: U 4 M I y II: U1,2,3 y 4 M II y III: U 5,6 y 7 4 4 Resolver problemas de tipo algorítmico aplicando el TAD Árbol. 5 5 6 6 7 7 Implementar algoritmos en lenguaje de programación, a través del empleo de la estructura de grafo para la resolución de problemas específicos. Implementar algoritmos de Ordenación en lenguaje de programación, para la resolución de problemas específicos. Implementar algoritmos de Búsqueda en lenguaje de programación, para la resolución de problemas específicos. III Objetivo: Peso: 1 2 2 2 3 3 Peso máximo: 23 puntos 4 3 5 5 6 4 7 4 Peso acumulado: Calificación 1-8 1 9-10 2 11-12 3 Criterio de dominio académico: 16 puntos Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 13-14 4 15 5 16 6 17-18 7 19-20 8 21-22 23 9 10 5 ORIENTACIONES GENERALES 1. Los textos recomendados para este curso están disponibles en la Biblioteca del Centro Local, como Servicio de Préstamo en Sala y Préstamo Circulante. 2. La guía instruccional se encontrará alojada en http://www.ciberesquina.una.edu.ve. 3. Las especificaciones del Trabajo Práctico se suministrarán al estudiante a partir de la primera semana de presentación de pruebas, a través de la red: http://www.ciberesquina.una.edu.ve 4. El software requerido para realizar el trabajo está disponible en el Laboratorio de Computación del centro local. 5. Lea las instrucciones que aparecen en la guía instruccional. 6. Realice los ejercicios propuestos en cada unidad, en en la guía instruccional. 7. Implemente algoritmos en lenguaje de programación. Introduzca diferentes datos, para probar su algoritmo. Analice los resultados. 8. Consulte en la dirección electrónica indicada, referenciada en la unidad en la guía instruccional. Si no se hacen referencias específicas, se recomienda buscar el tema en Internet, a través de un buscador. 9. Ante cualquier duda, consulte con su asesor en su Centro Local. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 6 IV. DISEÑO DE LA INSTRUCCIÓN DEL CURSO Objetivo del curso: Codificar algoritmos, con sentido lógico y coherente, utilizando las estructuras de datos apropiadas, así como los métodos de clasificación y búsqueda aplicados a la resolución de problemas específicos. Objetivo Contenido 1 Elaborar un TAD (Tipo Abstracto de Datos) La abstracción. Modularidad. Tipos abstractos de datos. Uso de tipos de para representar un dato particular. datos y estructuras de datos fundamentales: cadenas, arreglos simples y multidimensionales, registros y conjuntos, punteros o apuntadores. Orientación a objetos: conceptos. 2 Resolver problemas de tipo algorítmico Especificación formal del TAD Lista. Implementación del TAD Lista con aplicando el TAD Lista Enlazada. estructuras dinámicas. Operaciones. Aplicaciones. Listas doblemente enlazadas. Listas circulares. 3 Resolver problemas de tipo algorítmico Especificación formal del TAD Pila. Implementación de Pilas con aplicando el TAD Pila y/o el TAD Cola. Arreglos. Implementación de Pilas con variables dinámicas. Operaciones Aplicaciones. Especificación formal del TAD Cola y Dipolo o Bicola. Implementación del TAD Cola o Dipolo con estructuras estáticas y/o dinámicas. Operaciones. Aplicaciones. 4 Resolver problemas de tipo algorítmico Recursividad: Concepto. Utilidad. Algoritmos típicos. Implementación de aplicando el TAD Árbol. procedimientos recursivos. Concepto de árbol binario. Árboles de Expresión. Construcción. Recorrido. Aplicaciones. Árbol binario de búsqueda. Operaciones. 5 Implementar algoritmos en lenguaje de Concepto de grafo. Representación del TAD grafo. Matriz de caminos. programación, a través del empleo de la Algoritmos fundamentales con grafos. Aplicaciones estructura de grafo para la resolución de problemas específicos. 6 Implementar algoritmos de Ordenación en Ordenación. Algoritmo de Burbuja. Algoritmo de Inserción. Algoritmo lenguaje de programación, para la resolución Shell. Algoritmo Quicksort. Algoritmo Heapsort. Binsort y Radixsort. de problemas específicos. 7 Implementar algoritmos de Búsqueda en Búsqueda. Búsqueda Lineal. Búsqueda Binaria. Hashing. Función de lenguaje de programación, para la resolución Hashing. de problemas específicos. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 7 OBJETIVO ESTRATEGIAS INSTRUCCIONALES Lea en el libro I, el capítulo: “Desarrollo de Software: Resolución de problemas y desarrollo de software”. Este capítulo presenta de manera general los principios fundamentales de la Ingeniería de Software, los cuales están dirigidos hacia el buen diseño de programas. Este enfoque permitirá al estudiante comprender la utilidad del correcto desarrollo del Software, sin importar el lenguaje empleado. Si utiliza el texto II, lea el capítulo: “Diseño y Análisis de Algoritmos”. Repase las instrucciones que se requieren para declarar los tipos de datos en el lenguaje de programación C++. Estudie los capítulos del libro I “Abstracción en lenguajes de programación” “Estructuras de datos C++”. Practique los ejercicios del libro I para la completa comprensión del TAD apropiado, según el caso en estudio. ESTRATEGIAS DE EVALUACIÓN Producto: Se presentarán situaciones, en donde el estudiante deberá elaborar un TAD para representar un tipo de datos, empleando el lenguaje de programación. Procedimiento: Se valorará la correcta elaboración de un TAD apropiado a la situación. Instrumento: La realización de este ejercicio formará parte de una prueba presencial de desarrollo. Momento: Primera prueba parcial y prueba integral. El tema a estudiar en esta unidad resulta muy intuitivo. La idea de objetos enlazados o relacionados está presente en la vida real. Piense en agrupaciones de objetos de algún tipo específico y de las operaciones posibles para manipularlos. • Lea el capítulo del libro I:”Listas: Acceso a las Listas”. Si utiliza el texto II, lea la sección sobre apuntadores y cursores. 2 • Realice los ejemplos presentados y los ejercicios. Como recurso de Resolver apoyo para la resolución de los ejercicios, utilice representaciones problemas gráficas de las variables tipo puntero. La comprensión de este capítulo servirá de base para el aprendizaje de los capítulos que siguen. de tipo algorítmico • Estudie en el libro I, los capítulos: “Listas enlazadas” y “Listas aplicando el doblemente enlazadas”, la estructura LISTA o en el libro II, las secciones sobre “El tipo de datos abstracto LISTA” y “Realización de TAD Lista listas”. Si utiliza el texto II, lea las secciones sobre LISTAS y Enlazada. Realización de LISTAS. • Realice los ejercicios relacionados con esta estructura, que incluyan además listas doblemente enlazadas y listas circulares. • Elabore algoritmos en seudo-lenguaje que simulen operaciones de listas de objetos enlazados. • Realice y pruebe los algoritmos en lenguaje de programación. Producto: Se propondrán situaciones prácticas que requieran una solución algorítmica empleando estructuras de datos lineales tipo lista enlazada, previa definición de estas. También se plantearán algoritmos que simulen operaciones con listas enlazadas para verificar u obtener los resultados a través de una ejecución en forma manual. Procedimiento: Se valorará la correcta elaboración del TAD Lista Enlazada, el algoritmo ajustado a la situación, en términos de su eficacia o la ejecución del mismo para obtener resultados. Instrumento: La realización de este ejercicio formará parte de una prueba presencial de desarrollo. Momento: Primera prueba parcial y prueba integral. • 1 Elaborar un TAD (Tipo Abstracto de Datos) para representar un dato particular • • • Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 8 Producto: Se plantearán situaciones prácticas que requieran una solución algorítmica empleando estructuras de datos lineales tipo pila y/o tipo cola, previa definición de las mismas. También se propondrán algoritmos que simulen operaciones con pilas y/o colas a fin de verificar u obtener resultados en • Observe objetos que se acumulen en forma de pilas, por ejemplo: una su ejecución manual. pila de facturas, de exámenes médicos u órdenes de reparación en un 3 Procedimiento: Se valorará la correcta taller y piense en distintas formas de operar con ellos. Resolver problemas de • Estudie el capítulo del libro I titulado: “Pilas”, la estructura PILA o en el elaboración del TAD Pila y/o el TAD Cola, el algoritmo ajustado a la libro II, las secciones relacionadas con PILAS. tipo situación, en términos de su eficacia o • Realice los ejercicios del libro relacionados con operaciones con pilas. algorítmico aplicando el • Elabore algoritmos en seudo-lenguaje que simulen operaciones de pilas la ejecución del mismo para obtener resultados. de objetos. TAD Pila y/o el TAD Cola. • Piense en los distintos tipos de colas que se forman para la solicitud de Instrumento: La realización de este servicios. • Estudie el capítulo del libro titulado: “Colas y colas de prioridades: el TAD ejercicio formará parte de una prueba presencial de desarrollo. COLA”, o el libro II, las secciones relacionadas con COLAS. • Realice los ejercicios del libro relacionados con operaciones con colas. Momento: Segunda prueba parcial y • Elabore algoritmos en seudo-lenguaje que simulen operaciones de prueba integral. colas. Incluya las colas de prioridades y dipolos. • Realice y pruebe los algoritmos elaborados en lenguaje de programación, empleando estructuras estáticas y dinámicas. El tema a estudiar en esta unidad se refiere a la definición y operación de pilas (stacks) y de colas. Tanto las pilas como las colas son estructuras de datos muy empleadas en computación, en diferentes ámbitos. La representación de las colas resulta muy fácil de entender, debido a la semejanza que posee con la realidad. Es frecuente ver la formación de líneas de espera frente a taquillas, cajeros, estaciones de gasolina o casetas de teléfonos, entre otras. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 9 Producto: Se plantearán situaciones prácticas que requieran una solución algorítmica empleando estructuras de datos tipo ÁRBOL, previa definición de las mismas. También se plantearán algoritmos relacionados con la estructura de árbol binario, con el objeto de obtener resultados a través o Estudie el capitulo del libro I: “Diseño recursivo de un árbol de de su ejecución manual. Búsqueda”. Si utiliza el texto II, estudie los procedimientos Procedimiento: Se valorará la correcta recursivos. o Estudie el capítulo del libro I: “Árboles binarios” .Si utiliza el texto elaboración de la estructura de datos, así como la elaboración del algoritmo II estudie el capítulo sobre el TDA ARBOL y Árboles Binarios. ajustado a una situación, en términos o Halle ejemplos de objetos que puedan considerarse recursivos. o Implemente algoritmos en lenguaje de programación que puedan de su eficacia. En algunos casos se realizarse empleando recursividad. Compare con soluciones en valorará la correcta ejecución de un donde emplee la iteración. Emplee el paquete de Software para algoritmo en forma manual, a fin de obtener resultados. En cualquiera de probar estos algoritmos. o Implemente algoritmos recursivos, en lenguaje de programación, las situaciones que se planteen de en adelante se exigirá relacionados con la estructura ARBOL binario. Observe la utilidad aquí de emplear algoritmos recursivos para operar con un árbol. eventualmente una solución algorítmica recursiva. Emplee el paquete de Software para probar estos algoritmos. o Investigue ejemplos de la vida real que puedan representarse como árboles. Intente operar sobre ellos, por ejemplo insertando o Instrumento: La realización de este ejercicio formará parte de una prueba eliminando nodos. presencial de desarrollo. Un objeto recursivo es aquel que forma parte de sí mismo. En la vida real existen objetos recursivos, por ejemplo, ciertas formas de la naturaleza así como formas creadas por el hombre, que en matemáticas se conocen como fractales. En computación un método recursivo es aquel que halla la solución a través de una secuencia de instancias más pequeñas del mismo problema. Existen diversos problemas que se resuelven en forma recursiva. 4 Resolver problemas de tipo algorítmico aplicando el TAD Árbol. Momento: Segunda prueba parcial y prueba integral. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 10 Es frecuente la necesidad de representar objetos que tienen múltiples relaciones con otros. Los grafos son abstracciones de estas relaciones y tienen gran aplicabilidad en diversos campos. Los modelos de rutas, las redes de comunicaciones, los circuitos eléctricos, las relaciones entre 5 Implementar individuos, son ejemplos, en donde los elementos se representan por algoritmos en puntos y sus relaciones por arcos. Piense en situaciones de este tipo y lenguaje de represéntelas como indicamos. Lo que resulta es un grafo. Su programación, representación en el computador es muy intuitiva, como Ud. lo constatará a través del al estudiar el material instruccional. empleo de la estructura de • Estudie en el libro I el capítulo del libro “Representación de los grafos”, grafo para la la estructura GRAFO. Si utiliza el texto II, estudie los “GRAFOS dirigidos resolución de y no dirigidos, representación”. problemas • Investigue ejemplos de la vida real que puedan representarse como grafos. específicos. • Realice e implemente un programa donde se utilicen la representación de los grafos. Producto: Implementación de un programa a través del computador. Uno de los procesos más utilizados cuando se opera con grupos de elementos en el computador es la ordenación de estos de acuerdo con algún criterio. Constantemente requerimos ordenar ascendentemente o descendentemente un conjunto de elementos para presentar la información organizada o para facilitar la búsqueda. El estudio de los 6 Implementar algoritmos fundamentales de ordenación proporciona destrezas en la algoritmos de elaboración de los algoritmos que pretenden resolver situaciones Ordenación específicas. en lenguaje • Estudie en el capítulo del libro Estructuras de Datos en C++, titulado de programación, “Operaciones en árbol binario de búsqueda” todas las secciones relacionadas con la ordenación. Implemente algoritmos de ordenación, para la empleando los métodos estudiados. Pruebe ejemplos. resolución de problemas específicos. • Realice comparaciones de los algoritmos estudiados en término de su eficiencia. Producto: Implementación de un programa a través del computador. Se planteará situaciones prácticas que requieran una solución empleando al menos un método de ordenación, a través de un programa. Procedimiento: Se valorará la correcta implementación del programa, así como la eficacia y la eficiencia de este. Instrumento: Trabajo práctico. Momento: Las especificaciones sobre la realización del trabajo práctico se entregan en la primera semana de aplicación de pruebas. El estudiante consignará el trabajo realizado con la prueba integral. Procedimiento: Se valorará la correcta implementación del programa así como la eficacia y la eficiencia del mismo. Instrumento: Trabajo práctico. Momento: Las especificaciones sobre la realización del trabajo práctico se entregan en la primera semana de aplicación de pruebas. El estudiante • Realice e implemente un programa empleando algunos de los métodos consignará el trabajo realizado con la prueba integral. de ordenación. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 11 7 Cuando tenemos un conjunto de elementos ordenados, en muchas ocasiones necesitamos localizar alguno de ellos, por ejemplo, buscar un número de cédula de identidad dentro de una lista ordenada para conocer el nombre asociado u otros datos. El estudio de los algoritmos que conforman esta unidad es fácil de comprender, debido a la semejanza que existe entre ellos y la realidad. Implementar algoritmos de • Estudie en el capítulo del libro “I titulado “Árboles de búsqueda Búsqueda en equilibrados” todas las secciones relacionadas con la búsqueda y en el lenguaje de capítulo del libro titulado “Tabla de dispersión, funciones hash”. programación, para la • Implemente algoritmos basados en los diferentes métodos analizados. resolución de problemas • Realice comparaciones de los algoritmos estudiados en término de su específicos. eficiencia. Producto: Implementación de un programa a través del computador. Se plantearán situaciones prácticas que requieran una solución empleando al menos un método de búsqueda, a través de un programa. Procedimiento: Se valorará la correcta implementación del programa así como la eficacia y la eficiencia del mismo. Instrumento: Trabajo práctico Momento: Las especificaciones se entregan la primera semana de aplicación de pruebas. El estudiante • Realice e implemente un programa empleando algunos de los métodos entregará el trabajo resuelto con la de Búsqueda. prueba integral. Plan de curso Computación II - Elaborado por Prof. María E. Mazzei y Nelly Escorcha – UNA 2015 12 V. BIBLIOGRAFÍA Obligatoria Joyanes, L., y Sánchez L. (2007). Estructuras de Datos en C++. Madrid. Mc. Graw Hill. Mazzei M., Escorcha N. (2015) Computación II Guía Instruccional. en plan piloto. Complementaria Aho, A., Hopcroft, J. E., y Ullman, J. D. (1998). Estructuras de datos y algoritmos. México. Addison Wesley Longman. Cairó, O., y Guadarti, S. (2001). Estructuras de Datos. México. Mc Graw Hill. Joyanes, L. (2003). Programación en C++ Madrid. Mc Graw Hill. Kolman, B., Busby, R. C. y Ross, S. (1997). Estructuras de Matemáticas Discretas para la Computación. México. Prentice-Hall Hispanoamericana S.A. Ruiz, A., y Chacón, C. R. (1987). Procesamiento de Datos I. Caracas. Plan de curso Computación II - Elaborado por María E. Mazzei y Nelly Escorcha UNA 2015
© Copyright 2024 ExpyDoc