Universidad Centroccidental "Lisandro Alvarado" Decanato de Ciencias y Tecnología Departamento de

Documentos relacionados
Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

UNIVERSIDAD CATÓLICA DEL NORTE PROGRAMA DE ESTUDIOS IDENTIFICACIÓN DE LA ASIGNATURA. Nombre: Estructuras de Datos y Archivos

Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

1.- IDENTIFICACION: PYPE-01

UNIVERSIDAD TECNOLÓGICA DEL CHOCÓ Diego Luís Córdoba FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERÍA EN TELECOMUNICACIONES E INFORMÁTICA

Gloria Guadalupe González Flores, José Hernández Torruco Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

DATOS DE IDENTIFICACIÓN DEL CURSO Ciencias Computacionales Estructuras y algoritmos

PROGRAMA INSTRUCCIONAL

ÍNDICE TEMÁTICO. Teóricas Prácticas 1 Estructuras fundamentales Introducción a la programación en Java

Nombre de la asignatura : Estructura de Datos I. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9321

ESTRUCTURAS DE DATOS

Estructura de datos. Carrera: SCC Participantes

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015

AREA A LA QUE PERTENECE: POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: 1er. Semestre 2015 AUXILIAR:

Conceptos de Algoritmos, Datos y Programas

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación

GUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA

Nombre del Documento: Formato de Planeación e Instrumentación Didáctica

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

Estructuras de Datos y Algoritmos. Programa de la asignatura

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

INDICE 1.1. Información y Significado 1.2. Arreglos en C 1.3. Estructura en C 1.4. Clases en C++ 2. La Pila 2.1. Definición y Ejemplos

ASIGNATURA: ESTRUCTURA DE DATOS II

FORMATO DE CONTENIDO DE CURSO PLANEACIÓN DEL CONTENIDO DE CURSO. : Informática para Ingenieros I CÓDIGO :

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA

Estructura de Datos Árboles Árboles 2-3

: Algorítmica y Estructura de Datos I

UNIVERSIDAD DEL AZUAY

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL

UNIVERSIDAD DE GUADALAJARA

Experiencia en gestión de proyectos, bases de datos, licenciatura en informática o afines

PROGRAMA DEL CURSO AREA A LA QUE PERTENECE: POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: 2do Semestre 2017 AUXILIAR:

Guía Docente Modalidad Presencial. Estructuras de Datos. Curso 2017/18. Grado en Ingeniería de. Sistemas de Información

Planificaciones Algoritmos y Programación II. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5

ESTRUCTURACION DEL PROGRAMA DE ASIGNATURA 1. INFORMACION GENERAL

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Profesor: José Miguel Rubio L.

PROGRAMA INSTRUCCIONAL COMPUTACIÓN PARA INGENIEROS

Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 6

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

ESTRUCTURAS DE DATOS II

EI MT1008 Programación II

DISEÑO CURRICULAR ALGORÍTMOS, ESTRUCTURAS Y PROGRAMACIÓN II

Universidad de San Carlos de Guatemala Facultad de Ingeniería Escuela de Ciencias y Sistemas PROGRAMA DEL CURSO. I. Información General

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Carrera: MTE Participantes Representante de las academias de ingeniería Mecatrónica de los Institutos Tecnológicos.

Planificaciones Teoría de Algoritmos I. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5

Nº DISPOSICIÓN:... DEPARTAMENTO DE: Ciencias Básicas CARRERA/S: Licenciatura en Sistemas de Información

Asignaturas: Estructura de Datos y Algoritmos/Algoritmos I Códigos: 3325/3301. Algebra (Algoritmos I)

INGENIERÍA EN COMPUTACIÓN. INGENIERÍA EN COMPUTACIÓN División Departamento Licenciatura

PROGRAMACION ESTRUCTURADA

Programación. Orienta a Objetos con C++

ALGORITMOS Y ESTRUCTURAS DE DATOS

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Secretaría de Docencia Dirección de Estudios Profesionales

SÍLABO DE METODOLOGÍAS DE PROGRAMACIÓN

UNIVERSIDAD NACIONAL DE FEDERICO VILLARREAL FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS SÍLABO

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

Algoritmos y Programación III

POSTGRADO INGENIERO EN INFORMÁTICA Total UC= II

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

UNIVERSIDAD DE LOS LLANOS Facultad de Ciencias Básicas e Ingeniería Programa Ingeniería de Sistemas ALGORITMIA AVANZADA

