15
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 ESTRUCTURA DE DATOS UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUÍA DE ACTIVIDADES DEL PROYECTO FINAL CURSO 301305 ESTRUCTURA DE DATOS HERMES MOSQUERA ANGULO (Director Nacional) POPAYÁN Junio de 2011

Proyecto Final 301305-Estructura de Datos 2011-2

Embed Size (px)

Citation preview

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

GUÍA DE ACTIVIDADES DEL PROYECTO FINAL

CURSO

301305 – ESTRUCTURA DE DATOS

HERMES MOSQUERA ANGULO

(Director Nacional)

POPAYÁN

Junio de 2011

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

2. ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO

Esta es la primera versión de la Guía del proyecto final del curso desarrollada por

el Ing. Hermes Mosquera Angulo, quien ha sido Tutor de la UNAD en el CEAD

Popayán, desde el año 2006, se desempeña actualmente como Director nacional

del cuso desde el año 2007.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

3. INDICE DE CONTENIDO

Pág.

5. CARACTERÍSTICAS GENERALES……………………………………………….. 5

Introducción………………………………………………………………………….. 5 Justificación…………………………………………………………………………… 5 Intencionalidades formativas……………………………………………………….. 6 6. DESCRIPCIÓN DEL PROYECTO……………………………………………….. Fundamentación teórica…………………………………………………………… Descripción del Proyecto a desarrollar……………………………………………... Recursos a utilizar…………………………………………………………………….. Metodología……………………………………………………………………………. Sistema de evaluación………………………………………………………………… 7. RUBRICA DE EVALUACIÓN……………………………………………………….

8

9 9 10 10 11 12

8. FUENTES DOCUMENTALES…………………………………………………….. 14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

4. LISTADO DE TABLAS

Pág.

Tabla No.1 Rúbrica de evaluación del proyecto final 12

5

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

5. CARACTERÍSTICAS GENERALES

Introducción

El curso Estructura de datos es un curso de tipo Metodológico, el

cual requiere fortalecer la fundamentación teórica que se lleva a

cabo en el desarrollo de actividades académicas en el aula virtual

con el desarrollo del componente práctico, y del proyecto final

correspondiente al 40% que el estudiante realizará en el CEAD,

CERES, CAV, UDR en el cual está matriculado.

En ese sentido, en cada CENTRO donde se oferta el curso se

dispone de un Tutor del área que estará a cargo de la motivación,

del acompañamiento, apoyo académico, de la valoración de las

actividades prácticas, a demás del acompañamiento en el

desarrollo proyecto final presentado por cada estudiante.

El proyecto final es 100% práctico y consiste en el desarrollo de

programas a través de algoritmos codificados en el lenguaje de

programación C++ haciendo uso de los compiladores de C++ que

dan solución a situaciones reales del entorno donde se encuentra

el estudiante.

Justificación

Las estructuras de datos se ocupan del manejo y tratamiento de la

información a través de un conjunto de variables agrupadas y

organizadas de tal manera que puedan representar el

comportamiento de un proceso. En algunos casos la dificultad

para resolver un problema radica en definir claramente la

estructura de datos adecuada que de respuesta a los

requerimientos del sistema propuesto.

En tal sentido se propone como estrategia pedagógica y de fortalecimiento, el desarrollo asistido del componente práctico del curso el cual será de mucha ayuda al estudiante, dado que tiene la oportunidad de despejar posible dudas e inquietudes relacionadas con el tema especialmente en la parte técnica y manejo de la lógica de programación y la sintaxis del lenguaje; como resultado tendrá fundamentos para hacer aportes en el desarrollo de los trabajos colaborativos de cada unidad y del trabajo final.

Así mismo se plantea el desarrollo del proyecto final del curso correspondiente al 40% el cual debe realizarse a lo largo del

6

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

periodo académico como fortalecimiento al logro de las competencias del curso así como también sea el producto a obtener en la fase de transferencia ya que el proyecto tiene como finalidad dar solución a situaciones reales del entorno de cada estudiante, aplicando el conocimiento adquirido en el desarrollo del curso.

