En el contexto actual de la educación en ciencias computacionales, el desarrollo de
competencias en programación se ha convertido en un componente esencial para la
formación integral de los estudiantes. La programación, entendida como el proceso
de diseñar y construir un conjunto de instrucciones que una computadora puede
seguir para realizar tareas específicas, no solo fomenta el pensamiento lógico y
crítico, sino que también permite a los estudiantes abordar problemas complejos de
manera estructurada y eficiente.
Este trabajo se propone presentar una serie de ejercicios prácticos que,
fundamentados en principios teóricos de programación, buscan facilitar la
comprensión y aplicación de conceptos clave en el desarrollo de software. A través
de la implementación de estos ejercicios, se espera que los estudiantes no solo
adquieran habilidades técnicas, sino que también desarrollen un enfoque analítico y
creativo para la resolución de problemas. En consecuencia, se enfatiza la
importancia de un aprendizaje activo y reflexivo, que incentive la curiosidad
intelectual y la exploración en el campo de la programación.
Ejercicio 1: Maximización de Rutas en un Grafo Dirigido
Introducción: En el estudio de algoritmos de optimización en grafos, uno de los
problemas más relevantes es la maximización de rutas en un grafo dirigido. Este
ejercicio explora la implementación de algoritmos que permiten identificar el
camino más largo entre dos nodos en un grafo ponderado, desafiando al estudiante a
considerar tanto la eficiencia temporal como la claridad del código.
Descripción: Dado un grafo dirigido representado como una lista de adyacencia y un
𝑢 u y 𝑣 v, tu tarea es encontrar la longitud máxima del camino desde 𝑢 u a 𝑣 v. Si
par de nodos
no existe un camino, devuelve -1. Considera que el grafo puede contener ciclos, y
se espera que tu solución maneje este caso adecuadamente.