DEPARTAMENTO DE: Ciencias Básicas CARRERA/S: Licenciatura en Sistemas de Información (RES.HCS. Nº676/11)

Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 8

INSTITUTO POLITÉCNICO NACIONAL

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

NOMBRE DEL CURSO: Introducción a la Programación y computación 1

Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

1.- Datos de la Asignatura

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

Estructuras de datos: Árboles binarios de

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN LICENCIATURA DE INGENIERÍA INDUSTRIAL

GUÍA DOCENTE DE PROGRAMACIÓN II

Introducción a la Computación. Primer Cuatrimestre de 2017

UNIVERSIDAD TECNICA NACIONAL Sede de Guanacaste

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

Tema: Tipos Abstractos de Datos (TAD s) en C#.

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

División Académica de Informática y Sistemas

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Programación Carácter: Obligatoria

ANEXO XVII DE LA RESOLUCION N

GUÍA DOCENTE Estructuras de Datos

Programa Regular. Asignatura: Lenguajes Formales y Autómatas. Carrera: Ingeniería en Informática. Ciclo Lectivo: Segundo Cuatrimestre 2017

EDA. Tema 8 Colas de Prioridad: Heaps

Fundamentos de Programación. b. Nro. Créditos. Fundamentos de Programación f. Del nivel g. Asignaturas pre-requisitos h.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS

Programación Estructurada

Transcripción:

Universidad Centroccidental "Lisandro Alvarado" Decanato de Ciencias y Tecnología Departamento de PROGRAMA INSTRUCCIONAL PROGRAMA: INGENIERÍA EN INFORMATICA DEPARTAMENTO: SISTEMAS ASIGNATURA: PROGRAMACIÓN NO NUMÉRICA I AREA COORDINACIÓN: PROGRAMACIÓN NO NUMÉRICA AREA CURRICULAR: PROGRAMACIÓN EJE CURRICULAR: PROFESIONALES CODIGO: 7143 SEMESTRE: VII CARÁCTER: OBLIGATORIA HORAS TEORICAS: 2 HORAS PRACTICAS: 2 PRE-REQUISITOS: 5154, 5343 CREDITOS: 3 PROFESORES: GRACIANO RAMOS COORDINADOR: LUIS RAFAEL GARCIA GARCIA AUXILIAR DOCENTE: FECHA DE ELABORACION: 04/2.001 FECHA ULTIMA REVISION: 04-2.016 LAPSO ACADEMICO: 2.016-1

FUNDAMENTACIÓN Esta asignatura está ubicada dentro del área curricular programación y dentro del eje curricular profesional, formando parte de las asignaturas de formación profesional para los estudiantes del programa de Ingeniería en Informática. Además, el conocimiento adquirido en ésta asignatura es relevante para la comprensión y estudio de los sistemas operativos, las base de datos y el análisis de algoritmos. La asignatura Programación No Numérica I consiste en el diseño, implementación y de las estructuras de datos avanzadas, partiendo de los conocimientos adquiridos por el estudiante en la utilización de las estructuras de datos básicas. El empleo eficiente de estas estructuras de datos fortalece así, el diseño de software para sistemas de información y aplicaciones de mediana y alta complejidad. Al finalizar la asignatura el estudiante debe estar en capacidad de seleccionar, implementar y utilizar las estructuras de datos más eficientes, para el desarrollo de soluciones automatizadas a problemas de específicos. Página 2 de 14

OBJETIVO GENERAL Aplicar eficientemente diversas estructuras de datos no primitivas definidas como Tipos Abstractos de Datos (TAD), mediante variadas implementaciones en programación orientada a objetos (POO), para la resolución automatizada de problemas de mediana y alta complejidad, utilizando técnicas de programación iterativa y recursiva. Página 3 de 14

