Nombre: Miguel Andrs Viteri Chica Docente: Ing. Christian Torres. Nivel Segundo B
PERIODO: MAYO 2013-SEPTIEBRE 2013
2
Misin y Visin
Universidad Tcnica de Manab
Misin: Formar acadmicos, cientficos y profesionales responsables, humanistas, ticos y solidarios, comprometidos con los objetivos del desarrollo nacional, que contribuyan a la solucin de los problemas del pas como universidad de docencia con investigacin, capaces de generar y aplicar nuevos conocimientos, fomentando la promocin y difusin de los saberes y las culturas, previstos en la Constitucin de la Repblica del Ecuador.
Visin: Ser institucin universitaria, lder y referente de la educacin superior en el Ecuador, promoviendo la creacin, desarrollo, transmisin y difusin de la ciencia, la tcnica y la cultura, con reconocimiento social y proyeccin regional y mundial.
Facultad de Ciencias Informticas
Misin: Ser una unidad con alto prestigio acadmico, con eficiencia, transparencia y calidad en la educacin, organizada en sus actividades, protagonistas del progreso regional y nacional. Visin: Formar profesionales eficientes e innovadores en el campo de las ciencias informticas, que con honestidad, equidad y solidaridad, den respuestas a las necesidades de la sociedad elevando su nivel de vida.
3
FACULTAD/DEPARTAMENTO: FACULTAD DE CIENCIAS INFORMTICAS CARRERA: INGENIERA EN SISTEMAS INFORMTICOS ASIGNATURA/MDULO: ESTRUCTURA DE DATOS CDIGO: OF-0201 Nivel / Semestre: 2 N de Crditos:5 Modalidad : Presencial Paralelo: 2do. B Perodo Acadmico: Sept. 25/2012 Feb 14/2013 rea Acadmica: SOFTWARE PRERREQUISITO (S): CORREQUISITO (S): CONTENIDOS DISCIPLINARES QUE DEBEN SER APROBADAS ANTES DE CURSAR ESTE CONTENIDO DISCIPLINAR
CDIGO CONTENIDOS DISCIPLINARES QUE DEBEN SER CURSADOS AL MISMO TIEMPO QUE ESTE CONTENIDO DISCIPLINAR
CDIGO PROGRAMACIN I OC-0100
DOCENTE: Ing. CHRISTIAN RONALD TORRES MORN Ttulo: MAGITER EN GERENCIA EDUCATIVA E-mail: crtorres@utm.edu.ec Datos personales: Profesor contratado a tiempo completo de la asignatura Estructura de Datos, y Herramientas Web Director de Tesis de Ingeniera en Sistemas Informticos, miembro de los equipos de Vinculacin con la sociedad, Docente Tutor de pasantas pre profesionales, coautor del manual de Estructura de Datos junto a la Ing. Esthela San Andrs Lz, coautor del folleto de flujogramas para NBU.
UNIVERSIDAD TCNICA DE MANAB FACULTAD DE CIENCIAS INFORMTICAS CARRERA DE INGENIERA EN SISTEMAS INFORMTICOS
SYLLABUS
I.- INFORMACIN GENERAL
II.- RUTA FORMATIVA a.- DEL PERFIL DE EGRESO: Competencia/Resultado de Aprendizaje: Competencia: 3. Construye soluciones informticas de calidad que mejoren la eficiencia y eficacia de una organizacin haciendo uso correcto de la tecnologa. Resultado de Aprendizaje: a. Capacidad de planificar, disear, conducir e interpretar resultados de experimentos orientados a la informtica.
b.- OBJETIVO GENERAL DE LA ASIGNATURA: Capacitar al estudiante con los conocimientos significativos en administracin de memoria dinmica y herramientas tiles en los diseos, construcciones y usos principales de algoritmos en la estructuracin de datos lineales y no lineales. c.- DESCRIPCIN DE LA ASIGNATURA: La materia introduce al estudiante a los conceptos y aplicacin en la administracin de memoria, aplicando programacin estructurada y orientada a objetos, permite conocer la estructura bsica operacional de la memoria RAM y de los grandes diseos de software, aplicando C++ el estudiante desarrollar proyectos cientficos tanto con interfaces en modo grfico y en modo texto, tomando como referencia aplicaciones en el campo general de otras carreras.
4
Resultados del Aprendizaje (Objetivos Especficos)
Formas de Evidenciarlos (Apreciacin)
Niveles del resultado de aprendizaje
Ponderacin
1.- Identificar los tipos estructurados de datos estticos y dinmicos empleados en la creacin de aplicaciones, considerando los lenguajes de programacin. (Nivel Taxonmico: Conocimiento)
1.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.
Describir la definicin de la estructura de datos, los tipos de datos simples, bsicos y compuestos en un ensayo tcnico con: descripcin general del tema clara; ideas que tienen relacin, claridad y objetividad con el tema; y una conclusin clara con aporte personal.
Describir la definicin de la estructura de datos, los tipos de datos simples, bsicos y compuestos en un ensayo tcnico con: descripcin general del tema confusa; pocas ideas que tienen relacin, claridad y objetividad con el tema; y una conclusin confusa con aporte personal.
Describir la definicin de la estructura de datos, los tipos de datos simples, bsicos y compuestos en un ensayo tcnico con: descripcin general del tema confusa; poca o ninguna idea que tienen relacin, claridad y objetividad con el tema; y una conclusin confusa sin aporte personal.
NIVEL ALTO:
86-100
NIVEL MEDIO
71-85
NIVEL BSICO
70
2.- Elaborar aplicaciones dinmicas de estructura lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales. (Nivel Taxonmico: Aplicacin)
2.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.
Comparar con la utilizacin de un cuadro comparativo tres semejanzas y tres diferencias entre los tipos de datos que permiten almacenar ms de un dato; reflejando las relaciones de las comparaciones con ideas claras.
Comparar con la utilizacin de un cuadro comparativo tres semejanzas y tres diferencias entre los tipos de datos que permiten almacenar ms de un dato; reflejando las relaciones de las comparaciones con ideas pocos claras.
Comparar con la utilizacin de un cuadro comparativo dos semejanzas y dos diferencias entre los tipos de datos que permiten almacenar ms de un dato; reflejando las relaciones de las comparaciones con ideas confusas.
NIVEL ALTO:
86-100
NIVEL MEDIO
71-85
NIVEL BSICO
70
III.- RESULTADOS DE APRENDIZAJE DE LA ASIGNATURA
5
3.- Implementar aplicaciones dinmicas de estructura Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales (Nivel Taxonmico: Aplicacin)
3.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.
Implementar aplicaciones dinmicas de estructura Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales.
Implementar aplicaciones dinmicas de estructura Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones comerciales.
Implementar aplicaciones dinmicas de estructura No Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento.
NIVEL ALTO:
86-100
NIVELMEDIO
71-85
NIVEL BSICO
70
4.- Implementar aplicaciones dinmicas de estructura no Lineal, almacenamiento y recuperacin de los mismos en unidades de almacenamiento, aplicarn soluciones de administracin de memoria mediante el desarrollo de aplicaciones cientficas y comerciales (Nivel Taxonmico: Aplicacin)
4.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.
Elaborar un programa con estructuras dinmicas no lineales bien detallado.
Elaborar un programa con estructuras dinmicas no lineales con poca claridad.
Elaborar un programa con estructuras dinmicas no lineales de forma confusa.
NIVEL ALTO:
86-100
NIVEL MEDIO
71-85
NIVEL BSICO
70
6
5.- Organizar la informacin en algoritmos y estructuras AVL y su relacin con los gestores de Base de Datos (Nivel Taxonmico: Aplicacin)
5.- Pruebas escritas, orales (fotos), talleres, informes de ensayo, investigacin y Prcticas en el Lenguaje de programacin C++.
Elaborar un programa que emplee estructuras arborescentes de forma AVL uso de forma clara.
Elaborar un programa que emplee estructuras arborescentes de forma AVL de forma poco clara.
Elaborar un programa que emplee estructuras arborescentes de forma AVL de forma confusa.
NIVEL ALTO:
86-100
NIVEL MEDIO
71-85
NIVEL BSICO
70
7
N
PROGRAMA DEL CONTENIDO DISCIPLINAR (ASIGNATURA, UNIDAD, CURSO, TALLER, OTRO) POR TEMAS N TOT AL HOR AS P-A
HORAS PRESENCIALES
HORAS AUTNOMAS
ESTRATEGIAS PARA EL TRABAJO AUTNOMO 1. UNIDAD I: GENERALIDADES Y DEFINICIONES DE ESTRUCTURA DE DATOS
Definicin
Variables, Tipos de datos.
Representacin Grfica de las estructura de datos Acceso a las estructura de
Datos (Estticas)
Tipos de Estructuras de Datos
Diferencia entre gestin
Esttica y Dinmica
Operaciones con varios punteros Asignacin dinmica de memoria Liberacin dinmica de memoria La constante NULL
Ventajas y desventajas de punteros 46 23
Experiencia:
Aplicando lluvia de ideas concretar conocimientos relativo a la memoria y sus diferentes importancias en el funcionamiento del computador
Reflexin:
En equipos de trabajo, analizar el funcionamiento general del computador y de los programas, considerando las siguientes aplicaciones:
Procesadores de texto, Hojas de clculo, Reproductores, Tareas del sistema operativo como Impresin, etc.
Conceptualizacin:
Elaboracin de mapas conceptuales, cuadros de funcionamiento y estructurales de la memoria.
Aplicacin:
Resolucin de ejercicios demostrativos y de planteamiento de problemas. 23 Tareas extra- clases. Investigacin del tema de la unidad Tareas en el lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital. -Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica. 2. UNIDAD II: ESTRUCTURAS SIMPLES Y COMPUESTAS
Listas Abiertas 60 30
Experiencia:
Aplicando lluvia de ideas concretar conocimientos relativo a problemas 30 Tareas extra- clases. Investigacin del tema de la unidad Tareas en el lenguaje de -Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se
IV.- PROGRAMACIN
8
Definicin de listas abiertas
Declaracin e implementacin de una lista
Operaciones con Listas
Insercin de un nodo
Bsqueda de un nodo
Recorridos de una lista
Eliminacin de un nodo
Listas y Archivos
Variaciones de listas
Pilas y Colas
Listas circulares o cerradas
Declaracin e implementacin de una lista circular
Operaciones con Listas
Insercin de un nodo
Bsqueda de un nodo
Recorridos de una lista
Eliminacin de un nodo
Listas doblemente enlazadas abiertas y cerradas
Declaracin e implementacin de una lista doblemente enlazada
Operaciones con Listas
Insercin de un nodo
Bsqueda de un nodo
Recorridos de una lista
Eliminacin de un nodo
informticos planteados
Reflexin:
En grupos de trabajo, analizar el funcionamiento general de los diferentes algoritmos considerando las diferentes aplicaciones.
Conceptualizacin:
Elaboracin de conclusiones conceptuales, cuadros de funcionamiento y alternativas estructurales de solucin.
Aplicacin:
Resolucin de ejercicios demostrativos y de planteamiento de problemas. programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital. interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.
9 3.
Tipos de recorridos: PreOrden InOrden PostOrden
Operaciones con rboles Binarios de Bsqueda
Bsqueda de elementos. Insercin de elementos. Borrado de elementos. * Nodo hoja.
*Nodo rama.
Movimiento a travs del rbol. Comprobacin de rboles vacos.
Comprobacin del nodo hoja. Clculo de:
Nmero de nodos.
Altura del rbol.
Altura de un nodo.
rboles degenerados.
rboles binarios y su importancia en la agilidad y seguridad de los datos en el campo empresarial en general.
Reflexin:
En grupos de trabajo, analizar el funcionamiento general de los principales sistemas informticos, considerando el avance tecnolgico del software en la base de datos
Conceptualizacin:
Elaboracin de propuestas algortmicas, prcticas y de alternativas de resolucin.
Aplicacin:
Resolucin de ejercicios demostrativos y de planteamiento de problemas. lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica. 4. UNIDAD IV: TIPOS DE RBOLES ESPECIALES
rboles equilibrados.
Definicin.
Operaciones en AVL.
Factor de equilibrio.
Rotacin simple de nodos.
Rotacin simple a la derecha.
Rotacin simple a la izquierda.
Rotacin doble de nodos a la derecha.
Rotacin doble de nodos s la izquierda.
Reequilibrados de rboles AVL. Reequilibrados en rboles AVL por insercin de un nodo. 28 14
Experiencia:
Aplicando el planteamiento de problemas, identificar dificultades y generar la necesidad de encontrar soluciones algortmicas.
Reflexin:
En grupos de trabajo, analizar el funcionamiento de los diferentes algoritmos propuestos.
Conceptualizacin:
Elaboracin de propuestas de funcionamiento y alternativas estructurales de solucin.
Aplicacin: 14 Tareas extra- clases. Investigacin del tema de la unidad Tareas en el lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital. -Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica. UNIDAD III: ESTRUCTURAS ARBORESCENTES
Definicin, implementacin 26 13
Experiencia:
Aplicando debates definir la importancia de aplicar algoritmos generales de 13 Tareas extra- clases. Investigacin del tema de la unidad Tareas en el -Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos.
10
Tipos de recorridos: PreOrden InOrden PostOrden
Operaciones con rboles Binarios de Bsqueda
Bsqueda de elementos. Insercin de elementos. Borrado de elementos. * Nodo hoja.
*Nodo rama.
Movimiento a travs del rbol. Comprobacin de rboles vacos.
Comprobacin del nodo hoja. Clculo de:
Nmero de nodos.
Altura del rbol.
Altura de un nodo.
rboles degenerados.
rboles binarios y su importancia en la agilidad y seguridad de los datos en el campo empresarial en general.
Reflexin:
En grupos de trabajo, analizar el funcionamiento general de los principales sistemas informticos, considerando el avance tecnolgico del software en la base de datos
Conceptualizacin:
Elaboracin de propuestas algortmicas, prcticas y de alternativas de resolucin.
Aplicacin:
Resolucin de ejercicios demostrativos y de planteamiento de problemas. lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.
11 4. UNIDAD IV: TIPOS DE RBOLES ESPECIALES
rboles equilibrados.
Definicin.
Operaciones en AVL.
Factor de equilibrio.
Rotacin simple de nodos.
Rotacin simple a la derecha.
Rotacin simple a la izquierda.
Rotacin doble de nodos a la derecha.
Rotacin doble de nodos s la izquierda.
Reequilibrados de rboles AVL. Reequilibrados en rboles AVL por insercin de un nodo. 28 14
Experiencia:
Aplicando el planteamiento de problemas, identificar dificultades y generar la necesidad de encontrar soluciones algortmicas.
Reflexin:
En grupos de trabajo, analizar el funcionamiento de los diferentes algoritmos propuestos.
Conceptualizacin:
Elaboracin de propuestas de funcionamiento y alternativas estructurales de solucin.
Aplicacin: 14 Tareas extra- clases. Investigacin del tema de la unidad Tareas en el lenguaje de programacin C++. CD. interactivo libros PDF. Apoyo para el estudiante, Espacio virtual de la Universidad Tcnica de Manab, Internet. Guardar la evidencia en el Portafolio Digital. -Formarn equipos de 2 estudiantes -Del taller o tarea respectivas se escogern ejercicios representativos de acuerdo al resultado de aprendizaje -Se aplicar la tcnica de procesos. -Al final de la tarea se interrogarn, as: Qu cosas fueron difciles? Qu cosas fueron fciles? Qu aprend hoy da? Qu aporte a mi equipo? -Aplicarn un ASAT. (Aporte Significativo de Aprendizaje de la Tarea o Taller). -Para el ensayo del tema respetivo se Tomarn lo lineamientos ms importantes de la introduccin llamativa, fundamentacin y conclusin crtica.
Reequilibrados en rboles AVL por borrado de un nodo.
Resolucin de ejercicios demostrativos y de planteamiento de problemas.
V.- METODOLOGA Y RECURSOS Se aplicar un PEA, Dinmica de integracin y socializacin, documentacin, presentacin de los temas de clase y objetivos, lectura de motivacin y video del tema, tcnica lluvia de ideas, para interactuar entre los receptores, aplicando el ciclo del aprendizaje. Se aplicaran talleres con ASAT (aporte significativos de los aprendizajes de tareas o talleres) Revisin de la clase programada antes del da sealado para la sesin correspondiente (blog-docente) Consultas, tareas y talleres se entregarn en archivo escrito al docente y en archivo lgico al rea de contacto del curso. Los recursos disponibles para el curso sern: pizarra tiza lquida(4), proyector, internet inalmbrico, dispensador de agua, aire acondicionado, mesas de trabajo en equipo, proyector para equipos de trabajos en su lugar respectivo, sistema de audio, impresora de ltima generacin, computadores(2) del aula,1 porttiles por equipo del estudiante, libros-CD-interactivo- pdf., blog. del estudiante y del docente para interactividad y fortalecimiento contino.
12
MEDIO CICLO FINAL DE CICLO EXAMEN DE RECUPERACIN
ASISTENCIA EXMENES (30%) 15 15
ACT. EN EL AULA (40%)
Tareas 5 5
Ejercicios de aplicacin 2.5 2.5
Lecciones orales 2.5 2.5
Pruebas escritas 5 5
Participacin 2.5 2.5
Exposiciones 2.5 2.5
ACTIVIDADES DE INVESTIGACIN PORTAFOLIO PROYECTO INFORME FINAL (30%)
5 10
5
10
TOTAL 50% 50%
100%
VI.- PLANEACIN DE LA EVALUACIN Las evaluaciones estarn orientadas a los procesos, lo que conlleva a que ninguna evaluacin tenga una ponderacin determinante para la acreditacin. Durante el periodo acadmico, el estudiante de la Universidad Tcnica de Manab, se someter obligatoriamente a los siguientes parmetros de evaluacin de los aprendizajes: evaluacin de medio ciclo, evaluacin de final de cic lo, evaluacin de actividades varias y evaluaciones de investigaciones.
ACREDITACIN
VI.- BIBLIOGRAFA a.- Bibliografa Bsica: AUTOR TTULO DE LIBRO EDICIN AO PUBLICACIN EDITORIAL MARTNEZ, Romn Estructura de Datos, Referencia practica con objetos orientados a objetos 7 2008 Elda Quiroga TORRES, Christian Manuales de estructura de Datos en C++ 1 2010 Estudiantil-FCI-UTM. Ecuador b.- Bibliografa Recomendada: AUTOR TTULO DE LIBRO EDICIN AO PUBLICACIN EDITORIAL Garrido Antonio Abstraccin y Estructura de Datos en C++ 1 2006 Delta Publicaciones S. L. c.- Lecturas complementarias: http://c.conclase.net/edd/. http//www.utm.edu.ec http://evirtual.utm.edu.ec/course/view.php?id=25 robotica.uv.es/pub/Libro/PDFs/CAPI5.pdf www.dc.uba.ar ... Algoritmos y Estructuras de Datos II http://www.programacion.com/articulo/estructuras_de_datos_y_algoritmos_en_java_309/2 http://www.youtube.com/watch?v=tOOEff1r-tk
13
VII.- COMPROMISO TICO Escuchar y respetar democrticamente el criterio de los dems. Hacer silencio cuando alguien est haciendo uso de la palabra. Mantener el aula limpia, evitando botar basura en el piso No deteriorar ni rayar, las paredes, mesas y sillas. Procurar en todo momento la correcta manipulacin y utilizacin de los equipos informticos. La asistencia es obligatoria a todas las actividades programadas en esta asignatura. El estudiante ingresar a clase a la hora establecida y solo por una ocasin se aceptar el retraso de 10 minutos. El estudiante por ningn concepto utilizar celulares en el aula, igual comportamiento tendr el docente. El intento de copia de cualquier estudiante ser sancionado con la calificacin de cero y no habr oportunidad de recuperacin, independiente de las sanciones establecidas por la universidad. Los trabajos se entregarn en la fecha establecida y no se recibir en otra oportunidad. El estudiante ingresar al aula sin gorra y no consumir alimentos dentro del aula. El trabajo escrito ser realizado con las propias palabras e ideas del estudiante. Si se descubre la copia textual de un prrafo o un texto se calificar con cero.
Lugar y fecha: Portoviejo, 6 de Mayo del 2013
Ing. Christian Ronald Torres Morn (f) Docente (f) Coordinador
ANEXO. N 1
RESULTADOS DE APRENDIZAJE DE LA CARRERA ESPECFICOS A LOS QUE APUNTA LA MATERIA (ABET).
a. Capacidad de realizar anlisis, sntesis y aplicacin de las matemticas y ciencias bsicas en la solucin de problemas de ingeniera en sistemas informticos.
b. Capacidad de planificar, disear, conducir e interpretar resultados de experimentos orientados a la informtica.
c. La capacidad de disear sistemas, procesos, modelos y componentes informticos que cumplan los estndares nacionales o internacionales, tomando en cuenta las limitaciones econmicas, ambientales, sociales, polticas, de salud y seguridad del entorno, y cumpliendo satisfactoriamente con las especificaciones y restricciones existentes o indicadas por los interesados o por los criterios de sostenibilidad.
d. Capacidad para funcionar como parte de un equipo de profesionales de distintas reas del conocimiento, demostrando una efectiva cooperacin, comunicacin, con habilidades para resolver conflictos y contribuyendo proactivamente en la propuesta de lneas estratgicas desde el punto de vista informtico, para la solucin de problemas.
e. Capacidad para identificar, formular, evaluar y resolver tcnicamente problemas de ingeniera planteados de
14
a
b
c
d
e
f
g
h
i
j
k
A
M
B
acuerdo a las necesidades del medio.
f. Capacidad para comprender, reconocer y aplicar valores y cdigos de tica profesional, que le permitan desenvolverse sin perjudicar a sus clientes y contribuyendo al desarrollo de la sociedad.
g. Habilidad para presentar efectivamente, ideas, proyectos, informes de investigaciones, documentos de trabajo de manera escrita, oral y digital, utilizando las herramientas de las nuevas tecnologas de la informacin.
h. Habilidad y capacidad para comprender el impacto de las soluciones informticas a la realidad local, nacional e internacional en un contexto econmico global, ambiental y social.
i. Habilidad y aptitud para ser un profesional con el compromiso del aprendizaje continuo, con capacidad para reconocer las oportunidades para mejorar en su campo profesional.
j. Habilidad para identificar temas y problemas de actualidad con respecto al entorno local, regional y global, con el fin de relacionarlos con propuestas de soluciones creativas y eficientes.
k. Capacidad y destreza para utilizar tcnicas, habilidades y herramientas en el desarrollo de software y hardware para implementar soluciones a problemas de su profesin.
Contribucin de la materia a los resultados de aprendizaje de la carrera: A: Alta M: Medio B: Baja
15 DIARIO METACOGNITIVO
ESTRUCTURA DE DATOS Fecha: 06 Mayo 2013- 08 Mayo 2013. Temas discutidos: Definicin de estructuras de Datos Estructuras Estructuras de datos Son datos elementales aquellos que se consideran indivisibles en unidades ms simples. Una estructura de datos es una clase de datos que se puede caracterizar por su organizacin y operaciones definidas sobre ella. Algunas veces a estas estructuras se les l lama t ipos de datos. Los tipos de datos ms f recuentes utilizados en los diferentes lenguajes de programacin son: Lgicas de datos.- En un programa, cada variable pertenece a alguna estructura de datos explcita o implcitamente definida, la cual determina el conjunto de operaciones validas para ella. Primitivas y simples.- Aquellas que no estn compuestas por otras estructuras de datos por ejemplo, enteros, booleanos y caracteres.
Lineales: pi las, colas y listas ligadas lineales. No lineales incluyen grafos y rboles. Organizacin de archivos.-Las tcnicas de estructuracin de datos aplicadas a conjuntos de datos que los sistemas operativos manejan como cajas negras comnmente se llaman Organizacin de Archivos.
CLASIFICACIN DE LAS ESTRUCTURAS DE DATOS Se clasifican en: a) Por su almacenamiento b) Por su organizacin c) Por su comportamiento
16
a) Por su almacenamiento.- Se clasifican en: Internas Externas Internas.- Son aquellas cuyas estructuras se almacena en la memoria principal. Externas.- Son aquellas que se almacenan en las memorias secundarias de un sistema de computadoras. b) Por su organizacin.- Se clasifican en: Estticas Dinmicas Estticas.- son aquellas cuya agrupacin de memoria no se disminuye o aumenta estas son: cadenas, conjuntos, escalares, entre otros. Dinmicas.- Son aquellas cuya agrupacin de memoria pueden aumentar o disminuir durante la ejecucin del programa, estas son: pila, colas, listas. d) Por su comportamiento.- Se clasifican en: Simples Compuesto o Estructurados Simples.-Son aquellas que almacenan un valor y son: Escalares.- Enteros Real Lgicos Caracteres Compuesto.- Son aquellos que almacenan mltiples valores en su estructura y son los siguientes: Cadenas Arreglos Conjuntos Registros Listas Pilas Colas rboles Archivos Base de datos
17
Estructuras Supongamos que queremos hacer una agenda con los nmeros de telfono de nuestros amigos. Necesitaramos un array de Cadenas para almacenar sus nombres, otro para sus apellidos y otro para sus nmeros de telfono. Esto puede hacer que el programa quede desordenado y difcil de seguir. Y aqu es donde vienen en nuestro auxilio las estructuras. Para definir una estructura usamos el siguiente formato: struct nombre_de_la_estructura { campos de estructura; }; NOTA: Es importante no olvidar el ';' del final, si no a veces se obtienen errores extraos. Para nuestro ejemplo podemos crear una estructura en la que almacenaremos los datos de cada persona.
18
Vamos a crear una declaracin de estructura llamada amigo: struct estructura_amigo { char nombre[30]; char apellido[40]; char telefono[10]; char edad; };
A cada elemento de esta estructura (nombre, apellido, telfono) se le llama campo o miembro. (NOTA: He declarado edad como char porque no conozco a nadie con ms de 127 aos.
Ahora ya tenemos definida la estructura, pero aun no podemos usarla. Necesitamos declarar una variable con esa estructura. struct estructura_amigo amigo; Ahora la variable amigo es de tipo estructura_amigo. Para acceder al nombre de amigo usamos: amigo.nombre.
19 ESTRUCTURA DE DATOS Fecha: 13 Mayo 2013- 15 mayo 2013 Temas discutidos: Temas discutidos: Paso de estructuras a funciones Estructuras Anidadas Internas Externas Paso de estructuras a funciones: Las estructuras se pueden pasar directamente a una funcin igual que hacamos con las variables. Por supuesto en la definicin de la funcin debemos indicar el tipo de argumento que usamos:
int nombre_funcin ( struct nombre_de_la_estructura nombre_de_la variable_estructura )
Pasar slo miembros de la estructura: Otra posibilidad es no pasar toda la estructura a la funcin sino tan slo los miembros que sean necesarios. Los ejemplos anteriores seran ms correctos usando esta tercera opcin, ya que slo usamos el miembro 'edad': int suma( char edad ) { return edad+20; } int main() { printf( "%s tiene ", amigo.apellido ); printf( "%i aos ", amigo.edad ); printf( "y dentro de 20 aos tendr %i.\n", suma(amigo.edad) ); } Por supuesto a la funcin suma hay que indicarle que va a recibir una variable tipo char (amigo->edad es de tipo char).
20
Estructuras dentro de estructuras (Anidadas):
Es posible crear estructuras que tengan como miembros otras estructuras. Esto tiene diversas utilidades, por ejemplo tener la estructura de datos ms ordenada. Imaginemos la siguiente situacin: una tienda de msica quiere hacer un programa para el inventario de los discos, cintas y cd's que tienen. Para cada ttulo quiere conocer las existencias en cada soporte (cinta, disco, cd), y los datos del proveedor (el que le vende ese disco). Podra pensar en una estructura as:
struct inventario { char titulo[30]; char autor[40]; int existencias_discos; int existencias_cintas; int existencias_cd; char nombre_proveedor[40]; char telefono_proveedor[10]; char direccion_proveedor[100]; }; char direccion_proveedor[100]; };
Sin embargo utilizando estructuras anidadas se podrsa hacer de esta otra forma mas ordenada: struct estruc_existencias { int discos; int cintas; int cd; }; struct estruc_proveedor { char nombre[40]; char telefono[10]; char direccion[100]; };
Fecha: 20 mayo 2013-20 mayo 2013. Temas discutidos: Manejo de Punteros Typedef Typedef Ya conocemos los tipos de datos que nos ofrece C: char, int, float, double con sus variantes unsigned, arrays y punteros. Adems tenemos las estructuras. Pero existe una forma de dar nombre a los tipos ya establecidos y a sus posibles variaciones: usando typedef. Con typedef podemos crear nombres para los tipos de datos ya existentes, ya sea por capricho o para mejorar la legibilidad o la portabilidad del programa. Por ejemplo, hay muchos programas que definen muchas variables del tipo unsigned char. Imaginemos un hipottico programa que dibuja una grfica: unsigned char x0, y0; /* Coordenadas del punto origen */ unsigned char x1, y1; /* Coordenadas del punto final */ unsigned char x, y; /* Coordenadas de un punto genrico */ int F; /* valor de la funcin en el punto (x,y) */ int i; /* Esta la usamos como contador para los bucles */ La definicin del tipo unsigned char aparte de ser larga no nos da informacin de para qu se usa la variable, slo del tipo de dato que es. Para definir nuestros propios tipos de datos debemos usar typedef de la siguiente forma: typedef tipo_de_variable nombre_nuevo; En nuestro ejemplo podramos hacer: typedef unsigned char COORD; typedef int CONTADOR; typedef int VALOR;
Punteros
22 Son tipos de datos simples capaces de almacenar la posicin de una variable en memoria principal. Se dice que ellos direccionan a otras variables. Ejemplo:
Se dice que las variables ubicadas en las posiciones 1003 y 1006 son punteros, pues direccionan o "apuntan a" las posiciones 1000 y 1007 respectivamente.
23 ESTRUCTURA DE DATOS Fecha: 22 mayo 2013 -27 mayo 2013. Temas discutidos: Aporte Ejercicios de punteros utilizando el typedef Tipos de Datos Dinmicos Listas Abiertas Ejercicio Ejercicio: #include<iostream.h> #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> typedef struct _alumnos { char nom[30]; struct _alumnos *sig; }tipoAlumno;
24 {pnodo nodo; nodo = (pnodo)malloc(sizeof(tipoAlumno)); if (nodo==NULL) //if (l==NULL), if!(L) esto es igual a lista vacia { //if (l !=NULL), if (l) lista llena cout<<"\n Sin espacio de memoria\n"; return; } //LLENO LA INFORMACION DEL NODO strcpy(nodo->nom,c); //PROCEDO HACER LOS ENLACES if(!*l) {// es el primer nodo q va a ingresar a la lista nodo->sig=NULL; *l=nodo; } else {nodo->sig=*l; *l=nodo; } } void ver_lista(lista l) {pnodo n=.l while(l) {cout<<"\n"<<n->nom; n=n->sig; }
La forma ms simple de estructura dinmica es la lista abierta. En esta forma los nodos se organizan de modo que cada uno apunta al siguiente, y el ltimo no apunta a nada, es decir, el puntero del nodo siguiente vale NULL. En las listas abiertas existe un nodo especial: el primero. Normalmente diremos que nuestra lista es un puntero a ese primer nodo o llamaremos a ese nodo la cabeza de la lista. Eso es porque mediante ese nico puntero podemos acceder a toda la lista. Cuando el puntero que usamos para acceder a la lista vale NULL, diremos que la lista est vaca. En una definicin ms simple diremos que dentro de una lista abierta cada elemento slo dispone de un puntero, que apuntar al siguiente elemento de la lista o valdr NULL si es el ltimo elemento.
El nodo tpico para construir listas tiene esta forma:
struct nodo { int dato; struct nodo *siguiente; };
25
Operaciones Bsicas con las Listas Con las listas tendremos un pequeo repertorio de operaciones bsicas que se pueden realizar:
Aadir o insertar elementos. Buscar o localizar elementos. Borrar elementos. Moverse a travs de una lista, anterior, siguiente, primero.
Cada una de estas operaciones tendr varios casos especiales, por ejemplo, no ser lo mismo insertar un nodo en una lista vaca, o al principio de una lista no vaca, o la final, o en una posicin intermedia.
Insertar un elemento en una lista vaca Este es, evidentemente, el caso ms sencillo. Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a l, adems el puntero a la lista valdr NULL:
Lista vaca El proceso es muy simple, bastar con que: 1. nodo->siguiente apunte a NULL. En el ejemplo, cada elemento de la lista slo contiene un dato de tipo entero, pero en la prctica no hay lmite en cuanto a la complejidad de los datos a almacenar.
26 2. Lista apunte a nodo.
Insertar un elemento en la primera posicin de una lista
Insertar al principio Podemos considerar el caso anterior como un caso particular de ste, la nica diferencia es que en el caso anterior la lista es una lista vaca, pero siempre podemos, y debemos considerar una lista vaca como una lista. De nuevo partiremos de un nodo a insertar, con un puntero que apunte a l, y de una lista, en este caso no vaca:
Insertado al principio El proceso sigue siendo muy sencillo: Hacemos que nodo->siguiente apunte a Lista. Hacemos que Lista apunte a nodo. Insertar un elemento en la ltima posicin de una lista
Este es otro caso especial. Para este caso partiremos de una lista no vaca:
27
Insertar al final El proceso en este caso tampoco es excesivamente complicado: Necesitamos un puntero que seale al ltimo elemento de la lista. La manera de conseguirlo es empezar por el primero y avanzar hasta que el nodo que tenga como siguiente el valor NULL. Hacer que nodo->siguiente sea NULL. Hacer que ultimo->siguiente sea nodo.
Insertado al final
Insertar un elemento a continuacin de un nodo cualquiera de una lista De nuevo podemos considerar el caso anterior como un caso particular de este. Ahora el nodo "anterior" ser aquel a continuacin del cual insertaremos el nuevo nodo:
Insertar dentro Suponemos que ya disponemos del nuevo nodo a insertar, apuntado por nodo, y un puntero al nodo a continuacin del que lo insertaremos. El proceso a seguir ser:
28 Hacer que nodo->siguiente seale a anterior->siguiente. Hacer que anterior->siguiente seale a nodo.
Insertado dentro
Buscar o Localizar elemento en una lista abierta Muy a menudo necesitaremos recorrer una lista, ya sea buscando un valor particular o un nodo concreto. Las listas abiertas slo pueden recorrerse en un sentido, ya que cada nodo apunta al siguiente, pero no se puede obtener, por ejemplo, un puntero al nodo anterior desde un nodo cualquiera si no se empieza desde el principio. Para recorrer una lista procederemos siempre del mismo modo, usaremos un puntero auxiliar como ndice: Asignamos al puntero ndice el valor de Lista. Abriremos un bucle que al menos debe tener una condicin, que el ndice no sea NULL. Dentro del bucle asignaremos al ndice el valor del nodo siguiente al ndice actual.
Eliminar elemento a una lista abierta Eliminar el primer nodo en una lista abierta
Eliminar primer nodo Es el caso ms simple. Partiremos de una lista con uno o ms nodos, y usaremos un puntero auxiliar, nodo:
29 1. Hacemos que nodo apunte al primer elemento de la lista, es decir a Lista. 2. Asignamos a Lista la direccin del segundo nodo de la lista: Lista->siguiente. 3. Liberamos la memoria asignada al primer nodo, el que queremos eliminar.
Si no guardamos el puntero al primer nodo antes de actualizar Lista, despus nos resultara imposible liberar la memoria que ocupa. Si liberamos la memoria antes de actualizar Lista, perderemos el puntero al segundo nodo.
Primer nodo eliminado Si la lista slo tiene un nodo, el proceso es tambin vlido, ya que el valor de Lista->siguiente es NULL, y despus de eliminar el primer nodo la lista quedar vaca, y el valor de Lista ser NULL. De hecho, el proceso que se suele usar para borrar listas completas es eliminar el primer nodo hasta que la lista est vaca. Eliminar un nodo cualquiera de una lista abierta En todos los dems casos, eliminar un nodo se puede hacer siempre del mismo modo. Supongamos que tenemos una lista con al menos dos elementos, y un puntero al nodo anterior al que queremos eliminar. Y un puntero auxiliar nodo.
Eliminar un nodo El proceso es parecido al del caso anterior: 1. Hacemos que nodo apunte al nodo que queremos borrar. 2. Ahora, asignamos como nodo siguiente del nodo anterior, el siguiente al que queremos eliminar: anterior->siguiente = nodo->siguiente. 3. Eliminamos la memoria asociada al nodo que queremos eliminar.
30
Nodo eliminado Si el nodo a eliminar es el ltimo, es procedimiento es igualmente vlido, ya que anterior pasar a ser el ltimo, y anterior->siguiente valdr NULL.
Moverse a travs de una lista abierta Slo hay un modo de moverse a travs de una lista abierta, hacia delante. An as, a veces necesitaremos acceder a determinados elementos de una lista abierta. Veremos ahora como acceder a los ms corrientes: el primero, el ltimo, el siguiente y el anterior. Primer elemento de una lista El primer elemento es el ms accesible, ya que es a ese a que apunta el puntero que define la lista. Para obtener un puntero al primer elemento bastar con copiar el puntero Lista. Elemento siguiente a uno cualquiera Supongamos que tenemos un puntero nodo que seala a un elemento de una lista. Para obtener un puntero al siguiente bastar con asignarle el campo "siguiente" del nodo, nodo->siguiente. Elemento anterior a uno cualquiera Ya hemos dicho que no es posible retroceder en una lista, de modo que para obtener un puntero al nodo anterior a uno dado tendremos que partir del primero, e ir avanzando hasta que el nodo siguiente sea precisamente nuestro nodo. ltimo elemento de una lista Para obtener un puntero al ltimo elemento de una lista partiremos de un nodo cualquiera, por ejemplo el primero, y avanzaremos hasta que su nodo siguiente sea NULL. Saber si una lista est vaca
31 Basta con comparar el puntero Lista con NULL, si Lista vale NULL la lista est vaca. Borrar una lista completa El algoritmo genrico para borrar una lista completa consiste simplemente en borrar el primer elemento sucesivamente mientras la lista no est vaca.
Anexos
Presentacin de algunos ejercicios vistos en el curso de Estructura de Datos.