Indicación metodológica de lectura fundamental para el estudiante
Antes de iniciar, deténgase. Este documento es su prueba de fuego. El Bloque Dos ha exigido mucho más de su capacidad lógica: ha pasado de seguir instrucciones simples a construir estructuras de control, bucles y sistemas defensivos contra errores. Lea el examen completo, sin prisa, antes de escribir una sola línea de código. La comprensión integral de esta evaluación es el requisito indispensable para demostrar que usted está listo para el nivel avanzado.
Usted ha llegado a una instancia decisiva. Si el primer bloque fue la base, el segundo ha sido la consolidación de su criterio técnico. Este examen no es un trámite; es un filtro que separa a quienes solo "copian y pegan" de quienes realmente han comprendido la lógica de la automatización y la robustez del código.
Reglas ineludibles del examen
Uno: Honestidad absoluta. Está terminantemente prohibido consultar materiales previos, internet o herramientas de inteligencia artificial. Usted debe ser absolutamente sincero consigo mismo. Si usted hace fraude, el único que se engaña es usted mismo y el único perjudicado será su futuro profesional.
Dos: Organización rigurosa. Usted deberá crear una carpeta raíz llamada Bloque Dos en su equipo. Dentro de ella, debe organizar sus carpetas anteriores de las clases seis a la nueve. Su hoja de respuestas debe ser guardada dentro de esta carpeta raíz. El orden es la primera regla del programador profesional.
Tres: Tiempo límite. Usted dispone de tres horas cronológicas para completar esta evaluación. Gestione su tiempo con la inteligencia de un desarrollador.
Cuatro: Autoevaluación. Al finalizar, usted será su propio juez. Si no es capaz de seguir estas reglas, es mejor que abandone el curso. La integridad es la virtud que diferencia a un programador de alguien que solo conoce comandos.
Instrucciones para su espacio de trabajo
Primero: Asegúrese de tener su carpeta raíz Bloque Dos organizada.
Segundo: Abra un Bloc de Notas nuevo, escriba en la primera línea: Hoja de respuestas del Segundo Examen de Evaluación.
Tercero: Guarde este archivo dentro de la carpeta Bloque Dos con el nombre Respuestas_Examen_Bloque_2.txt.
Bloque de preguntas: Evaluación de conocimientos avanzados
Sección A: Lógica de bucles y estructuras de control (Preguntas 1 a 15)
1. ¿Qué diferencia sustancial hay entre `while` y `for` en términos de control de flujo?
2. Explique qué es un bucle infinito y por qué es peligroso para un sistema de usuario.
3. ¿Cómo funciona la función `range(start, stop, step)`?
4. ¿Qué es una variable acumuladora y por qué debe inicializarse antes del bucle?
5. ¿Es posible tener un `for` dentro de un `while`? Explique.
6. ¿Cómo se detiene manualmente un bucle si olvidó poner la condición de parada?
7. ¿Por qué el `for` es más seguro al trabajar con listas?
8. ¿Qué significa iterar sobre una secuencia?
9. Si usa `range(1, 11)`, ¿cuántas veces se ejecuta el bloque interno?
10. ¿Por qué la sangría es aún más crítica dentro de un ciclo?
11. ¿Cuál es el propósito del comando `print` dentro de un bucle?
12. ¿Qué es una palabra reservada y por qué `while` lo es?
13. Explique el concepto de "condición de salida" en un `while`.
14. ¿Qué ocurre si la condición de un `while` es `False` desde el inicio?
15. ¿Por qué el contador debe cambiar su valor dentro del `while`?
Sección B: Manejo de excepciones y robustez (Preguntas 16 a 30)
16. ¿Qué es una excepción en Python?
17. ¿Para qué sirve específicamente el bloque `try`?
18. ¿Qué sucede si ocurre un error dentro de un `try` pero no hay un `except` que lo capture?
19. ¿Por qué es una mala práctica usar un `except` vacío?
20. ¿Qué significa `ValueError`?
21. ¿Qué es un `Traceback` y por qué los desarrolladores lo usan para depurar?
22. ¿Cómo evita que un usuario divida entre cero?
23. ¿Es posible tener múltiples bloques `except` para un mismo `try`?
24. ¿Qué es un "código robusto"?
25. ¿Por qué la validación de datos es la primera línea de defensa del programador?
26. ¿Cómo captura un error de tipo `KeyboardInterrupt`?
27. ¿Qué pasa si el error ocurre antes de la línea `try`?
28. ¿Es posible poner un `while` dentro de un `try`?
29. ¿Qué es la "gestión de errores" en términos de experiencia de usuario?
30. ¿Qué diferencia hay entre un error de sintaxis y una excepción?
Sección C: Desafíos de lógica avanzada (Preguntas 31 a 45)
31. Diseñe el algoritmo en texto plano para buscar el número mayor en una lista de 5 números.
32. ¿Qué lógica usaría para imprimir solo los números pares de una secuencia?
33. Si el usuario ingresa un dato no convertible, ¿cómo fuerza el programa a pedir el dato nuevamente?
34. ¿Qué lógica utilizaría para contar cuántas veces se repite una palabra en una frase?
35. ¿Por qué anidar `if` dentro de `for` permite crear programas más inteligentes?
36. Explique el concepto de índice en una lista.
37. ¿Qué lógica sigue un programa para comparar elementos de dos listas diferentes?
38. ¿Por qué la madurez emocional ayuda a resolver un error técnico complejo?
39. Si un programa se queda colgado, ¿cuáles son sus primeros tres pasos lógicos de depuración?
40. ¿Es la honestidad una herramienta de programación? Explique por qué.
41. ¿Qué es la "inmutabilidad" aplicada a las colecciones?
42. ¿Cómo asegura que el usuario no introduzca una cadena vacía en un `input`?
43. ¿Por qué es importante comentar el código antes de la lógica compleja?
44. Si debe repetir algo 1000 veces, ¿qué estructura elige y por qué?
45. ¿Cómo garantiza que su programa de "Combinación Maestra" sea eficiente?
Sección D: Aplicación práctica y autocrítica (Preguntas 46 a 60)
46. Cree un algoritmo que pida un número y valide con `try-except` que sea entero.
47. ¿Qué sintaxis usa para que un `for` recorra una lista y sume solo los valores mayores a 10?
48. Si el código falla, ¿qué es más importante: el mensaje de error o la lógica de su variable?
49. Diseñe el algoritmo para un menú que solo acepta las opciones 1, 2 o 3.
50. ¿Cómo ha mejorado su destreza con el lector de pantalla en este bloque?
51. ¿Qué comando CMD ha sido el más útil para usted en este bloque?
52. Si ha fallado en un ejercicio, ¿qué hizo para corregirlo?
53. ¿Ha dependido usted de su criterio para este bloque?
54. ¿Se siente capaz de explicarle a alguien más qué es un bucle?
55. ¿Qué parte del Bloque Dos le causó mayor frustración y cómo la superó?
56. ¿Por qué el orden de su carpeta raíz define su nivel de profesionalismo?
57. ¿Es usted consciente de sus limitaciones técnicas al programar?
58. Si hoy tuviera que crear una herramienta para otros ciegos, ¿por dónde empezaría?
59. ¿Ha sido usted honesto durante este examen?
60. ¿Está listo para el Bloque Tres o necesita reforzar la lógica de este bloque?
Información final para el estudiante
Si ha llegado hasta aquí, ha demostrado más persistencia que la mayoría. Programar es una carrera de resistencia, no de velocidad. La programación no perdona la falta de orden, pero recompensa a quien insiste, investiga y asume la responsabilidad de sus propios errores. Guarde sus respuestas, cierre su Bloc de Notas y verifique una última vez la estructura de sus carpetas. Usted es el arquitecto de su propio aprendizaje.
Profesor: Diego R. Solano C.