UNIDAD I: INTRODUCCION Duración: 3 clases Ponderación: 10% Manejar los conceptos generales de: a) Estructuras de Datos y sus operaciones en los diferentes niveles de visualización, b) Abstracción de datos, c) Programación orientada a objeto y sus propiedades. 1. Manejar los conceptos básicos relacionados con las estructuras de datos. 2. Clasificar las estructuras de datos según criterios. 3. Definir las operaciones básicas de las ED. 4. Definir la abstracción da datos y aplicar el concepto a diversos ejemplos. 5. Manejar los niveles de visualización de una ED y aplicarlos a ED conocidas. 6. Manejar las ED como TAD. 7. Manejar los conceptos básicos de la programación orientada a objetos. 8. Enfatizar el aporte de la POO en el logro de la abstracción de datos. 9. Implementar diversas ED conocidas como TAD en programación estructurada y en POO. 1. Conceptos Básicos a. Datos y su representación interna b. Información c. Estructuras de datos Definición y Características Clasificación: Según su implementación: primitivas y no primitivas Según su representación en memoria: secuencial y enlazada Según su comportamiento / almacenamiento: estáticas y dinámicas Operaciones Básicas: creación / destrucción, almacenamiento / extracción. d. Abstracción de Datos y Tipos Abstractos de Datos (TAD) 2. Niveles de Visualización de una ED a. Abstracción o lógico b. Aplicación o del usuario c. Implementación o físico d. Ejercicios 3. Programación Orientada a Objeto (POO) Conceptos generales: objeto, mensaje, clase, método/funciones miembros, atributos/datos miembros ocultamiento de información. Propiedades: encapsulamiento, polimorfismo, herencia. Ejemplos. 4. ED básicas implementadas con programación estructurada y en POO. ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 4 de 14

UNIDAD II: MEMORIA DINAMICA Duración: 2 clases Ponderación: 7% Manejar las estructuras dinámicas a través del uso de los apuntadores. 1. Definir el tipo de dato apuntador y su función en el manejo de las estructuras de datos dinámicas 2. Manejar las operaciones de asignación y liberación de memoria dinámica 3. Manejar las operaciones básicas sobre apuntadores. 4. Distinguir las diferencias entre la memoria dinámica y la memoria estática. 1. Estructuras dinámicas vs. Estructuras estáticas 2. Apuntadores a. Concepto b. Definición de tipo apuntador para tipos de datos simples y compuestos c. Declaración de variables apuntador d. Operaciones: inicialización, asignación, comparación e. Uso de la constante NULL 3. Variables dinámicas a. Creación (procedimiento NEW) b. Destrucción (procedimiento DELETE) c. Acceso 4. Administración de memoria en C++ a. El montículo o heap de variables dinámicas b. Determinar memoria dinámica agotada. 5. Ventajas de memoria dinámica sobre memoria estática 6. Ejercicios ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 5 de 14

UNIDAD III: LISTAS ENLAZADAS Duración: 8 clases Ponderación: 28 % Desarrollar aplicaciones utilizando e implementando el TAD de Lista enlazada 1. Definir Listas Enlazadas 2. Determinar cuándo es ventajoso el uso de listas enlazadas en lugar de arreglos. 3. Implementar Listas lineales enlazadas como TAD en programación orientada a objetos (POO) con representación dinámica. 4. Implementar Listas enlazadas circulares como TAD en POO con representación dinámica. 5. Implementar Listas doblemente enlazadas como TAD en POO con representación dinámica. 6. Utilizar listas enlazadas simples y complejas en diversas aplicaciones. 7. Implementar Pilas y Colas utilizando listas como representación enlazada. 8. Desarrollar aplicaciones utilizando de manera adecuada los tipos de listas enlazadas. 1. Concepto de Listas Enlazadas 2. Listas Enlazadas vs. Arreglos (listas secuenciales) 3. Concepto y estructura de nodos 4. Listas Lineales Simplemente Enlazadas: Abstracción: Concepto. Operaciones básicas: Inicializar, Vacío, Lleno, Insertar al Comienzo de la lista, Insertar Después de un Nodo, Eliminar al Comienzo de la lista, Eliminar después de un nodo, Obtener próximo nodo, Obtener información en nodo, liberar. Implementación como TAD: En POO con representación dinámica. Ejercicios de : pilas, colas, listas complejas, simulación Otras operaciones: Cargar, Unión, Intersección, Insertar Ordenado y Concatenación, Combinar, Copiar, Invertir, Ordenar. 5. Nodo cabeza: concepto, características, implementación de las operaciones de listas con nodo cabeza. 6. Listas Circulares Simplemente Enlazadas Abstracción: Concepto. Operaciones básicas: Inicializar, Vacío, Lleno, Insertar Después de un Nodo, Eliminar después de un nodo, Obtener próximo nodo, Obtener información en nodo, liberar. Implementación como TAD: En POO representación dinámica. Ejercicios de : pilas, colas, listas complejas, simulación Otras operaciones: Cargar, Unión, Intersección, Insertar Ordenado y Concatenación, Combinar, Copiar, Invertir, Ordenar. 7. Listas Doblemente Enlazadas Lineales Abstracción: Concepto Operaciones básicas Inicializar, Vacío, Lleno, Insertar a la izquierda de un nodo, Insertar a la derecha de un Nodo, Eliminar nodo, Obtener nodo próximo/anterior, obtener información en nodo, liberar. Implementación como TAD: En POO representación dinámica 8. Listas Doblemente Enlazadas Circulares Abstracción: Concepto. Operaciones básicas Inicializar, Vacío, Lleno, Insertar a la izquierda de un nodo, Insertar a la derecha de un Nodo, Eliminar nodo, Obtener nodo próximo/anterior, obtener información en nodo, liberar. Implementación como TAD: En POO representación dinámica. Página 6 de 14 ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y