Intencionalidades

formativas

Propósitos

Desarrollar en los estudiantes del curso Estructura de datos la

habilidad y destreza que permitan conceptuar y transferir los

fundamentos teorico prácticos en el desarrollo programas

informáticos que den respuesta a situaciones del entorno real

mediante la utilización del lenguaje de programación C++.

Objetivos

Aplicar los conceptos avanzados en el desarrollo y codificación de

programas informáticos implementando el uso de apuntadores,

como también la gestión dinámica de la memoria y las

estructuras de datos en el desarrollo de soluciones informáticas

que den solución a situaciones reales.

Adquirir destrezas y habilidades, mediante trabajo individual y

cooperativo para el desarrollo de algoritmos y la programación de

computadoras mediante supuestos semánticos extraidos de

sutuaciones reales representados através de estructuras de datos.

Metas

Proponer soluciones en el área del procesamiento automatizado

de la información.

Desarrollar soluciones del entorno y problemas propios del entorno

para ser tratados mediante sistemas computacionales dando

aplicabilidad a las estructuras de datos y elaborar software de

base con interfaz gráfica de usuario.

Competencias

El estudiante está en capacidad de identificar, dominar, aplicar y

demostrar las competencias adquiridas mediante la realización de

ejercicios prácticos haciendo uso del lenguaje C++ , de manera

7

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

eficiente, implementando los apuntadores, la gestión dinámica de

memoria, las estructuras de datos lineales y la programación

gráfica con las estructuras de datos no lineales en la programación

de computadoras.

Porcentaje

40% de la ponderación total del curso (equivalente a 200 puntos sobre / 500)

8

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

6. DESCRIPCIÓN DEL PROYECTO FINAL DEL CURSO

Estrategia de aprendizaje

Por proyectos

Porcentaje de evaluación

40% de la ponderación total del curso

Desarrollo de la actividad

La actividad se desarrolla de forma individual

Temáticas que se evalúan en el proyecto

Unidad 1: Memoria dinámica

Apuntadores

Gestión dinámica de memoria

Operadores y funciones para la gestión de memoria Unidad 2. Estructuras de datos lineales

Pilas

Colas

Listas Unidad 3. Estructuras de datos no lineales

Teoría general de árboles

Árboles binarios

Producto

esperado

El estudiante entregará el archivo del proyecto realizado a través del aula virtual en el espacio creado para tal fin en las fechas establecidas de acuerdo a la agenda del curso. En el caso de estudiantes por mediación tradicional deben enviar el archivo al Tutor asignado al curso ya sea de forma directa o a través del correo electrónico y concertar la respectiva sustentación. Contenido a entregar del proyecto consta de una carpeta comprimida con extensión .zip o .rar el nombre de la carpeta debe ser El código del curso seguido del número de grupo y la primera letra del nombre seguido el apellido. Un ejemplo para mi caso Mi nombre es Hermes Mosquera Angulo si mi grupo es el 76 el archivo será renombrado como:

301305_76_HMosquera

El archivo debe contener un documento de Word que lleve el mismo nombre de la carpeta en el incluye la portada, introducción, Objetivos, Desarrollo de actividades el cual se realiza la descripción del planteamiento del problema, supuesto semántico o también llamado estudio de caso, el código fuente documentado, las imagen de la salida en pantalla del programa, las Conclusiones y la Bibliografía aplicando las normas ICONTEC. También se debe incluir en la carpeta el archivo del código fuente con extensión (***.CPP) y el ejecutable con extensión (****.exe) del programa desarrollado, codificados y compilados en C++ como aplicación a la temática del curso.

9

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

Fundamentación Teórica

Como fundamento teórico para el desarrollo del proyecto final se aborda la temática de los

apuntadores y la aplicabilidad que tienen en el campo de la programación estructurada. Los

apuntadores son un tipo especial de variables que guardan direcciones de otras variables. en

los lenguajes de programación de C++. Proporcionan mucha utilidad al programador ya que

