UNAH · Tegucigalpa / Cátedra de Programación III Período 2026
Contenido Oficial · Módulos 01, 02 y 03 Activos
MÓDULO 05 Taller de Aplicación

5. Laboratorio Interactivo y Evaluación de Cátedra

Ponga a prueba su comprensión teórica y práctica mediante actividades interactivas con retroalimentación inmediata.

⚡ Actividad 1: Clasificador de Paradigmas (Diapositivas 17 & 23)

Haga clic sobre el paradigma correspondiente para cada enunciado y verifique su intuición conceptual:

1. "Sume los números del 1 al 10 acumulando con un ciclo for."
2. "Obtenga todos los usuarios mayores de 18 años con una consulta SQL WHERE edad > 18."
3. "Reintente la conexión al servidor en un ciclo while(intentos < 3)."
4. "Filtre productos en Java usando productos.stream().filter(p -> p.precio > 100)."
5. "Modifique el contador de visitas ejecutando visitas = visitas + 1;."
6. "Deduzca parentesco en Prolog evaluando la regla abuelo(X, Z) :- padre(X, Y), padre(Y, Z)."
📝 Actividad 2: Cuestionario de Autoevaluación Universitaria
1. ¿Cuál fue la principal razón por la que ALGOL y Pascal reemplazaron la instrucción GOTO? Historia
A) Porque GOTO consumía demasiada memoria RAM en los microprocesadores.
B) Para erradicar el "Spaghetti Code" y garantizar programas modulares, legibles y mantenibles mediante estructuras como if, while y for.
C) Porque las tarjetas perforadas eran físicamente incompatibles con saltos de código.
Ver Fundamentación Docente
Niklaus Wirth y Edsger Dijkstra demostraron en los años 60 que el salto incondicional (GOTO) volvía los programas incomprensibles y propensos a fallos incontrolables. La programación estructurada impuso orden lógico y claridad formal.
2. ¿Qué significa que LISP sea un lenguaje homoicónico? Funcional
A) Que solo puede ejecutarse en procesadores dedicados construidos por el MIT.
B) Que no admite recursión ni funciones de orden superior.
C) Que el código del programa y los datos comparten la misma representación estructural física (S-expressions basadas en listas), permitiendo que el programa manipule su propio código como si fuera un dato cualquiera.
Ver Fundamentación Docente
La homoiconicidad es la base del sistema de macros de LISP: un programa puede leer listas que contienen sintaxis, transformarlas y ejecutarlas sin necesidad de un compilador externo separado.
3. En Prolog, ¿cuál es el mecanismo responsable de encontrar las asignaciones de variables que satisfacen una consulta? Lógica
A) La unificación de términos emparejada con el backtracking automático.
B) La compilación a código objeto en la máquina virtual JVM.
C) La evaluación perezosa y la recolección de basura.
Ver Fundamentación Docente
La unificación calcula la sustitución más general (MGU) entre los predicados de la consulta y los hechos/reglas de la base de conocimiento. Si un camino no prospera, el backtracking retrocede al punto de elección previo.
🗣️

Preguntas de Discusión para el Aula (Diapositiva 23)

Guía de reflexión crítica en la clase del Ing. Ricardo Toro
💬 Temas de Debate Universitario
  1. ¿Cuál paradigma resulta más accesible para un programador principiante?

    El imperativo suele considerarse más intuitivo al inicio porque refleja el pensamiento humano de "seguir una receta de pasos en orden cronológico". Sin embargo, el paradigma declarativo oculta detalles de bajo nivel que a menudo causan errores en novatos.

  2. ¿Cuál de los dos enfoques ofrece MAYOR CONTROL sobre los recursos del sistema?

    El imperativo (especialmente en lenguajes como C, C++ o Rust), ya que permite gestionar con precisión el uso de la memoria, registros del procesador y tiempo de ciclo.

  3. ¿Por qué los lenguajes contemporáneos más exitosos (Python, JavaScript, Java, C#) son MULTIPARADIGMA?

    Porque ningún paradigma es superior en todos los escenarios. Un sistema real requiere el modelado de datos de la POO, la pureza libre de fallos de la programación funcional para transformar colecciones y la velocidad del código imperativo para operaciones críticas.