A continuación, se presenta una versión reestructurada y ampliada de la guía para la Tarea 1 (Hito 1), incorporando todos los elementos necesarios. Esta propuesta está diseñada para ser un documento completo y claro para el desarrollo de la tarea.
Asignatura: Programación de Computadoras con Python Semana 8: 22 - 26 de septiembre de 2025 Segundo Período Académico de 2025
Esta semana es diferente. No introduciremos conceptos teóricos nuevos. En su lugar, nos dedicaremos por completo a nuestro primer gran hito: construir un programa completo, funcional y robusto desde cero. Es el momento de conectar todas las piezas que hemos aprendido (variables, condicionales, bucles, funciones, diccionarios y manejo de errores) para crear una herramienta de ingeniería útil y relevante para tu campo profesional.
El trabajo de esta semana culminará con la entrega de la Tarea 1, un proyecto práctico que demostrará tu capacidad para resolver problemas utilizando la programación.
Al completar exitosamente este proyecto, serás capaz de:
try-except
) para
validar las entradas del usuario y prevenir fallos inesperados en el
programa.while
) para controlar el flujo de
ejecución del programa y mejorar la experiencia del usuario.Para tener éxito en este hito, te recomendamos seguir un proceso de desarrollo estructurado. El rol del docente esta semana es ser un guía y un consultor; el código no se entrega “hecho”, sino que te ayudaremos a construirlo.
while
.try-except
en todas las entradas de usuario.calcular_costo_total()
es mucho más claro que
calc()
. Un buen nombramiento hace tu código más fácil de
leer, depurar y entender por tus compañeros de equipo.La colaboración es una habilidad fundamental en el desarrollo de software. Este proyecto está diseñado para ser resuelto en equipo.
def calcular_volumen(largo, ancho, alto):
).A continuación se presentan las alternativas de proyecto para el Hito 1 (Tarea 1), diseñadas específicamente para los perfiles de Ingeniería Civil, Agrícola y Agroindustrial.
Nota Importante: La estructura de la entrega, los consejos y los recursos de apoyo son los mismos para las tres Ingenierías. El objetivo es el mismo: integrar todos los conceptos del Bloque 1 en una herramienta funcional.
{'cemento_usd_saco': 8.5, 'arena_usd_m3': 20}
).try-except
) para validar todas las entradas
numéricas del usuario.while
.{'maiz': {'N': 120, 'P': 60, 'K': 60}, ...}
).{'urea': {'costo_usd_saco_50kg': 25, 'aporte_N_porc': 46}, ...}
).try-except
): Validar que el
área ingresada sea un número positivo y manejar otros errores de
entrada.while
que permita cotizar diferentes
producciones.{'mermelada_fresa': {'fruta_kg': 1.1, 'azucar_kg': 0.6, 'pectina_g': 5}}
.try-except
): Validar que la
cantidad de producción sea un número positivo.El video es una parte fundamental de la entrega. Permite demostrar no solo que el programa funciona, sino también que el equipo comprende el código que ha escrito.
try-except
y pide al usuario que ingrese el dato de nuevo,
sin detenerse.try-except
..py
o un enlace a un Google Colab Notebook con el código completo del
proyecto.[pegar el error]
. Este es el bloque de código que lo causa:
[pegar el código]
. ¿Puedes explicarme qué significa este
error y dónde podría estar el problema?”precios = {'cemento': 8, 'arena': 20}
, y otro con
cantidades, cantidades = {'cemento': 14, 'arena': 1.2}
.
¿Cómo puedo escribir un bucle en Python para calcular el costo total
multiplicando las cantidades por sus precios?”[pegar función]
. Funciona, pero se ve muy largo y
repetitivo. ¿Puedes darme sugerencias para hacerlo más corto, eficiente
y legible?”Puntaje Total: 100 Puntos
Criterio de Evaluación | Sobresaliente (90-100%) | Notable (75-89%) | Aprobado (60-74%) | Insuficiente (<60%) | Ponderación |
---|---|---|---|---|---|
Correctitud Funcional | El programa calcula todos los valores de forma precisa y sin errores lógicos. La salida es correcta para todos los casos de prueba. | El programa calcula correctamente la mayoría de los valores, pero puede tener un error lógico menor en un caso específico. | El programa realiza los cálculos básicos, pero presenta errores significativos en la lógica o en los resultados finales. | El programa no se ejecuta, se detiene inesperadamente o los cálculos son fundamentalmente incorrectos. | 30% |
Estructura y Modularidad | El código está excelentemente organizado en funciones claras y cohesivas. Cada función tiene una única responsabilidad bien definida. | El código utiliza funciones, pero algunas podrían estar mejor definidas o son demasiado largas. La modularidad es buena pero mejorable. | El código usa funciones, pero de manera desorganizada. Hay lógica de negocio fuera de las funciones o funciones que hacen demasiadas cosas. | El código no utiliza funciones o su uso es mínimo y no aporta a la estructura. La mayor parte del código está en el script principal. | 20% |
Uso de Diccionarios | Los diccionarios están bien estructurados y se utilizan de manera eficiente para gestionar todos los datos requeridos (costos, recetas, etc.). | Se utilizan diccionarios para gestionar los datos, pero su estructura podría ser más óptima o su implementación ligeramente ineficiente. | Se utilizan diccionarios, pero de forma parcial o incorrecta. Parte de los datos está “hardcodeada” en el código en lugar de en la estructura de datos. | No se utilizan diccionarios o su uso es incorrecto, impidiendo el funcionamiento adecuado del programa. | 15% |
Robustez y Manejo de Errores | El programa implementa try-except de forma
exhaustiva, controlando todas las entradas del usuario y mostrando
mensajes de error claros sin detenerse. |
El programa maneja los errores de entrada más comunes, pero puede fallar con algún caso no previsto. | El programa intenta manejar errores, pero la implementación es incompleta y el programa puede detenerse con ciertas entradas inválidas. | El programa no tiene manejo de errores y se detiene abruptamente al ingresar datos incorrectos. | 15% |
Calidad del Código y Comentarios | El código es muy legible, con nombres de variables y funciones descriptivos. Los comentarios son claros, concisos y explican el “porqué” de la lógica. | El código es legible y está comentado, aunque los nombres o los comentarios podrían ser más claros en algunas secciones. | El código es funcional pero difícil de leer. Los comentarios son escasos, ausentes o no aportan valor. | El código es desordenado, confuso y no está comentado, lo que lo hace muy difícil de entender. | 10% |
Video y Trabajo en Equipo | El video es claro, conciso y sigue la estructura propuesta. Todos los miembros participan y demuestran un profundo entendimiento del proyecto. | El video es bueno y cumple con los requisitos. La participación del equipo es evidente, aunque la explicación podría ser más fluida. | El video demuestra que el programa funciona, pero es desorganizado o no todos los miembros participan. La explicación del código es superficial. | No se entrega el video, o el video no demuestra el funcionamiento del programa ni la comprensión del equipo sobre el código. | 10% |