permiten acceder y gestionar las estructuras de datos a diferencia de otros lenguajes de

programación llamados de alto nivel.

Por su parte la gestión dinámica de memoria hace referencia a la forma en que se almacenan

los datos en la computadora a través de los operadores y funciones. Se aborda la temática

relacionada con los tipos de datos que maneja el lenguaje C++ y el número de bytes requeridos

para almacenar cada tipo de datos, aunque este tema es transparente para el usuario normal de

un sistema computacional, si es motivo de preocupación para los programadores, que están

llamados a optimizar los recursos tanto físicos como lógicos.

Las estructuras de datos lineales influyen directamente con el manejo de la memoria del

computador cuando se implementan las Pilas, Colas y listas con sus respectivas

clasificaciones profundizando en las operaciones que se pueden realizar con este tipo de

estructuras.

Esta temática tiene gran aplicabilidad en situaciones reales cotidianas que pueden ser

representadas por medio de la pilas, colas y listas, es muy común y fácil de llevar a la realidad,

por ejemplo una lista de clientes, proveedores, una pila de productos, una cola para realizar

una consignación en un banco o un servidor para el manejo de impresiones, al igual que lo

vemos representado a diario en el uso de cualquier herramienta de Office con la opción

deshacer, al eliminar la última orden recibida.

Descripción del Proyecto a desarrollar

Con base en la lectura, el seguimiento y análisis de los programas que se incluyen en el módulo

como ejemplos de aplicación a la una de las temáticas y con los conocimientos adquiridos en el

desarrollo del componente práctico además de consultas en las diferentes fuentes

bibliográficas propuestas, cada estudiante de forma individual y bajo la asesoría del Tutor

asignado al componente práctico, Desarrolla un sistema de información tipo software que de

solución a una situación real y pertinente de su entorno, es decir que puede ser de su sitio de

trabajo, de su propio negocio o de la comunidad con el fin de darle solución aplicando la

conceptualización del curso especialmente aplicado a las estructuras de datos lineales,

inicialmente se requiere el desarrollo del planteamiento del problema a través de un supuesto

semánticos para ser resuelto a través de un programa codificado en el lenguaje de

10

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

programación C++, haciendo uso de apuntadores , funciones, condicionales, ciclos y

estructuras, ya que estas permiten almacenar datos de diferentes tipos, de igual manera hará

uso de los operadores New, Delete o de las funciones Malloc(), Free() para la gestión dinámica

de memoria.

Es importante emplear un menú de opciones que le permita al usuario interactuar de forma fácil

por las diferentes opciones que brinde el programa. Es decir que en el mismo proyecto debe

implementarse una pila, una cola y una lista enlazada y cada una de estas estructuras debe

estar diseñada de tal manera que permita ingresar visualizar, eliminar y buscar un dato de la

lista. Es importante utilizar funciones gráficas para darle color a la interfaz gráfica. El programa

puede generar reportes a un archivo de texto.

Recursos a utilizar en el proyecto (Equipos / instrumentos)

Equipos de cómputo, material bibliográfico, físico o digital, acceso a internet para ampliar la

bibliografía.

Modulo: Estructura de datos, Aula virtual: Estructura de datos Objetos virtuales de aprendizaje:

http://hhmosquera.orgfree.com/OvaBorlandC++5.5/contexto.html

http://hhmosquera.orgfree.com/apuntadores/index.html

http://hhmosquera.orgfree.com/OVA/index.html

http://hhmosquera.orgfree.com/arbolbinario/index.html

http://hhmosquera.orgfree.com/OVA-Grafo/index.html

Software a utilizar en el desarrollo del proyecto

Puede usarse cualquier compilador de C++. Sin embargo se recomienda el Compilador Turbo

C++ 3.0 y el Compilador Borland C++ 5.5

Estos compiladores no requieren ningún tipo de configuración y los puede descargar libremente

del sitio: https://sites.google.com/site/hhmosquera/file-cabinet y están disponibles bajo

licencia GPL.

Metodología