UNIDAD IV: ESTRUCTURA DE DATOS: PILA ( LIFO ) Duración: 3 clases Ponderación: 10% Desarrollar aplicaciones utilizando e implementando el TAD de PILA. 1. Definir la Pila como TAD 2. Implementar la Pila ( LIFO ) como TAD en representación enlazada y con programación orientada a objetos (POO). 3. Modificar la Pila como TAD. 4. Utilizar las implementaciones del TAD de pila en diversos problemas de. 5. Adquirir destrezas en los procesos de conversión de expresiones aritméticas utilizando el TAD pila. 6. Mostrar diferencias entre el nivel de implementación y a nivel de POO. 1. Abstracción de Pilas como TAD Concepto Diferencia con arreglos Operaciones básicas: Inicializar, vacío, lleno, meter y sacar Ejercicios/ejemplos de que muestre la necesidad o conveniencia del uso de pilas LIFO 2. Implementación en POO para elementos de cualquier tipo a. Representación Enlazada. b. Implementación en C++ con POO. c. Implementación de Pila usando la clase Lista. 3. Aplicaciones de pilas a. Procesos de conversión entre expresiones aritméticas: procedimiento para convertir de infijo a posfijo b. Evaluación de una expresión matemática en posfijo. c. Ejercicios varios ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 7 de 14

UNIDAD V: ESTRUCTURA DE DATOS: COLA ( FIFO ) Duración: 3 clases Ponderación: 10 % Identificar e implementar los TAD de Cola FIFO para el desarrollo de aplicaciones y simulaciones. 1. Definir la Cola FIFO como TAD 2. Implementar diversas versiones de Cola ( FIFO ) como TAD en representación enlazada y con programación orientada a objetos (POO) 3. Resolver diversos problemas utilizando Colas FIFO 1. Abstracción de Colas FIFO como TAD a. Concepto b. Operaciones básicas: Inicializar, vacio, lleno, insertar y remover c. Ejercicios/ejemplos de que muestre la necesidad o conveniencia del uso de colas FIFO 2. Implementación en POO para elementos de cualquier tipo a. Representación Enlazada. b. Implementación en C++ con POO. c. Implementación de Cola usando la clase Lista. 3. Aplicaciones de colas FIFO a. Simulación por reloj b. Ejercicios Varios ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 8 de 14

UNIDAD VI: RECURSION Duración: 3 clases Ponderación: 10 % Desarrollar y hacerle seguimiento a rutinas recursivas correctas. 1. Manejar los conceptos asociados con recursión 2. Desarrollar rutinas recursivas como solución a problemas sencillos. 3. Identificar las estructuras de datos internas utilizadas durante la ejecución de una rutina recursiva. 4. Hacer el seguimiento a rutinas recursivas: en forma gráfica y utilizando una pila. 5. Distinguir los problemas a los cuales puede o debe aplicarse la recursión para solucionarlos. 6. Determinar las ventajas y desventajas de rutinas recursivas sobre las no recursivas. 7. Determinar cuándo es conveniente la recursión en la solución de problemas 1. Concepto de recursión 2. Propiedades de la recursión. 3. Proceso de verificación de definiciones matemáticas recursivas: caso base, llamada más pequeña, caso general - Ejemplos típicos 4. Rutinas recursivas: procedimientos o funciones. a. Verificación según propiedades b. Cómo funciona: Etapas progresiva y regresiva en la ejecución c. La pila como estructura de datos de soporte a la recursión e información asociada. d. Seguimiento: en forma gráfica y utilizando pilas. e. Ventajas y desventajas de las rutinas recursivas. Comparación con rutinas iterativas. Eficiencia 5. Identificación de problemas a los cuales es más conveniente aplicar soluciones recursivas - Ejercicios ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 9 de 14

