Ir al contenido

APRENDIZAJE BASADO EN RETOS

RETO: 

Desarrollar un algoritmo eficiente utilizando árboles binarios

Ingeniería de sistemas

Carrera

Estructura de datos

Asignatura

Ingeniería

Facultad

ODS

9. Industria innovación e infraestrutura

Docentes

Gonzales Condori, Harry Yeison

NRC: 31207, 31208, 31209

Del Carpio Rojas, Carlos Enrique

NRC:  28491

Medina Flores, Jimmy Roberto

NRC: 32829

Osorio Contreras, Rosario Delia

NRC: 29901, 29902, 29903, 29904


Diseño metodológico

Unidad(es) de aplicación

  Unidad 4

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

Contenido
  • Recursión
  • Árboles. Operaciones fundamentales. Árboles binarios de búsquedas ABB.
  • Grafos. Representación. Recorrido y operaciones.
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.
Pregunta esencial 
¿Cómo puedes aplicar los principios de los árboles binarios de búsqueda para diseñar un algoritmo que encuentre la solución óptima a un problema de manipulación y búsqueda de datos?
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?
Recursos guía
  • Artículo sobre árboles binarios de búsqueda.
  • Libro sobre estructuras de datos en C++.
  • Video tutorial sobre árboles binarios de búsqueda en C++Video tutorial sobre árboles binarios de búsqueda en C++.

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.

Implementación

  • 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 1

Prototipo del reto

Semana 1

Implementación del reto

Semana 1

Validación del reto

Semana 13

Solución del reto

Semana 13

Ideació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?

La etapa de implementación fue la más desafiante y gratificante, ya que los estudiantes convirtieron su diseño en una solución funcional , superando dificultades técnicas y fortaleciendo sus habilidades y confianza en programación.

¿Las propuestas de solución del Nano reto cumplió con tu expectativa? ¿Por qué?
Sí, la implementación superó las expectativas, ya que los estudiantes aplicaron con éxito conceptos teóricos de estructuras de datos en contextos prácticos y motivadores. Destacaron por su compromiso, pensamiento lógico y trabajo en equipo, logrando productos funcionales e innovadores que evidenciaron una comprensión profunda de los árboles binarios de búsqueda (ABB) y su aplicabilidad real.

¿Qué mejorarías de esta experiencia?

Se sugiere mejorar la planificación del tiempo en el proceso ABR, asignando espacios más equilibrados para la ideación, desarrollo y validación. Ampliar el tiempo de validación permitiría realizar pruebas más completas y mejorar la calidad del código. Además, se recomienda reforzar el acompañamiento técnico con sesiones de mentoría en fases clave, especialmente durante la codificación.

Resultado de la experiencia


Comentario

El gráfico evidencia con claridad el impacto positivo en el desempeño de los estudiantes tras la aplicación de la metodología de Aprendizaje Basado en Retos, demostrando cómo este enfoque potencia su comprensión, análisis y capacidad de resolución frente a situaciones reales.