Conocimiento previo para el desarrollo del proyecto final. Se espera que el estudiante tenga los fundamentos teórico–prácticos en el campo de la

programación estructurada, que adquirió en los cursos de Algoritmos e Introducción a la

programación y el manejo de la sintaxis del lenguaje C++.

11

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

Forma de trabajo. El estudiante de forma individual identifica la situación problémica a solucionar, desarrolla el planteamiento del problema a través del supuesto semántico que codifica en C++ de acuerdo con las condiciones ya enunciadas. Procedimiento.

Bajo la asesoría y supervisión del Tutor, el estudiante haciendo uso del computador da

aplicabilidad a la temática tratada en el curso teniendo como base las orientaciones dadas en

esta guía. El estudiante presentará al Tutor asignado a través del aula virtual el proyecto final

del curso, dentro del plazo establecido en la agenda del curso para su respectiva valoración

Sistema de Evaluación

El Tutor asignado en el aula virtual hará la respectiva valoración del proyecto final que está

compuesto por partes: la primera parte tiene un valor del 50% es decir 100 puntos que

corresponde al desarrollo y entrega del proyecto en el espacio correspondiente dentro del foro

habilitado para tal fin.

La segunda parte tiene un valor de 50% corresponde a la sustentación del proyecto, esta se

desarrolla por vía web haciendo uso de las TICs; para obtener así el 100% de la valoración del

proyecto final basada en la rúbrica de evaluación del proyecto. Este proceso debe llevarse a

cabo dentro de los plazos establecidos en la agenda del aula.

12

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

7. Rubrica de evaluación del proyecto

Tabla No.1 Rúbrica de evaluación Proyecto final

Ítem Evaluado

Valoración baja Valoración Media Valoración Alta

Máximo Puntaje

Desarrollo del

proyecto

No se evidencia en el foro avances en el desarrollo del proyecto final (puntos = 0)

Se evidencia el desarrollo del proyecto en el foro pero estos avances solo son publicados días previos a la entrega del proyecto (puntos = 5)

El estudiante presenta sus avances durante el desarrollo del periodo académico de tal manera que en los avances presentados se evidencia la apropiación de la competencia. (puntos = 10)

10

Presentación del archivo

El estudiante no presenta el archivo con el contenido del proyecto realizado tal como se indica en la guía del proyecto. (puntos = 0)

Aunque el estudiante presenta el archivo solicitado este carece de algunos elementos solicitados en la guía como es documento del informe, el archivo del código fuente y el archivo con el código ejecutable. (puntos = 15)

El estudiante presenta el archivo, con todos elementos solicitados en la guía, incluye el informe, el archivo del código fuente y el archivo con el código ejecutable. (puntos = 20)

20

Desarrollo del

programa

El estudiante no presenta el desarrollo del programa solicitado como respuesta al supuesto semántico tal como lo indica en la guía del proyecto final. (puntos = 0)

Aunque el estudiante presenta el desarrollo del programa, este presenta errores de sintaxis en la compilación y ejecución. solo incluye el código fuente y el ejecutable o no corresponde a la solución del supuesto semántico presentado (Puntos = 30)

El estudiante presenta el programa acorde con los requerimientos de la guía dando solución al supuesto semántico presentado dando aplicabilidad a la temática del curso. (puntos = 50)

50

Presentación del

informe

El estudiante no presenta el documento solicitado tal como se indica en la guía del proyecto. (puntos = 0)

Aunque el estudiante presenta el documento, este carece de algunos elementos solicitado en la guía como Portada, introducción, objetivos desarrollo de actividades, conclusiones bibliografía. (puntos = 5)

El estudiante presenta el documento, con todos elementos solicitados en la guía, incluye la portada, introducción, objetivos desarrollo de actividades, conclusiones y bibliografía. (puntos = 10)

10

13

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

Formato de

presentación del

informe

El estudiante no presenta el documento solicitado acorde al formato solicitado. (puntos = 0)

