000067662 001__ 67662 000067662 005__ 20180223095003.0 000067662 037__ $$aGDOC-2016-30213 000067662 041__ $$aspa 000067662 100__ $$0(orcid)0000-0003-4810-0062$$1129454$$aCampos Laclaustra, Francisco Javier 000067662 24500 $$930213$$aEstructuras de datos y algoritmos 000067662 260__ $$aZaragoza$$bUniversidad de Zaragoza$$c2016-2017 000067662 520__ $$aBreve presentación de la asignatura A la hora de enfrentarse a la resolución de problemas de programación de tamaño medio surge la necesidad de dividir el diseño e implementación de la solución en una serie de módulos o partes, de tamaño y complejidad menor que el problema inicial, pero de forma que dichos módulos interactúen entre si de forma mínima y clara, y constituyan en su conjunto la solución del problema a resolver. Esta aproximación nos permitirá identificar y diseñar módulos con una misión muy clara y acotada, lo que reducirá su grado de dependencia con el resto, y nos permitirá desarrollar módulos reutilizables, eficientes, y robustos, facilitando también que el trabajo de implementación y depuración pueda ser repartido entre varios programadores que trabajen en paralelo. Gran parte de estos módulos se centrarán en la representación y gestión de la información necesaria para resolver el problema. De esta forma, cada uno de estos módulos encapsulará las estructuras de datos necesarias para representar y almacenar cierta información, ocultando los detalles de su implementación y ofreciendo al exterior únicamente operaciones permitidas (su interfaz), robustas y eficientes, lo que facilitará su reutilización. En este contexto, se puede definir un Tipo Abstracto de Datos (TAD) como el conjunto de valores que pueden tomar los datos de ese tipo y el conjunto de operaciones para manipularlos, definidos de forma independiente de cualquier representación o implementación. La definición de TADs es por tanto una herramienta de abstracción que intuitivamente responde a la necesidad de enriquecer nuestros lenguajes de programación permitiéndonos proponer nuevos tipos de datos que puedan utilizarse de forma similar a los que suelen ofrecerse predefinidos en un lenguaje de programación, ocultando al usuario de dichos tipos los detalles de su implementación, pero serán de naturaleza mucho más compleja que los tipos habitualmente predefinidos en un lenguaje de programación. Web de la asignatura (EINA): http://webdiis.unizar.es/asignaturas/EDA/$$b 000067662 521__ $$9148$$aIngeniería Informática 000067662 540__ $$aby-nc-sa$$bCreative Commons$$c3.0$$uhttp://creativecommons.org/licenses/by-nc-sa/3.0/ 000067662 700__ $$0(orcid)0000-0001-8531-353X$$1141731$$aBernad Lusilla, Jorge Raul 000067662 700__ $$0(orcid)0000-0001-5664-6589$$1389889$$aNaranjo Palomino, Fernando 000067662 700__ $$0(orcid)0000-0001-6644-0103$$1495188$$aVillate Pérez, María Yolanda 000067662 830__ $$9443 000067662 830__ $$9439 000067662 8564_ $$s17575$$uhttps://zaguan.unizar.es/record/67662/files/guia-30213-es.pdf$$yGuía (idioma español) 000067662 8564_ $$s8770$$uhttps://zaguan.unizar.es/record/67662/files/guia-30213-en.pdf$$yGuide (english) 000067662 970__ $$aGDOC-2016-30213 000067662 980__ $$aGDOC$$bIngeniería y arquitectura$$c110 000067662 980__ $$aGDOC$$bIngeniería y arquitectura$$c326