Ir al contenido

Nombre del  reto:

“Desarrollar un algoritmo eficiente utilizando árboles binarios”

Campus: Huancayo

Facultad: Ingeniería

Carrera: Ingeniería de sistemas

Asignatura: Estructura de datos

NRC: 26039

Email: amestrada@continental.edu.pe


Americo Estrada Sanchez 

Diseño Metodológico

Unidad4

Unidad(es) de aplicación

Contenido

  • Recursión
  • Árboles. Operaciones fundamentales. Árboles binarios de búsquedas ABB.
  • Grafos. Representación. Recorrido y operaciones.

Un gran Resultado de aprendizaje

Al finalizar la unidad, el estudiante será capaz de desarrollar programas usando estructura de datos avanzada para la solución de problemas computacionales

Experiencia ABR

Idea general

El reto consiste en desarrollar un algoritmo eficiente utilizando árboles binarios de búsqueda para resolver un problema de búsqueda y manipulación de datos en la asignatura "Estructura de Datos" de la carrera de Ingeniería de Sistemas.

Reto

Desarrolla un algoritmo eficiente para encontrar el segundo elemento más grande en un árbol binario de búsqueda.

Preguntas guía

  • ¿Cuál es la naturaleza del problema que estamos abordando?
  • ¿Qué características y propiedades tienen los árboles binarios de búsqueda y cómo pueden ser aprovechadas en la resolución de este problema?
  • ¿Cuáles son los principales desafíos que enfrentamos al utilizar árboles binarios de búsqueda en este contexto?
  • ¿Qué estrategias de recorrido y manipulación de árboles binarios de búsqueda son más adecuadas para resolver este problema?
  • ¿Cómo podemos garantizar la eficiencia y la corrección del algoritmo diseñado?

Actividades Guía

Ideación
  • Brainstorming para generar ideas sobre cómo utilizar árboles binarios de búsqueda para resolver el problema propuesto.
  • Investigación sobre aplicaciones prácticas de árboles binarios de búsqueda en la resolución de problemas de búsqueda y manipulación de datos.
Solución
  • Diseño detallado del algoritmo utilizando árboles binarios de búsqueda, considerando los casos base y los posibles escenarios del problema.
  • Implementación del algoritmo en un entorno de desarrollo integrado (IDE) utilizando el lenguaje de programación C++.
Prototipo
  • Desarrollo de un prototipo inicial del programa que incluya las funciones principales basadas en árboles binarios de búsqueda.
  • Pruebas preliminares para verificar la funcionalidad básica del programa y detectar posibles errores o mejoras.
Validación
  • Evaluación del prototipo del programa mediante pruebas exhaustivas con conjuntos de datos de prueba variados.
  • Análisis de la eficiencia y la corrección del programa, identificando áreas de mejora y optimización.
Prototipo final
  • Refinamiento final del programa basado en los resultados de las pruebas de validación.
  • Preparación de la versión final del programa para su entrega, incluyendo la documentación adecuada y las instrucciones de uso.

Producto Final

Producto final

Informe de un programa implementado en C++ que utilice árboles binarios de búsqueda para resolver el problema específico planteado. Este programa debería ser capaz de encontrar el segundo elemento más grande en un árbol binario de búsqueda dado.

El programa debe incluir:

  • Un algoritmo eficiente y correctamente implementado que utilice árboles binarios de búsqueda para encontrar el segundo elemento más grande en el árbol.
  • Un código limpio y bien documentado que siga las mejores prácticas de programación en C++.
  • Un proceso de entrada de datos que permita al usuario ingresar los elementos del árbol binario de búsqueda.
  • Salida clara que muestre el segundo elemento más grande encontrado en el árbol.

Línea de tiempo

Semana 13
Ideación del reto 
Semana 13
 Solución del reto
Semana 14
 Prototipo del reto
Semana 15
 Implementación del reto
Semana 14
Validación del reto 

Sistematización de la experiencia


¿Qué etapa o momento del proceso ABR con nano retos te pareció más desafiante y gratificante de realizar con los estudiantes?

El momento más desafiante y gratificante del proceso de implementación de un ABR fue el diseño detallado del algoritmo para encontrar el segundo elemento más grande en el árbol binario de búsqueda (ABB). Este paso involucra una comprensión profunda de la estructura del árbol, sus propiedades y cómo navegar por él eficientemente para identificar el segundo valor más grande. A menudo, los estudiantes se sienten cómodos con la inserción de elementos y la navegación básica, pero la idea de encontrar el segundo elemento más grande requiere una comprensión sólida de las relaciones entre nodos y los diferentes caminos posibles. Este proceso, aunque desafiante, es altamente educativo porque fomenta la capacidad de análisis y el pensamiento algorítmico. Además, es gratificante ver cómo los estudiantes logran implementar un algoritmo eficiente y comprenden la importancia de optimizar las búsquedas dentro del árbol, lo que refuerza su habilidad para aplicar teorías en problemas prácticos.Haga clic o pulse aquí para escribir texto.

¿Las propuestas de solución del Nano reto cumplió con tu expectativa? ¿Por qué?

Sí, el resultado cumplió con las expectativas. El propósito de esta experiencia era no solo enseñar a los estudiantes sobre árboles binarios de búsqueda, sino también permitirles resolver un problema práctico utilizando esa estructura de datos. Al final, la mayoría de los estudiantes fueron capaces de implementar correctamente el algoritmo y encontrar el segundo elemento más grande en un árbol binario de búsqueda, lo que refleja su comprensión de la estructura y de cómo optimizar algoritmos de búsqueda. El uso de entradas de datos y la producción de salidas claras también fue un éxito, ya que los estudiantes demostraron habilidades en la interfaz con el usuario y en la implementación de una solución funcional. A pesar de algunos pequeños problemas al inicio, como errores de lógica o detalles en el manejo de casos extremos, el resultado final estuvo dentro de lo esperado en cuanto a desempeño y funcionalidad.Haga clic o pulse aquí para escribir texto.

¿Qué mejorarías de esta experiencia?

Una mejora importante que podría implementarse es proporcionar ejemplos más guiados durante las primeras etapas de la implementación. Algunos estudiantes tuvieron dificultades al principio al tratar de comprender cómo navegar eficazmente en el árbol para encontrar el segundo valor más grande. Incluir más ejemplos prácticos paso a paso podría haber ayudado a aclarar los conceptos clave. Además, aunque se cubrió el algoritmo y su eficiencia, podría ser útil dedicar más tiempo a discutir estrategias para manejar árboles desequilibrados, ya que los estudiantes generalmente tienden a suponer que todos los árboles serán perfectos. Finalmente, proporcionar más recursos sobre la optimización y análisis de la complejidad temporal de los algoritmos podría ayudar a los estudiantes a tener una comprensión más profunda del rendimiento de su solución, especialmente cuando se manejan árboles grandes o desequilibrados.Haga clic o pulse aquí para escribir texto.


Trabajos destacados

Explica brevemente la solución presentada y coloca el enlace del trabajo presentado por los integrantes del equipo.

Explica brevemente la solución presentada y coloca el enlace del trabajo presentado por los integrantes del equipo.