UNIDAD VII: ESTRUCTURAS DE DATOS NO LINEALES: ARBOLES Duración: 4 clases Ponderación: 15 % Identificar e implementar los TAD de Arbol binario y árbol binario de búsqueda y utilizarlos en aplicaciones. 1. Definir la terminología básica de árboles. 2. Implementar los árboles binarios en representación secuencial. 3. Implementar los árboles binarios en representación enlazada. 4. Adquirir destreza en los distintos algoritmos de recorrido de árboles binarios. 5. Construir Arboles Binarios a partir de No Binarios. 6. Construir Arboles Binario de Expresiones Aritméticas a partir de un posfijo. 7. Evaluar Arboles Binarios de Expresiones Aritméticas 8. Definir Arbol Binario de Búsqueda. 9. Insertar y eliminar elementos de un Arbol Binario de Búsqueda. 10. Implementar las operaciones básicas de del Arbol binario de Búsqueda: buscar, insertar y eliminar. 11. Desarrollar aplicaciones sencillas utilizando árboles binarios. 1. Concepto de Arbol. 2. Características de Arboles 3. Terminología: Nodo raíz Grado de un nodo Grado de un árbol Nivel o profundidad de un nodo Altura o nivel de un árbol. Relaciones entre nodos: padre, ancestros, descendientes, hijos, hermanos. Nodos terminales (hojas del árbol) 4. Arbol Binario a. Abstracción: Concepto Operaciones: Inicializar, Vacío, lleno, Crear Nodo, Combinar, Asignar Hijo Izquierdo, Asignar Hijo Derecho, Eliminar Hoja. Arbol binario completo de nivel N Construcción de un árbol binario a partir de uno no binario b. Implementación: Representación secuencial (con arreglos) y enlazada. Implementación en POO. c. Recorrido: preorder, inorder, postorder d. Aplicaciones: Arboles Binarios de Expresiones Aritméticas: concepto, procedimiento para crearlo a partir de un posfijo, procedimiento para evaluarlo. 5. Arboles Binarios de Búsqueda: Concepto Operaciones: Buscar, Insertar, Eliminar según criterios ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 10 de 14

UNIDAD VIII: COLAS DE PRIORIDAD Y HEAP BINARIO Duración: 3 clases Ponderación: 10 % Identificar e implementar los TAD de Cola de Prioridad y Heap y utilizarlos en aplicaciones. 1. Definir la Cola de Prioridad como TAD 2. Desarrollar diversas implementaciones en POO de la Cola de Prioridad: en representación secuencial y enlazada. 3. Definir el TAD Heap Binario. 4. Implementar el Heap binario en POO. 5. Implementar la Cola de Prioridad como Heap Binario. 6. Resolver diversos problemas utilizando Colas de Prioridad 1. Abstracción de Colas de Prioridad como TAD d. Concepto e. Operaciones básicas: Inicializar, vacio, lleno, insertar, remover f. Ejercicios/ejemplos de que muestre la necesidad o conveniencia del uso de colas de prioridad. 2. Implementación en POO : Representación secuencial Utilizando un arreglo Utilizando un arreglo de Colas FIFO 3. Implementación en POO de Cola de Prioridad utilizando el TAD lista enlazada. 4. Abstracción del Heap Binario a. Concepto b. Operaciones básicas: Inicializar, vacio, lleno, insertar, remover, ajustar c. Ejercicios/ejemplos de que muestre la necesidad o conveniencia del uso del heap binario 5. Implementación Heap Binario en POO utilizando arreglos y árboles binarios. 6. Cola de Prioridad como Heap Binario 7. Aplicaciones de colas de Prioridad a. Simulación por eventos b. Ejercicios Varios ESTRATEGIAS DE ENSEÑANZA - APRENDIZAJE 1. Exposición por parte del profesor 3. Instrucción computarizada. 5. Ejercicios de implementación y Página 11 de 14

