p. 1
fundaciÓn universitaria san martÍn facultad de universidad abierta y a distancia educación a través de escenarios múltiples contenido programÁtico de asignatura estructuras de datos e informaciÓn programa ingenierÍa de sistemas asignatura estructuras de datos e informaciÓn espacio académico teórico práctico Área ciencias básicas de ingeniería cÓdigo semestre iv período académico crÉditos tres 3 créditos prerequisitos datos y laboratorio iii las estructuras de datos e informaciÓn justificaciÓn
[close]
p. 2
los procesos de desarrollo de software se hacen cada vez más complejos y dentro del paradigma de esa complejidad se hace pertinente conocer y dominar un espectro del mundo de la programación que es más que fundamental las estructuras de datos la información se hace cada vez más compleja en las empresas y los procesos que se nutren de dicha información requieren de herramientas portadoras que agilicen el acceso a la misma es por ello que conocer cómo operan las estructuras complejas de programación de datos se hace más que pertinente para un currículo académico de ingeniería de sistemas acorde con dichas expectativas a través de este programa se espera que los estudiantes con un bagaje en lenguaje de programación y algoritmia básica puedan profundizar aún más sus conocimientos y sobretodo valorar la importancia de las estructuras de datos en la creación de soluciones informáticas y programacionales sólidas y concretas útiles para la ejecutoria de procesos de negocio susceptibles de automatización vía software los estudiantes también podrán analizar la relación de esta asignatura con otras y ver cómo a través de la construcción de procesos de automatización de código se pueden generar aplicaciones basadas en el paradigma de objetos y tendientes a mejorar la calidad del software producido ideal de formaciÒn el ideal de formación de esta materia está en dar al estudiante del pregrado de ingeniería de sistemas las herramientas necesarias para analizar problemáticas del mundo real y utilizar el lenguaje de programación como herramienta fundante para la construcción de soluciones computacionales capaces de dar respuesta a los fundamentos axiales y procedimentales de dichas problemáticas el estudiante comprenderá la esencia de las estructuras de datos su importancia en la construcción de aplicaciones y el impacto de los algoritmos en el uso eficiente de las mismas con el fin de apoyar la construcción de procesos de negocio que hagan de dichas estructuras su referente de inflexión para la organización optimización procesamiento y distribución de información útil y eficiente para la resolución de problemas del mundo real competencias los estudiantes a través del contenido deben alcanzar el desarrollo de las siguientes habilidades actitudes y aptitudes comunicativa en el espacio comunicativo el estudiante tendrá la habilidad de:
[close]
p. 3
· expresar apropiadamente problemas de programación mediante la definición formal de su contexto identificando el mundo de un problema y enfocando el aspecto del diseño como herramienta para llegar a la solución · saber expresar un problema de programación y plasmarlo a través de casos de uso diagramas de clase y finalmente código fuente de un lenguaje nativo de programación orientado a objetos · definir apropiadamente clases con su apropiada autodocumentación interna con el objeto de fomentar la organización en la estructura de las técnicas modernas de programación y con ello propender por el mantenimiento y la reusabilidad de las aplicaciones de software · ser capaz de establecer documentos que permitan desde la perspectiva técnica y funcional especificar problemáticas específicas de desarrollo de aplicaciones y fundamentar porqué el uso de ciertas estructuras de datos es fundamental para la construcción de las especificidades de dicha solución informática cognitiva el estudiante desarrollará · capacidad para entender cuáles son las principales herramientas del análisis lógico y matemático en la elaboración de soluciones algorítmicas · habilidad para entender las diferencias entre los distintos tipos de programación y capacidad para llevar dichos conocimientos a la realización de procedimientos de solución de problemas del entorno social y cultural · capacidad para entender qué tipo de estructura de programación a aplicar dependiendo de los requerimientos y necesidades postulados por un problema de carácter procedimental o de automatización · destreza en el manejo de los principales conceptos de la orientación a objetos los cuales en última instancia son la base del desarrollo actual de los paradigmas contemporáneos de programación · crear estructuras de datos mediante el uso del paradigma orientado a objetos y emplear dichas clases reutilizables para integrar aplicaciones computacionales de mayor complejidad y uso concreto contextual a nivel conceptual el educando generará · habilidad para definir la estructura visual de un algoritmo y llevar dicha representación a la implementación concreta bajo un lenguaje de programación orientado a objetos en este caso java · capacidad para distinguir entre los diversos tipos de datos y emplearlos adecuadamente a la hora de plasmar conceptos del mundo real en representaciones algorímitcas abstractas y luego en sus implementaciones concretas a nivel de pseudocódigo y código fuente nativo · destreza en la creación de clases de java y su compilación empleando tanto herramientas rudimentarias de compilación y depuración como ides de programación más especializados.
[close]
p. 4
· habilidad para identificar los principales paquetes y clases de java útiles para crear bibliotecas personalizadas de programador valorativa en el ámbito valorativo el estudiante podrá · analizar la importancia de la programación como una herramienta de construcción de soluciones a los problemas de la vida cotidiana · tener habilidad para trabajar en equipo valorando la opinión ajena y generando criterios y patrones de análisis lógico que le faciliten la discusión de los problemas en aras de lograr soluciones óptimas y realizables · formar un criterio a la hora de toma decisiones sobre qué solución de implementación de código puede ser la más pertinente ajustando las necesidades del desarrollo a la capacidad de cómputo disponible y a los requerimientos derivados de los clientes en cuestión distribuciÓn de contenidos fascÍculo i logros al finalizar el estudio de este fascículo el estudiante entenderá la esencia de las clases y los objetos verificará los principales componentes en el diseño de una aplicación java comprenderá la esencia del paradigma orientado a objetos retomará la esencia de la programación básica y estructurada y la tomará como base para migrar hacia el paradigma de objetos y las herramientas de su implementación contenido unidad i paradigma orientado a objetos en java 1.1 1.2 1.3 1.4 1.5 java básico referencias del lenguaje java objetos y clases herencia e interfaces polimorfismo y encapsulamiento fascÍculo ii
[close]
p. 5
logros al finalizar el estudio de este fascículo el estudiante comprenderá como implementar adecuadamente un método parametrizarlo definir su retorno y estructurar el algoritmo que da esencia a su funcionalidad establecerá la esencia de los métodos constructores y visualizará su importancia como mecanismos para la generación de nuevos tipos de datos y como una forma de dar vida a los objetos en el entorno de la máquina virtual entenderá como pasar información a un método ya sea desde datos estáticos o desde valores variables alimentados desde los mecanismos de entrada del lenguaje de programación unidad ii mÉtodos estructura encapsulamiento y administraciÓn de errores 2.1 implementación de métodos en java la declaración de método devolver un valor desde un método un nombre de método características avanzadas de la declaración de métodos 2.2 pasar información a un método tipos de argumentos nombres de argumentos paso por valor 2.3 el cuerpo de un método this super variables locales 2.4 controlar el acceso a los miembros de la clase private protected public acceso de paquete 2.5 constructores 2.6 excepciones fascÍculo iii logros al finalizar el estudio de este fascículo el estudiante aprenderá que es un arreglo y cómo es posible instanciarlo de forma dinámica mediante los recursos de instanciación del lenguaje de programación establecerá el concepto de indizador recorrido navegabilidad por el arreglo y aprenderá como implementar métodos en el lenguaje que le permitan separar y dividir convenientemente las operaciones sobre este tipo de estructura de datos establecerá las funcionalidades básicas de los arreglos y aprenderá a utilizarlos como recurso para almacenar colecciones de datos de tipos primitivos y de tipos complejos.
[close]
p. 6
construirá algoritmos de búsqueda y ordenamiento y los empleará para obtener datos de forma coherente y para facilitar tareas de organización de registros en tiempo de ejecución unidad iii estructuras lineales de datos 3.1 3.2 3.3 3.4 3.5 3.6 3.7 arreglos unidimensionales arreglos bidimensionales arreglos multidimensionales resolución de problemas con arreglos clases para la implementación de arreglos métodos de búsqueda en arreglos métodos de ordenamiento de arreglos fascÍculo iv logros al finalizar el estudio de este fascículo el estudiante aprenderá a establecer las diferencias clave entre los arreglos y las pilas y la forma cómo es posible manipular datos entre ambas estructuras de datos comprenderá el concepto de pila y cola como recurso de almacenamiento de datos y de recuperación mediante secuencias de tipo lifo y fifo desarrollará interfaces que permitan implementar métodos de estructuración de operaciones sobre pilas y colas y los empleará para desarrollar objetos de almacenamiento de registros basados en estas estructuras construirá problemas de recursividad y manejo de pilas y colas como mecanismo para implementar aplicaciones informáticas que puedan manejar datos mediante recursos dinámicos de entrada y salida unidad iv estructuras lineales de apilamiento y encolamiento 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 definición de una pila operaciones de una pila clases para la implementación de pilas definición de una cola colas simples colas circulares y dobles operaciones clases para la implementación de colas
[close]
p. 7
fascÍculo v logros al finalizar el estudio de este fascículo el estudiante aprenderá que es una lista enlazada de datos y como mediante el recurso de nodos se vinculan los diferentes elementos que la conforman comprenderá cuál es la diferencia entre una lista enlazada simple y una lista doblemente enlazada y utilizará ambas estructuras para desarrollar aplicaciones que puedan emplear este concepto tales como agendas telefónicas listados de registros interrelacionados y cualquier programa capaz de manipular información hacia adelante y hacia atrás establecerá el concepto de multilista como estructura dinámica de implementación de colección de colecciones de datos y lo usará para implementar aplicaciones que manipulen muchos registros de forma estructurada empleará la lista enlazada como recurso dinámico para la construcción de aplicaciones que pueden manipular colecciones de objetos y el concepto de acceso por medio de métodos a los recursos contenidos en dichas colecciones unidad v listas enlazadas de datos 5.1 5.2 5.3 5.4 5.5 listas simples listas dobles listas circulares multilistas clases para la implementación de listas fascÍculo vi logros al finalizar el estudio de este fascículo el estudiante establecerá la diferencia entre una estructura lineal y una estructura no lineal de datos identificando los principales métodos que implementan ambos tipos de mecanismos de almacenamiento de información será capaz de comprender la importancia del árbol binario y n-ario como recurso para el almacenamiento recursivo de datos y como una forma de optimizar la distribución de información mediante una estructura de recorrido escalar y basado en subdivisiones o particiones sabrá identificar las diferencias en los recorridos a través de los árboles mediante los procedimientos de navegación inorden preorden y postorden y sabrá utilizar dichos recursos como forma de resolver problemas de análisis sintáctico de expresiones.
[close]
p. 8
unidad no vi estructuras no lineales de datos Árboles 6.1 6.2 6.3 6.4 6.5 6.6 6.7 Árboles generales Árboles binarios recorridos de un Árbol binario clases para la implementación de Árboles recorrido en preorden recorrido en inorden recorrido en postorden fascÍculo vii logros al finalizar el estudio de este fascículo el estudiante aprenderá la diferencia entre la estructura de datos lineal o no lineal y el archivo como recursos para el almacenamiento de datos de forma no persistente y persistente respectivamente desarrollará métodos en el lenguaje de programación para realizar las principales operaciones de lectura manipulación escritura y recorrido sobre archivos de datos identificará los principales recursos y objetos provistos por el lenguaje de programación para la implementación de aplicaciones que hacen uso de los sistemas de lectura y parametrización de archivos identificará el concepto de grafo y utilizará las estructuras de datos arbóreas para la creación de aplicaciones que mediante algoritmos de recorrido de grafos permitan resolver problemas de lógica de negocio y optimización de recursos unidad vii acceso a archivos y resoluciÓn de problemas con estructuras de grafos 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 definición del concepto de archivo operaciones sobre archivos de datos planos y binarios creación de flujos de entrada y salida implementación de aplicaciones que hacen uso del manejo de archivos definición de grafos tipos de grafos representación de los grafos en memoria clases para la implementación de grafos fascÍculo viii logros al finalizar el estudio de este fascículo el estudiante:
[close]
p. 9
identificará las principales características de las api propias de sun para el desarrollo y uso de estructuras de datos que permiten almacenar datos de todo tipo comprenderá las principales características y el uso de los métodos en objetos de tipo lista proporcionados por java para la manipulación de datos ya sean estos de tipo primitivo o de tipo abstracto objetos aprenderá a implementar métodos que hagan uso de estas estructuras a navegarlas y a usar otros objetos que interactúen con este tipo de estructuras nativas del lenguaje de programación implementadas como interfaces de la plataforma de sun verificará los conceptos de moldeo de datos y utilizará la generalización como un recurso para garantizar el casteo o moldeo automático de objetos y con ello el acceso adecuado y el control de excepciones de conversión de datos en tiempo de ejecución unidad viii estructuras de datos implementadas por java 8.1 8.2 8.3 8.4 8.5 8.6 introducción a las api collections la interfaz collection la interfaz list la interfaz set la interfaz map el futuro de api collections generics accion tutorial es la organización de un tiempo y un espacio para crear ambientes de aprendizaje donde el tutor y el estudiante realicen actividades pedagógicas y didácticas de fortalecimiento de valores y actitudes de estudio colaborativo y de evaluación permanente para integrar los contenidos buscando la formación con sentido y significado para los estudiantes la acción tutorial puede ser presencial sincrónica o virtual asincrónica la acción tutorial comprende cuatro momentos fundamentales estudio personal anticipado del material educativo consistirá en la lectura detallada de las guías de estudio la interiorización de las explicaciones de conceptos mostrados a través de ejemplos y la recolección de inquietudes que los estudiantes deberán realizar a través de
[close]
p. 10
un formato de preguntas que deberá ser expuesto en los foros de una plataforma virtual designada para tal fin de interacción entre el docente y los estudiantes encuentros tutoriales presencial y virtual estos serán programados por el programa académico y se ejecutarán a través de diferentes espacios tales como salidas programadas a las sedes de la institución ubicadas en las zonas donde actualmente los estudiantes realicen su proceso de formación a distancia en el ámbito virtual una plataforma lms será habilitada para tal fin y en fechas específicas igualmente programadas por el programa académico se realizarán chats interactivos donde los estudiantes se encontrarán con el docente para realizar debates sobre los temas parcelados de cada fascículo del programa de formación a distancia socialización del conocimiento adquirido a través del autoestudio los estudiantes deberán ejecutar como parte de su programa de formación mediante instructivo dado en las guías de estudio y aprendizaje una cartelera virtual presentación de diapositivas donde expongan los temas vistos en las guías de formación y adjunten a dicha presentación una aplicación java ejecutable comprimida en un archivo .zip o .rar que contendrá las especificaciones de documentación codificación comentarios internos y paquetes necesarios para el despliegue de dicha aplicación como complemento tangencial del tema expuesto en las carteleras virtuales figura no 1 ejemplo de proyecto java y de su implementación los estudiantes deberán realizar en las carteleras virtuales la explicación de los conceptos y construir bajo eclipse una aplicación java que implemente el concepto y los temas tratados.
[close]
p. 11
evaluación permanente de los avances del autoaprendizaje esta se ejecutará a través de los quices en la plataforma interactiva los talleres entregados por los estudiantes en las fechas propuestas y la retroalimentación constante que el docente realice de los trabajos a través de informes escritos tal como el que se observa en la figura no 3 y con un constante seguimiento a través de la plataforma virtual figura no 2 provista por la institución para tal fin figura no 2 plataforma virtual para la interacción entre docentes y estudiantes figura no 3 ejemplo de los informes de retroalimentación de trabajos talleres y laboratorios para el proceso de evaluación de aprendizaje criterios de evaluaciÓn
[close]
p. 12
evaluaciones parciales trabajos escritos proyecto de investigación evaluaciones orales sustentaciones orales y escritas entre otros auto evaluaciÓn evaluaciones para el seguimiento al autoaprendizaje 60 10 evaluaciÓn final 30 mediadores pedagÓgicos y apoyos didÁcticos los escenarios múltiples son una estrategia pedagógica en la que el estudiante crea diversos espacios de aprendizaje autónomo haciendo uso de mediadores educativos acorde con su disponibilidad de tiempo espacio o recursos económicos o necesidades familiares personales o laborales un mediador educativo es la vía y los medios que facilitan la interacción entre el conocimiento y práctica y el sujeto que aprende para la comprensión estos son el tutor el material educativo escrito el aula virtual la biblioteca la agenda de autoaprendizaje y apoyos didácticos los recursos didácticos son esenciales en el proyecto de educación a través de escenarios múltiples se trata entonces de utilizar para el aprendizaje del estudiante modernas tecnologías de telecomunicación y de redes electrónicas que posibilitan el acceso a la información y al conocimiento científico de cada disciplina el aula virtual es un complemento para facilitar el avance para alcanzar los logros de la asignatura bibliografÍa recomendada · becerra santamaria cesar estructuras de datos en java 2000 editorial kimpress ltda · robert l kruse estructuras de datos y programas editorial prentice hall méxico isbn 968-8800-73-2 · cairo estructuras de datos ed mcgraw-hill 1992 · ullman hopcroft aho estructuras de datos y algoritmos adison-wesley 1988 413 páginas isbn 968-6048-19-7 · wirth niklauss algoritmos más estructuras igual programas · allen weiss mark estructuras de datos con java editorial pearson education 776 páginas isbn 847-8290-35-4 · langsam yedidyah augestein moseh j tenenbaum aaron m estructuras de datos con c y c editorial prentice hall 1997
[close]