Post on 28-Oct-2015
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