PLAN DE EVALUACIÓN ESTRATEGIAS DE EVALUACIÓN UNIDAD I, II, III Implementación y Aplicación de Listas Enlazadas Simples en Memoria Dinámica y en POO I, II, III ED, POO, Memoria Dinámica y Listas Enlazadas TECNICAS INSTRUMENTOS ACTIVIDADES Trabajo práctico Primera Prueba Larga Prueba Escrita y Computador Prueba Escrita Defensa del Trabajo Aplicación de Prueba TIPO DE EVALUACIÓN PONDERACIÓN CORTE 1 30% Sumativa 10 % Sumativa 25 % UNIDAD III, IV y V III, IV y V Listas Enlazadas Dobles en Memoria Dinámica, Pilas y Colas, y en POO. Implementación y Aplicación de Listas Enlazadas Dobles en Memoria Dinámica, Pila y Cola, y en POO ESTRATEGIAS DE EVALUACIÓN TECNICAS INSTRUMENTOS ACTIVIDADES Segunda Prueba Larga Trabajo práctico Prueba Escrita Prueba Escrita y Computador Aplicación de Prueba Defensa del Trabajo TIPO DE EVALUACIÓN Sumativa PONDERACIÓN CORTE 2 35% 25 % Sumativa 10 % UNIDAD VI, VII y VIII VI y VII Arboles, Colas de Prioridad, Heaps Implementación y Aplicación de Arbol ESTRATEGIAS DE EVALUACIÓN TECNICAS INSTRUMENTOS ACTIVIDADES Tercera Prueba Larga Trabajo práctico Prueba Escrita Prueba Escrita y Computador Aplicación de Prueba Defensa del Trabajo TIPO DE EVALUACIÓN Sumativa PONDERACIÓN CORTE 3 30% 20 % Sumativa 10 % Página 12 de 14

Observaciones: 1. La evaluación continua y los trabajos prácticos servirán para afianzar los conocimientos y podrán ser aplicados sobre cualquiera de los contenidos a lo largo del semestre. NO son sustituibles ni recuperable, bajo ningún motivo. 2. Por naturaleza de la asignatura Teórico-Práctico, las pruebas escritas: periódica larga y corta, deben cubrir todos los objetivos de la asignatura y los trabajos prácticos son para afianzar los conocimientos teóricos. 3. La prueba sustitutiva versará sobre toda evaluación escrita no continua realizada en el corte correspondiente (pruebas cortas y pruebas periódicas largas) Las tres pruebas periódicas largas se realizarán en las siguientes semanas: 1era. Prueba la semana 7, 2da. Prueba la semana 12 y la 3era. Prueba la semana 17. La Evaluación Práctica se realizará por medio de 3 puntos de control individuales c/u con un peso de 10%. BIBLIOGRAFIA Página 13 de 14

TEXTOS BASICOS: BUJANDA, L. (1999). Estructuras de Datos basadas en Template en C++. Barquisimeto: UCLA. TEXTOS SUPLEMENTARIOS: Aho, Hopcroft & Ullman ( 1988 ). Estructuras de Datos y Algoritmos. Addison Wesley BUJANDA, L. (1986). Métodos de Diseño y Análisis de Algoritmos. Barquisimeto: Asociencias. Brassard, G. y Bratley, P. (1997). Fundamentos de Algoritmia. USA: Prentice Hall. Cormen, Leiserson, Rivest (1991). Introduction to Algorithms. MIT Press. Garey & Johnson. (1979). Computers and Intractability. A guide to the theory of NP- Completeness. New Jersey, USA: Bell Laboratories. Horowitz & Sahni. Fundamental Algorithms. Computer Science Press. Joyanes, L. (2006). Estructura de Datos en C++. McGraw Hill. Joyanes, L. (2008). Fundamentos de Programación. Algoritmos, Estructura de Datos y Objetos. McGraw Hill. Joyanes, L. (2010). Programación en C, C++, Java y UML. McGraw Hill. Joyanes, L. & Zahonero, I. (1999a). Estructura de Datos: Algoritmos, Abstracción y Objetos. Madrid: McGraw Hill. Joyanes, L. & Zahonero, I. (1999b). Estructura de Datos: Libro de Problemas. Madrid: McGraw Hill. Lafore, R. (1998). Data Structures & Algorithms in Java. USA: The Waite Group, Inc. Tenenbaum, A. & Augenstein, M. (1993). Estructuras de Datos en Pascal. México: Prentice Hall. Página 14 de 14