Aunque el estudiante presenta el documento, este no obedece a las características requeridas ya que el nombre que da al documento y a la carpeta general no es el indicado, en la bibliografía y el documento en general no aplica las normas ICONTEC. (puntos = 5)

El estudiante presenta el documento, con todos elementos solicitados en la guía, aplica las normas ICONTEC, el nombre del documento y de la carpeta general del proyecto es acorde al solicitado. (puntos = 10)

10

Sustentación del

proyecto

El estudiante no realiza la sustentación de su proyecto. (puntos = 0)

El estudiante realiza la sustentación pero muestra debilidad en la apropiación del código fuente del proyecto y la temática del curso. (puntos = 50)

El estudiante realiza la sustentación demostrando la competencia en la apropiación del código fuente del proyecto y de la temática del curso. (puntos = 100)

100

Total puntos 200

14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

8. FUENTES DOCUMENTALES

AGUILAR, Luis (2003). Fundamentos de programación, algoritmos, estructura de

datos y Objetos, Tercera edición. España: McGRAW-HILL.

AGUILAR, Luis (200). Programación en C++, Algoritmos, estructura de datos y

Objetos. España: McGRAW-HILL.

AGUILAR, Luis (2003). Fundamentos de programación, algoritmos, estructura de

datos y Objetos Tercera edición. España: McGRAW-HILL.

AGUILAR Luis, ZAHONERO Martínez (2004). Algoritmos y Estructuras de Datos.

Una perspectiva en C. Madrid-España: McGraw-Hill.

BROOKSHEAR, J. Glenn (1995). Introducción a las ciencias de la Computación.

Cuarta Edición. Edición Española: Addison-Wesley Iberoamericana.

DEYTEL Y DEYTEL(1999). Como programa C++. Segunda Edición. México D.F:

Prentice Hall. McGRAW-HILL.

FARREL, Joyce (2000). Introducción a la programación lógica y diseño. México

D.F: Thomson.

KENNETH C, Louden (2004). Lenguajes de programación. Segunda edición.

MexicoD.F: Thomson.

Salvador, Pozo (2001). Estructuras dinámicas de datos- Listas circulares.

Consultado en Octubre de 2008 en http://c.conclase.net/edd/index.php?cap=004.

Salvador, Pozo (2001). Estructuras dinámicas de datos- Colas. Consultado en

Octubre de 2008 en http://c.conclase.net/edd/index.php?cap=003.

MENDEZ, Justo (2004). Las tendencias en los lenguajes de programación.

Consultado en Noviembre de 2008 en

http://www.ilustrados.com/publicaciones/EpZVVEZpyEdFpAKxjH.php.

15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA GUIA PROYECTO FINAL DEL CURSO: 301305 – ESTRUCTURA DE DATOS

CACERES, Abdiel (2005). Estructuras de datos en C++. Consultado en Febrero 25

de 2009 en http://computacion.cs.cinvestav.mx/~acaceres/courses/estDatosCPP/

CASTILLO, Lenin (2007). Listas doblemente enlazadas. Consultado en Mayo 2 de

2009 en http://ldcastillo.wordpress.com/tema-2-listas-doblemente-enlazadas/.

TEJADA, Héctor (2005). Asignación dinámica de Memoria y estructuras

dinámicas. Consultado en Octubre 23 de 2008 en

http://www.fismat.umich.mx/mn1/manual/node10.html.

RIOFRIO, Guido (2008). Estructura de datos y algoritmos. Consultado en

Septiembre 10 de 2008 en http://www.youtube.com/watch?v=ohb9bjPX7Vw.

SOTO, Lauro (2005). Manejo de Memoria. Consultado en Junio 23 de 2009 en

http://www.programacionfacil.com/estructura_de_datos/start.

Universidad de Huelva. Departamento de Tecnologías de la Información (DTI)

(2008). TAD Lineales. Consultado en Junio 23 de 2009 en

http://www.uhu.es/17207-18209/Transparencias/Tema3.pdf.

Fundamentos básicos del modo gráfico.

Fuente: http://www.youtube.com/watch?v=XLikJzrFcxA