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
Trabajos destacados
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.
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.
¿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?
Desarrolla un algoritmo eficiente para encontrar el segundo elemento más grande en un árbol binario de búsqueda.
- ¿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?
- 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 retoSemana 1
Implementación del retoSemana 1
Validación del retoSemana 13
Solución del reto Semana 13
Ideación del retoSistematizació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.