{"id":429,"date":"2025-05-01T10:12:17","date_gmt":"2025-05-01T10:12:17","guid":{"rendered":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=429"},"modified":"2026-02-27T16:25:43","modified_gmt":"2026-02-27T16:25:43","slug":"nuevos-gpts-para-cuestionarios","status":"publish","type":"post","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=429","title":{"rendered":"Nuevos GPTs para Cuestionarios"},"content":{"rendered":"\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile has-secondary-color has-luminous-vivid-amber-background-color has-text-color has-background has-link-color wp-elements-807a446ffd8bb2b2d7edec3408707bd9\"><figure  class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" alt=\"\" src=\"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/08\/ChatGPT-Image-30-abr.-2025-12_06_48.jpg?resize=1024%2C1024&#038;ssl=1\" class=\"wp-image-441 size-full\" srcset=\"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/08\/ChatGPT-Image-30-abr.-2025-12_06_48.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/08\/ChatGPT-Image-30-abr.-2025-12_06_48.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/08\/ChatGPT-Image-30-abr.-2025-12_06_48.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/08\/ChatGPT-Image-30-abr.-2025-12_06_48.jpg?resize=768%2C768&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>En esta entrada presento tres GPTs personalizados para ayudar a la creaci\u00f3n de cuestionarios. Uno para hacer preguntas seg\u00fan la taxonom\u00eda de Bloom, otro para esconder trampas entre las respuestas y un tercero para ofrecer diferentes tipos de retroalimentaciones.<\/p>\n<\/div><\/div>\n\n\n\n<p>En esta entrada voy a presentar tres nuevos GPTs personalizados que pueden ayudar a los docentes a mejorar su flujo de trabajo en la creaci\u00f3n de preguntas de cuestionario. En concreto se trata de:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BloomBot:<\/strong> Para crear preguntas seg\u00fan las taxonom\u00edas de Bloom.<\/li>\n\n\n\n<li><strong>MindBloom:<\/strong> Para crear retroalimentaciones a cada respuesta posible del cuestionario.<\/li>\n\n\n\n<li><strong>BloomBoom:<\/strong> Para hacer m\u00e1s complicados (o divertidos) los cuestionarios.<\/li>\n<\/ul>\n\n\n\n<p>Pero antes de hablar de estos tres nuevos, conviene recordar los primeros GPTs que hice. Hace m\u00e1s de un a\u00f1o que present\u00e9 mis GPTs personalizados para Moodle, entre los que se encontraban algunos especializados en los diferentes tipos de preguntas de Moodle:<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=191\">Consulta los GPTs para Moodle y h5p<\/a><\/div>\n<\/div>\n\n\n\n<p>Estos est\u00e1n especializados en el formato GIFT (<a href=\"https:\/\/docs.moodle.org\/all\/es\/Formato_GIFT\">\u00bfqu\u00e9 es eso de GIFT?<\/a>), por lo que pueden crear muchas preguntas directamente en un formato exportable a Moodle. Los GPTs que presento en esta entrada y que ya est\u00e1n disponibles en la GPT Store, tienen una funci\u00f3n diferente, y podr\u00edamos decir previa a los anteriores.<\/p>\n\n\n\n<p>Con los GPTs especializados en los tipos de preguntas de Moodle se puede hacer todo el proceso: le puedes pedir directamente \u00ab5 preguntas de respuesta cerrada sobro la fotos\u00edntesis\u00bb, te las hace, con sus retroalimentaciones, en formato GIFT, e incluso puedes indicarle dificultad. Con los nuevos lo que pretendo es perfeccionar el sistema de creaci\u00f3n de preguntas y relegar los GPTs especializados en el formato GIFT solo para la tarea de dar el formato a preguntas ya creadas. De esta manera, al hacer cada GPT espec\u00edfico en una tarea, el resultado global es mejor y est\u00e1 m\u00e1s controlado.<\/p>\n\n\n\n<p>Como siempre explico, lo ideal es tambi\u00e9n ofrecer un contexto adecuado para que los GPTs conozcan el corpus de conocimientos sobre el que deben realizar las preguntas. Es decir, tener unos \u00abapuntes\u00bb que le pasemos al GPT para que en base a eso haga las preguntas. <\/p>\n\n\n\n<p>Bueno, vamos ya a hablar de los nuevos GPTs creados:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BloomBot<\/h2>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/chatgpt.com\/g\/g-680d02ef62648191b6c08d39e830629c-bloombot\">Habla con BloomBoT<\/a><\/div>\n<\/div>\n\n\n\n<p>BloomBot es un GPT personalizado, especializado en las taxonom\u00edas de Bloom, con ejemplos de preguntas para los diferentes verbos relacionados en cada nivel.<\/p>\n\n\n\n<p>Este ser\u00eda el primer paso en la generaci\u00f3n de preguntas. Idealmente se le proporciona al GPT un contexto (apuntes) sobre los que generar preguntas (aunque esto no es necesario) y se le solicita que las haga seg\u00fan los niveles deseados. El uso habitual que le he dado ha sido el de solicitar 5 preguntas de un nivel, y a continuaci\u00f3n le he pedido que las haga m\u00e1s dif\u00edciles. As\u00ed, nivel por nivel. Recojo todas las preguntas generadas y selecciono\/modifico las que m\u00e1s me interesan.<\/p>\n\n\n\n<p>Una vez tenemos las preguntas creadas, nos interesar\u00e1 crear la retroalimentaci\u00f3n para cada posible respuestas, aqu\u00ed entra en juego el siguiente GPT.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MindBloom<\/h2>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/chatgpt.com\/g\/g-680d03d14ae48191a9b02eaddcfbd856-mindbloom\">HABLA CON MINDBLOOM<\/a><\/div>\n<\/div>\n\n\n\n<p>Este GPT es m\u00e1s complejo es su funcionamiento, respecto del anterior. Su funci\u00f3n en ayudar a crear los textos de retroalimentaci\u00f3n para cada opci\u00f3n de respuesta posible, pero lo va a hacer en base a unos par\u00e1metros que le vamos a poder marcar.<\/p>\n\n\n\n<p>De nuevo, mi recomendaci\u00f3n para que la propia retroalimentaci\u00f3n se base en las explicaciones del docente, es proporcionarle como contexto los \u00abapuntes\u00bb de la asignatura para que se gu\u00ede en ellos, adem\u00e1s, obviamente, de las preguntas y respuestas de las que queremos retroalimentaci\u00f3n.<\/p>\n\n\n\n<p>La forma de crear las retroalimentaci\u00f3n puede ser hasta en cuatro elementos, simplificado en:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>[EMOJI] + [INDICACI\u00d3N DE SI ES CORRECTA O NO] + [INDICACI\u00d3N SOBRE LA RESPUESTA CORRECTA] + [ESTRATEGIA DE FEEDBACK]<\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>[EMOJI]:<\/strong> Le podemos pedir que empiece con un emoji indicativo para respuesta correcta o equivocada, o que no lo use.<\/li>\n\n\n\n<li><strong>[INDICACI\u00d3N DE SI ES CORRECTA O NO]<\/strong>: Podemos solicitarle si queremos que indique en texto si la respuesta es correcta o no.<\/li>\n\n\n\n<li><strong>[INDICACI\u00d3N SOBRE LA RESPUESTA CORRECTA]<\/strong>: Podemos solicitarle que, si se ha seleccionado una respuesta incorrecta, indique o no cu\u00e1l es la correcta.<\/li>\n\n\n\n<li><strong>[ESTRATEGIA DE FEEDBACK]<\/strong>: Podemos solicitar qu\u00e9 tipo de estrategia de feedback queremos. O incluso que las mezcle como le plaza.<\/li>\n<\/ul>\n\n\n\n<p>Pero esto se lo podremos decir en c\u00f3digos m\u00e1s simples siguiendo este esquema:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-c6984a5a791800ba30a02763cb99e678\"><code>&#091;E-XX]&#091;T-XX]&#091;R-XX]&#091;X-XXX]<\/code><\/pre>\n\n\n\n<p>D\u00f3nde \u00abE\u00bb se refiere al emoji, \u00abT\u00bb a texto de si es correcta o no, \u00abR\u00bb a indicaci\u00f3n de cu\u00e1l es la respuesta correcta (si elegimos la incorrecta) y \u00abX\u00bb al tipo de Feedback. Aunque podemos decirle el tipo de feedback que queremos mediente el propio prompt. <\/p>\n\n\n\n<p>Yo suelo usar este:<\/p>\n\n\n\n<pre class=\"wp-block-code has-tertiary-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-bc2729fc0f32da554df57f10771aa6ff\"><code>Primero indica si la opci\u00f3n es correcta o incorrecta (y a\u00f1ade un emoji). Cuanto presentes la retroalimentaci\u00f3n de una respuesta correcta, valora el esfuerzo del alumno y luego refuerza te\u00f3ricamente porqu\u00e9 esa es la respuesta correcta. Cuando presentes la retroalimentaci\u00f3n de una respuesta incorrecta, anima al alumno a que repase el apartado de los apuntes correspondiente al corpus conceptual de la pregunta y explica porqu\u00e9 la respuesta es incorrecta, sin indicar nunca cu\u00e1l es la correcta.<\/code><\/pre>\n\n\n\n<p><strong>\u00bfC\u00f3mo saber qu\u00e9 tipo de retroalimentaci\u00f3n puede ofrecer MindBloom? <\/strong>Como pretendo ir actualiz\u00e1ndolo, el propio GPT tendr\u00e1 un iniciador de conversaci\u00f3n en el que listar\u00e1 todos los c\u00f3digos, as\u00ed como instrucciones de uso. Te ofrezco aqu\u00ed unos ejemplos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>[I-SOC]<\/strong>Preguntas socr\u00e1ticas: gu\u00eda hacia el descubrimiento del error mediante reflexi\u00f3n<\/li>\n\n\n\n<li><strong>[C-ETI]<\/strong>Etimolog\u00eda conceptual: proporciona el origen de los t\u00e9rminos para facilitar comprensi\u00f3n<\/li>\n\n\n\n<li><strong>[I-EMP]<\/strong>Empat\u00eda cognitiva: reconoce el razonamiento que pudo llevar al error<\/li>\n\n\n\n<li><strong>[A-ANA]<\/strong>Analog\u00edas ilustrativas: explica conceptos mediante comparaciones con situaciones familiares<\/li>\n<\/ul>\n\n\n\n<p>Cuando dentro de un tiempo llegue a una versi\u00f3n m\u00e1s completa de las retroalimentaciones, actualizar\u00e9 esta entrada con el cat\u00e1logo completo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 1: [E-S\u00cd][T-S\u00cd][R-NO][I-SOC]<\/h3>\n\n\n\n<pre class=\"wp-block-code has-tertiary-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-72881cc4f15036e2f03ce444a44b3ac8\"><code>\u274c INCORRECTA\n\n&#091;I-SOC] Has seleccionado que los virus son seres vivos. Si esto fuera cierto, \u00bfc\u00f3mo explicar\u00edas que no puedan reproducirse por s\u00ed mismos fuera de una c\u00e9lula hu\u00e9sped?\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 2: [E-NO][T-S\u00cd][R-S\u00cd][C-ETI]<\/h3>\n\n\n\n<pre class=\"wp-block-code has-tertiary-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-925b4dc6c6c63d446705d280c29bfb4a\"><code>CORRECTA\n\nLa respuesta \"fotos\u00edntesis\" que has seleccionado es correcta.\n\n&#091;C-ETI] El t\u00e9rmino fotos\u00edntesis proviene del griego \"photo\" (luz) y \"synthesis\" (composici\u00f3n), reflejando perfectamente c\u00f3mo las plantas componen su alimento utilizando la energ\u00eda de la luz.\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 3: [E-S\u00cd][T-NO][R-S\u00cd][I-EMP]<\/h3>\n\n\n\n<pre class=\"wp-block-code has-tertiary-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-5ad7f8e5424fe83a6632c8488e43492c\"><code>\ud83e\udd14\n\nLa respuesta correcta es \"Segunda Ley de la Termodin\u00e1mica\".\n\n&#091;I-EMP] Al seleccionar la Primera Ley, probablemente estabas pensando en la conservaci\u00f3n de la energ\u00eda. Es comprensible la confusi\u00f3n, ya que ambas leyes tratan sobre energ\u00eda, pero la Segunda Ley es la que espec\u00edficamente aborda el aumento de entrop\u00eda en sistemas aislados.\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 4: [E-S\u00cd][T-S\u00cd][R-NO][A-ANA]<\/h3>\n\n\n\n<pre class=\"wp-block-code has-tertiary-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color wp-elements-adcd86479b960317b9cc960490108fef\"><code>\u2b50 \u00a1CORRECTA!\n\n&#091;A-ANA] Tu identificaci\u00f3n del ADN como mol\u00e9cula hereditaria es acertada. El ADN funciona como una biblioteca biol\u00f3gica: los genes son como libros que contienen instrucciones precisas, organizados en estanter\u00edas (cromosomas) y con un sistema de copia que permite transmitir esa informaci\u00f3n a nuevas c\u00e9lulas.\n<\/code><\/pre>\n\n\n\n<p>Este sistema de c\u00f3digos proporciona al docente una forma r\u00e1pida y eficiente de especificar exactamente qu\u00e9 tipo de retroalimentaci\u00f3n desea generar para cada respuesta en sus cuestionarios Moodle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BloomBoom<\/h2>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/chatgpt.com\/g\/g-680d04e3cc188191a1e6a305ae665490-bloomboom\">HABLA CON BLOOMBOOM<\/a><\/div>\n<\/div>\n\n\n\n<p>Y para completar este trio, tenemos a BloomBoom. <\/p>\n\n\n\n<p>Nunca he sido fan de los cuestionarios que intentan enga\u00f1ar al alumno haci\u00e9ndole caer en trampas, pero me he decidido a crear un GPT que ayude al docente a hacer esto mismo. Aunque mi recomendaci\u00f3n es que nunca se utilice en evaluaciones sumativas. Es decir, como actividad formativa para hacer un test de resistencia de los conocimientos del alumno frente a los enga\u00f1os puede ir muy bien, e incluso ser algo divertido si se plantea sin presiones. Si ahora mismo no sabes la diferencia entre evaluaci\u00f3n formativa y sumativa te recomiendo que leas: <a href=\"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=251\">https:\/\/elpulpoenelvaso.jlmirall.es\/?p=251<\/a><\/p>\n\n\n\n<p>La utilidad de esta herramienta residir\u00eda en ayudar a presentar m\u00faltiples tipos de trampas entre las posibles respuestas de las preguntas. De nuevo, el propio GPT tendr\u00e1 la lista completa de trampas siempre actualizada y consultable mediante iniciador de conversaci\u00f3n. As\u00ed que presento aqu\u00ed solo unas de las que tiene incluidas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 1 Doble Negaci\u00f3n (TI-1)<\/h3>\n\n\n\n<p><strong>Descripci\u00f3n:<\/strong> Esta t\u00e9cnica utiliza m\u00faltiples negaciones en la formulaci\u00f3n de la pregunta, creando confusi\u00f3n para el estudiante que debe realizar varias inversiones l\u00f3gicas para identificar la respuesta correcta.<\/p>\n\n\n\n<p><strong>Ejemplo:<\/strong> \u00bfCu\u00e1l de las siguientes NO es una caracter\u00edstica NO presente en los mam\u00edferos?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a) Pelo<\/li>\n\n\n\n<li>b) Gl\u00e1ndulas mamarias<\/li>\n\n\n\n<li>c) Respiraci\u00f3n pulmonar<\/li>\n\n\n\n<li>d) Escamas<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 2 Verdad Parcial (JP-2)<\/h3>\n\n\n\n<p><strong>Descripci\u00f3n:<\/strong> Opciones que son correctas en un 90%, pero contienen un peque\u00f1o error o imprecisi\u00f3n que las invalida completamente.<\/p>\n\n\n\n<p><strong>Ejemplo:<\/strong> La fotos\u00edntesis:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a) Transforma CO\u2082 en O\u2082 usando energ\u00eda solar<\/li>\n\n\n\n<li>b) Ocurre en cloroplastos mediante la clorofila<\/li>\n\n\n\n<li>c) Produce glucosa y libera ox\u00edgeno como subproducto<\/li>\n\n\n\n<li>d) Es un proceso que ocurre exclusivamente en las hojas<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 3 Similitud Fon\u00e9tica (DS-1)<\/h3>\n\n\n\n<p><strong>Descripci\u00f3n:<\/strong> Utiliza opciones que suenan muy parecido pero tienen significados completamente diferentes, confundiendo a los estudiantes que no dominan la terminolog\u00eda espec\u00edfica.<\/p>\n\n\n\n<p><strong>Ejemplo:<\/strong> \u00bfQu\u00e9 proceso ocurre en la superficie de los materiales porosos?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a) Absorci\u00f3n<\/li>\n\n\n\n<li>b) Adsorci\u00f3n<\/li>\n\n\n\n<li>c) Abrasi\u00f3n<\/li>\n\n\n\n<li>d) Adhesi\u00f3n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo 4 Opci\u00f3n Mixta Enga\u00f1osa (MOT-3)<\/h3>\n\n\n\n<p><strong>Descripci\u00f3n:<\/strong> Presenta una opci\u00f3n del tipo \u00abA y C son correctas\u00bb cuando en realidad una de ellas contiene un error sutil que la invalida.<\/p>\n\n\n\n<p><strong>Ejemplo:<\/strong> Las funciones del h\u00edgado incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a) Producci\u00f3n de bilis<\/li>\n\n\n\n<li>b) Almacenamiento de vitaminas<\/li>\n\n\n\n<li>c) Producci\u00f3n de insulina<\/li>\n\n\n\n<li>d) A y C son correctas<\/li>\n<\/ul>\n\n\n\n<p>Si eres docente, usa responsablemente este bot&#8230;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Cuando dentro de un tiempo llegue a una versi\u00f3n m\u00e1s completa de las trampas, actualizar\u00e9 esta entrada con el cat\u00e1logo completo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Espero que estos tres asistentes puedan ser de utilidad para optimizar el proceso de creaci\u00f3n de actividades de cuestionario.<\/p>\n\n\n\n<p>Aprovechando que en la sesi\u00f3n lectiva del 29 de Abril de 2025 no se pod\u00eda avanzar materia y solo realizar repaso, (debido a los problemas derivados por el apag\u00f3n del d\u00eda anterior), cre\u00e9 dos cuestionarios sobre dos temas diferentes ya trabajados en la asignatura de Introducci\u00f3n a la Pedagog\u00eda Musical. En un cuestionario us\u00e9 a BloomBot y a MindBloom, y en otro unicamente a BloomBot. Formamos dos equipos en el aula, y el objetivo era conseguir realizar los dos cuestionarios con 100% de aciertos. Los cuestionarios ni ten\u00edan tiempo l\u00edmite ni restricciones de intentos. Al terminar cada intento se informaba al equipo de la puntuaci\u00f3n total del cuestionario y se pod\u00eda ver el feedback de las preguntas. En el de las preguntas trampa no se sab\u00eda si se hab\u00eda acertado o no cada pregunta de forma individual, solo aparec\u00eda como feedback el tipo de trampa utilizada. En el otro cuestionario s\u00ed se sab\u00eda, pero nunca se indicaba en el feedback cu\u00e1l era la respuesta correcta. Despu\u00e9s de esta actividad pas\u00e9 un breve cuestionario completamente an\u00f3nimo a los alumnos del que comparto los resultados:<\/p>\n\n\n\n<div class=\"ko-fi-button\" data-text=\"\u00bfMe invitas a un \u2615\ufe0f?\" data-color=\"#ff5f5f\" data-code=\"miralles\" id=\"kofiShortcode598Html\" style=\"float: none; text-align: left;\" data-title=\"\"><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Visualizaci\u00f3n de Resultados de Encuesta<\/title>\n    <!-- PapaParse para CSV -->\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/PapaParse\/5.3.2\/papaparse.min.js\"><\/script>\n    <!-- D3.js para visualizaciones -->\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3\/7.8.2\/d3.min.js\"><\/script>\n    <style>\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            line-height: 1.6;\n            color: #333;\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 20px;\n            background-color: #f9f9f9;\n        }\n        .container {\n            background-color: white;\n            border-radius: 8px;\n            box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n            padding: 20px;\n        }\n        h1 {\n            text-align: center;\n            color: #2c3e50;\n            margin-bottom: 30px;\n        }\n        h2 {\n            color: #3498db;\n            margin-top: 25px;\n            margin-bottom: 15px;\n            font-size: 20px;\n        }\n        .tab-container {\n            display: flex;\n            justify-content: center;\n            margin-bottom: 20px;\n        }\n        .tab {\n            padding: 10px 20px;\n            margin: 0 5px;\n            cursor: pointer;\n            border: none;\n            border-radius: 4px;\n            background-color: #e0e0e0;\n            font-size: 16px;\n            transition: all 0.3s ease;\n        }\n        .tab.active {\n            background-color: #3498db;\n            color: white;\n            font-weight: bold;\n        }\n        .content-section {\n            display: none;\n        }\n        .content-section.active {\n            display: block;\n        }\n        select {\n            width: 100%;\n            padding: 10px;\n            border-radius: 4px;\n            border: 1px solid #ddd;\n            font-size: 16px;\n            margin-bottom: 20px;\n            box-sizing: border-box;\n        }\n        .charts-container {\n            display: flex;\n            flex-wrap: wrap;\n            justify-content: space-around;\n            margin-top: 20px;\n        }\n        .chart {\n            width: 48%;\n            min-width: 300px;\n            background-color: white;\n            border-radius: 8px;\n            box-shadow: 0 1px 3px rgba(0,0,0,0.1);\n            margin-bottom: 20px;\n            padding: 15px;\n            box-sizing: border-box;\n        }\n        @media (max-width: 768px) {\n            .chart {\n                width: 100%;\n            }\n        }\n        .response-tabs {\n            display: flex;\n            margin-bottom: 15px;\n        }\n        .response-tab {\n            padding: 8px 16px;\n            cursor: pointer;\n            border: none;\n            border-radius: 4px;\n            background-color: #e0e0e0;\n            margin-right: 10px;\n            font-size: 14px;\n            transition: all 0.3s ease;\n        }\n        .response-tab.active {\n            background-color: #3498db;\n            color: white;\n        }\n        .response-item {\n            background-color: white;\n            border-radius: 6px;\n            border: 1px solid #e0e0e0;\n            padding: 15px;\n            margin-bottom: 10px;\n        }\n        .response-number {\n            font-size: 14px;\n            color: #7f8c8d;\n            margin-bottom: 5px;\n        }\n        .tooltip {\n            position: absolute;\n            padding: 8px;\n            background: rgba(0,0,0,0.8);\n            color: white;\n            border-radius: 4px;\n            pointer-events: none;\n            font-size: 14px;\n        }\n        .loading {\n            text-align: center;\n            padding: 40px;\n            font-size: 18px;\n            color: #7f8c8d;\n        }\n        .legend {\n            display: flex;\n            flex-wrap: wrap;\n            justify-content: center;\n            margin-top: 10px;\n        }\n        .legend-item {\n            display: flex;\n            align-items: center;\n            margin: 5px 10px;\n        }\n        .legend-color {\n            width: 15px;\n            height: 15px;\n            margin-right: 5px;\n            border-radius: 2px;\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <h1>Resultados de la Encuesta<\/h1>\n        \n        <div class=\"tab-container\">\n            <button class=\"tab active\" id=\"tab-charts\">Ver Gr\u00e1ficos<\/button>\n            <button class=\"tab\" id=\"tab-responses\">Ver Respuestas Abiertas<\/button>\n        <\/div>\n        \n        <div id=\"charts-section\" class=\"content-section active\">\n            <div>\n                <label for=\"question-selector\">Selecciona una pregunta:<\/label>\n                <select id=\"question-selector\"><\/select>\n            <\/div>\n            \n            <h2 id=\"question-title\"><\/h2>\n            \n            <div class=\"charts-container\">\n                <div class=\"chart\">\n                    <h3>Gr\u00e1fico de Barras<\/h3>\n                    <div id=\"bar-chart\"><\/div>\n                <\/div>\n                <div class=\"chart\">\n                    <h3>Gr\u00e1fico Circular<\/h3>\n                    <div id=\"pie-chart\"><\/div>\n                    <div id=\"pie-legend\" class=\"legend\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <div id=\"responses-section\" class=\"content-section\">\n            <div class=\"response-tabs\">\n                <button class=\"response-tab active\" id=\"tab-aspectos\">Aspectos \u00fatiles<\/button>\n                <button class=\"response-tab\" id=\"tab-sugerencias\">Sugerencias<\/button>\n            <\/div>\n            \n            <h2 id=\"responses-title\">Aspectos m\u00e1s \u00fatiles de la actividad<\/h2>\n            \n            <div id=\"aspectos-container\" class=\"responses-container\"><\/div>\n            <div id=\"sugerencias-container\" class=\"responses-container\" style=\"display: none;\"><\/div>\n        <\/div>\n    <\/div>\n    \n    <script>\n        \/\/ Variables globales\n        let surveyData = [];\n        let currentQuestion = '';\n        let chartData = [];\n        let openResponses = {};\n        \n        \/\/ Colores para los gr\u00e1ficos\n        const COLORS = ['#3498db', '#2ecc71', '#f1c40f', '#e74c3c', '#9b59b6', '#1abc9c', '#34495e', '#e67e22'];\n        \n        \/\/ Cargar los datos CSV - Asegur\u00e1ndose de que las comillas est\u00e9n correctamente escapadas\n        const csvData = `\"Respuesta n\u00famero\",\"\u00bfTe resultaron \u00fatiles las preguntas para entender el tema de Influencias ambientales?\",\"\u00bfNotaste diferentes niveles de dificultad en las preguntas?\",\"\u00bfC\u00f3mo valorar\u00edas la calidad del feedback recibido?\",\"\u00bfTe ayud\u00f3 a comprender mejor los conceptos?\",\"\u00bfTe result\u00f3 desafiante identificar las \"\"trampas\"\" en las preguntas?\",\"\u00bfCrees que este formato te ayud\u00f3 a profundizar en tu comprensi\u00f3n del tema?\",\"Si trabajaste en equipo, \u00bfcrees que esto mejor\u00f3 tu aprendizaje?\",\"\u00bfC\u00f3mo valorar\u00edas esta actividad como herramienta de repaso?\",\"\u00bfTe sientes mejor preparado\/a para el examen despu\u00e9s de realizar esta actividad?\",\"\u00bfQu\u00e9 aspectos de la actividad te resultaron m\u00e1s \u00fatiles? (respuesta abierta)\",\"\u00bfQu\u00e9 sugerir\u00edas para mejorar esta actividad? (respuesta abierta)\"\n6,\"Bastante \u00fatiles\",\"S\u00ed, claramente\",\"Buena\",\"Algo\",\"Bastante desafiante\",\"Bastante\",\"Mucho\",\"Muy buena\",\"Algo mejor\",\"Las respuestas enga\u00f1osas dificultan el test, pero te hacen prestar mucha m\u00e1s atenci\u00f3n a como y donde buscas la respuesta. Como actividad de clase o de repaso est\u00e1 muy bien porque genera mucha atenci\u00f3n. Como herramienta para un examen, solo lo complicar\u00eda, ya que en una situaci\u00f3n m\u00e1s estresante no creo que fuera productivo.\",\"Que en la actividad de las respuestas trampa se aplicara la de retroalimentaci\u00f3n para que fuera m\u00e1s f\u00e1cil saber cuales son las respuestas incorrectas. O una comparaci\u00f3n, al hacerlo por grupos, de que respuestas hay en com\u00fan bien y mal para, en grupo, hacer una correcci\u00f3n.\"\n5,\"Bastante \u00fatiles\",\"S\u00ed, claramente\",\"Buena\",\"Mucho\",\"Muy desafiante\",\"Mucho\",\"Mucho\",\"Excelente\",\"Algo mejor\",\"Las preguntas me han ayudado a hacer un gran repaso sobre el tema y pienso que me ha servido como gran m\u00e9todo de estudio. La correcci\u00f3n de las preguntas pienso que ha sido un buen m\u00e9todo para hacer que pensemos y recapacitemos sobre diferente respuestas que pens\u00e1bamos que eran las correctas.\",\"Pienso que a lo mejor las trampas han sido bastante dif\u00edciles de identificar, pero no creo que sea un factor para mejorar ya que generalmente pienso que me ha servido bastante.\"\n4,\"Algo \u00fatiles\",\"S\u00ed, claramente\",\"Buena\",\"Algo\",\"Bastante desafiante\",\"Algo\",\"Mucho\",\"Excelente\",\"Algo mejor\",\"La retroalimentaci\u00f3n y comprender mejor los temas\",\"Poner un feedback que te ayude a saber las respuestas correctas\"\n3,\"Algo \u00fatiles\",\"S\u00ed, pero no muy marcados\",\"Regular\",\"Algo\",\"Algo desafiante\",\"Algo\",\"Bastante\",\"Buena\",\"Algo mejor\",\"\",\"\"\n2,\"Muy \u00fatiles\",\"S\u00ed, claramente\",\"Buena\",\"Bastante\",\"Muy desafiante\",\"Bastante\",\"Mucho\",\"Excelente\",\"Mucho mejor\",\"El hecho de trabajar en equipo y poder dar nuestros puntos de vista ha servido para reflexionar e intentar llegar a una conclusi\u00f3n de manera general\",\"Que el bot sea m\u00e1s directo y no se enrolle tanto con las preguntas  :(\"\n1,\"Bastante \u00fatiles\",\"S\u00ed, claramente\",\"Buena\",\"Bastante\",\"Bastante desafiante\",\"Bastante\",\"Mucho\",\"Muy buena\",\"Algo mejor\",\"La posibilidad de estar con los apuntes buscando mientras contrastabamos con las respuestas\",\"Que el bot BloomBloom no se inventara trampas :)\"`;\n        \n        \/\/ Parsear los datos CSV con manejo expl\u00edcito de comillas y delimitadores\n        function parseCSVData() {\n            Papa.parse(csvData, {\n                header: true,\n                skipEmptyLines: true,\n                quoteChar: '\"',\n                escapeChar: '\"',\n                complete: function(results) {\n                    surveyData = results.data;\n                    \n                    \/\/ Obtener todas las preguntas (excluyendo n\u00famero de respuesta y preguntas abiertas)\n                    const questions = Object.keys(surveyData[0]).filter(key => \n                        key !== \"Respuesta n\u00famero\" && \n                        !key.includes(\"respuesta abierta\")\n                    );\n                    \n                    \/\/ Rellenar el selector de preguntas\n                    const questionSelector = document.getElementById('question-selector');\n                    questions.forEach(question => {\n                        const option = document.createElement('option');\n                        option.value = question;\n                        option.textContent = cleanQuestionTitle(question);\n                        questionSelector.appendChild(option);\n                    });\n                    \n                    \/\/ Seleccionar la primera pregunta por defecto\n                    currentQuestion = questions[0];\n                    document.getElementById('question-title').textContent = cleanQuestionTitle(currentQuestion);\n                    \n                    \/\/ Procesar respuestas abiertas\n                    processOpenResponses();\n                    \n                    \/\/ Actualizar gr\u00e1ficos con la primera pregunta\n                    updateChartData();\n                    renderCharts();\n                    \n                    \/\/ Mostrar respuestas abiertas\n                    renderOpenResponses();\n                }\n            });\n        }\n        \n        \/\/ Limpiar el t\u00edtulo de la pregunta (quitar \u00bf y ?)\n        function cleanQuestionTitle(question) {\n            return question.replace(\/\u00bf|\\?\/g, '').trim();\n        }\n        \n        \/\/ Actualizar los datos para los gr\u00e1ficos basados en la pregunta seleccionada\n        function updateChartData() {\n            const counts = {};\n            \n            \/\/ Contar frecuencias\n            surveyData.forEach(row => {\n                const response = row[currentQuestion];\n                if (response && response.trim() !== '') {\n                    counts[response] = (counts[response] || 0) + 1;\n                }\n            });\n            \n            \/\/ Convertir a formato para gr\u00e1fico\n            chartData = Object.entries(counts).map(([answer, count]) => ({\n                name: answer,\n                value: count\n            }));\n            \n            \/\/ Ordenar los datos seg\u00fan el tipo de respuesta\n            const sortOrder = {\n                'Nada \u00fatiles': 1, 'Poco \u00fatiles': 2, 'Algo \u00fatiles': 3, 'Bastante \u00fatiles': 4, 'Muy \u00fatiles': 5,\n                'No': 1, 'S\u00ed, pero no muy marcados': 2, 'S\u00ed, claramente': 3,\n                'Mala': 1, 'Regular': 2, 'Buena': 3, 'Muy buena': 4, 'Excelente': 5,\n                'Nada': 1, 'Poco': 2, 'Algo': 3, 'Bastante': 4, 'Mucho': 5,\n                'No desafiante': 1, 'Poco desafiante': 2, 'Algo desafiante': 3, 'Bastante desafiante': 4, 'Muy desafiante': 5,\n                'Igual que antes': 1, 'Algo mejor': 2, 'Bastante mejor': 3, 'Mucho mejor': 4\n            };\n            \n            chartData.sort((a, b) => {\n                const orderA = sortOrder[a.name] || 0;\n                const orderB = sortOrder[b.name] || 0;\n                return orderA - orderB;\n            });\n        }\n        \n        \/\/ Procesar respuestas abiertas\n        function processOpenResponses() {\n            const aspectosField = \"\u00bfQu\u00e9 aspectos de la actividad te resultaron m\u00e1s \u00fatiles? (respuesta abierta)\";\n            const sugerenciasField = \"\u00bfQu\u00e9 sugerir\u00edas para mejorar esta actividad? (respuesta abierta)\";\n            \n            const aspectos = surveyData\n                .map(row => ({\n                    num: row[\"Respuesta n\u00famero\"],\n                    text: row[aspectosField]\n                }))\n                .filter(item => item.text && item.text.trim() !== '');\n                \n            const sugerencias = surveyData\n                .map(row => ({\n                    num: row[\"Respuesta n\u00famero\"],\n                    text: row[sugerenciasField]\n                }))\n                .filter(item => item.text && item.text.trim() !== '');\n                \n            openResponses = {\n                aspectos: aspectos,\n                sugerencias: sugerencias\n            };\n        }\n        \n        \/\/ Renderizar gr\u00e1ficos\n        function renderCharts() {\n            renderBarChart();\n            renderPieChart();\n        }\n        \n        \/\/ Renderizar gr\u00e1fico de barras\n        function renderBarChart() {\n            \/\/ Limpiar el contenedor\n            d3.select(\"#bar-chart\").selectAll(\"*\").remove();\n            \n            \/\/ Configuraci\u00f3n del gr\u00e1fico\n            const margin = {top: 20, right: 30, bottom: 90, left: 40};\n            const width = document.getElementById('bar-chart').offsetWidth - margin.left - margin.right;\n            const height = 400 - margin.top - margin.bottom;\n            \n            \/\/ Crear SVG\n            const svg = d3.select(\"#bar-chart\")\n                .append(\"svg\")\n                    .attr(\"width\", width + margin.left + margin.right)\n                    .attr(\"height\", height + margin.top + margin.bottom)\n                .append(\"g\")\n                    .attr(\"transform\", `translate(${margin.left},${margin.top})`);\n            \n            \/\/ Escalas X e Y\n            const x = d3.scaleBand()\n                .domain(chartData.map(d => d.name))\n                .range([0, width])\n                .padding(0.2);\n                \n            const y = d3.scaleLinear()\n                .domain([0, d3.max(chartData, d => d.value) + 1])\n                .range([height, 0]);\n                \n            \/\/ Ejes X e Y\n            svg.append(\"g\")\n                .attr(\"transform\", `translate(0,${height})`)\n                .call(d3.axisBottom(x))\n                .selectAll(\"text\")\n                    .attr(\"transform\", \"translate(-10,0)rotate(-45)\")\n                    .style(\"text-anchor\", \"end\");\n                    \n            svg.append(\"g\")\n                .call(d3.axisLeft(y).ticks(5));\n                \n            \/\/ Tooltip\n            const tooltip = d3.select(\"body\")\n                .append(\"div\")\n                .attr(\"class\", \"tooltip\")\n                .style(\"opacity\", 0);\n                \n            \/\/ Dibujar barras\n            svg.selectAll(\"bars\")\n                .data(chartData)\n                .enter()\n                .append(\"rect\")\n                    .attr(\"x\", d => x(d.name))\n                    .attr(\"y\", d => y(d.value))\n                    .attr(\"width\", x.bandwidth())\n                    .attr(\"height\", d => height - y(d.value))\n                    .attr(\"fill\", (d, i) => COLORS[i % COLORS.length])\n                    .on(\"mouseover\", function(event, d) {\n                        tooltip.transition()\n                            .duration(200)\n                            .style(\"opacity\", .9);\n                        tooltip.html(`${d.name}: ${d.value} respuestas`)\n                            .style(\"left\", (event.pageX + 10) + \"px\")\n                            .style(\"top\", (event.pageY - 28) + \"px\");\n                    })\n                    .on(\"mouseout\", function() {\n                        tooltip.transition()\n                            .duration(500)\n                            .style(\"opacity\", 0);\n                    });\n        }\n        \n        \/\/ Renderizar gr\u00e1fico circular\n        function renderPieChart() {\n            \/\/ Limpiar contenedor\n            d3.select(\"#pie-chart\").selectAll(\"*\").remove();\n            d3.select(\"#pie-legend\").selectAll(\"*\").remove();\n            \n            \/\/ Si no hay datos, mostrar mensaje\n            if (chartData.length === 0) {\n                d3.select(\"#pie-chart\")\n                    .append(\"div\")\n                    .text(\"No hay datos disponibles para esta pregunta\");\n                return;\n            }\n            \n            \/\/ Tama\u00f1o\n            const width = document.getElementById('pie-chart').offsetWidth;\n            const height = 300;\n            const radius = Math.min(width, height) \/ 2;\n            \n            \/\/ Crear SVG\n            const svg = d3.select(\"#pie-chart\")\n                .append(\"svg\")\n                    .attr(\"width\", width)\n                    .attr(\"height\", height)\n                .append(\"g\")\n                    .attr(\"transform\", `translate(${width \/ 2},${height \/ 2})`);\n                    \n            \/\/ Tooltip\n            const tooltip = d3.select(\"body\")\n                .append(\"div\")\n                .attr(\"class\", \"tooltip\")\n                .style(\"opacity\", 0);\n                \n            \/\/ Generador de arco\n            const arc = d3.arc()\n                .innerRadius(0)\n                .outerRadius(radius * 0.8);\n                \n            \/\/ Generador de arco para etiquetas\n            const labelArc = d3.arc()\n                .innerRadius(radius * 0.6)\n                .outerRadius(radius * 1.2);\n                \n            \/\/ Generador de pie\n            const pie = d3.pie()\n                .value(d => d.value)\n                .sort(null);\n                \n            \/\/ Dibujar slices del pie\n            const path = svg.selectAll(\"path\")\n                .data(pie(chartData))\n                .enter()\n                .append(\"path\")\n                .attr(\"d\", arc)\n                .attr(\"fill\", (d, i) => COLORS[i % COLORS.length])\n                .attr(\"stroke\", \"white\")\n                .style(\"stroke-width\", \"2px\")\n                .on(\"mouseover\", function(event, d) {\n                    const percentage = Math.round(100 * d.data.value \/ chartData.reduce((acc, curr) => acc + curr.value, 0));\n                    tooltip.transition()\n                        .duration(200)\n                        .style(\"opacity\", .9);\n                    tooltip.html(`${d.data.name}: ${d.data.value} (${percentage}%)`)\n                        .style(\"left\", (event.pageX + 10) + \"px\")\n                        .style(\"top\", (event.pageY - 28) + \"px\");\n                })\n                .on(\"mouseout\", function() {\n                    tooltip.transition()\n                        .duration(500)\n                        .style(\"opacity\", 0);\n                });\n                \n            \/\/ Crear leyenda\n            const legend = d3.select(\"#pie-legend\");\n            \n            chartData.forEach((d, i) => {\n                const legendItem = legend.append(\"div\")\n                    .attr(\"class\", \"legend-item\");\n                    \n                legendItem.append(\"div\")\n                    .attr(\"class\", \"legend-color\")\n                    .style(\"background-color\", COLORS[i % COLORS.length]);\n                    \n                legendItem.append(\"div\")\n                    .text(d.name);\n            });\n        }\n        \n        \/\/ Renderizar respuestas abiertas\n        function renderOpenResponses() {\n            const aspectosContainer = document.getElementById('aspectos-container');\n            const sugerenciasContainer = document.getElementById('sugerencias-container');\n            \n            \/\/ Limpiar contenedores\n            aspectosContainer.innerHTML = '';\n            sugerenciasContainer.innerHTML = '';\n            \n            \/\/ Renderizar aspectos\n            openResponses.aspectos.forEach(item => {\n                const div = document.createElement('div');\n                div.className = 'response-item';\n                \n                const numDiv = document.createElement('div');\n                numDiv.className = 'response-number';\n                numDiv.textContent = `Respuesta ${item.num}`;\n                \n                const textDiv = document.createElement('div');\n                textDiv.textContent = item.text;\n                \n                div.appendChild(numDiv);\n                div.appendChild(textDiv);\n                \n                aspectosContainer.appendChild(div);\n            });\n            \n            \/\/ Renderizar sugerencias\n            openResponses.sugerencias.forEach(item => {\n                const div = document.createElement('div');\n                div.className = 'response-item';\n                \n                const numDiv = document.createElement('div');\n                numDiv.className = 'response-number';\n                numDiv.textContent = `Respuesta ${item.num}`;\n                \n                const textDiv = document.createElement('div');\n                textDiv.textContent = item.text;\n                \n                div.appendChild(numDiv);\n                div.appendChild(textDiv);\n                \n                sugerenciasContainer.appendChild(div);\n            });\n        }\n        \n        \/\/ Event listeners\n        document.addEventListener('DOMContentLoaded', function() {\n            \/\/ Cargar datos\n            parseCSVData();\n            \n            \/\/ Cambio de pregunta\n            document.getElementById('question-selector').addEventListener('change', function() {\n                currentQuestion = this.value;\n                document.getElementById('question-title').textContent = cleanQuestionTitle(currentQuestion);\n                updateChartData();\n                renderCharts();\n            });\n            \n            \/\/ Cambio de tab principal\n            document.getElementById('tab-charts').addEventListener('click', function() {\n                document.getElementById('tab-responses').classList.remove('active');\n                this.classList.add('active');\n                document.getElementById('responses-section').classList.remove('active');\n                document.getElementById('charts-section').classList.add('active');\n            });\n            \n            document.getElementById('tab-responses').addEventListener('click', function() {\n                document.getElementById('tab-charts').classList.remove('active');\n                this.classList.add('active');\n                document.getElementById('charts-section').classList.remove('active');\n                document.getElementById('responses-section').classList.add('active');\n            });\n            \n            \/\/ Cambio de tipo de respuesta abierta\n            document.getElementById('tab-aspectos').addEventListener('click', function() {\n                document.getElementById('tab-sugerencias').classList.remove('active');\n                this.classList.add('active');\n                document.getElementById('responses-title').textContent = 'Aspectos m\u00e1s \u00fatiles de la actividad';\n                document.getElementById('aspectos-container').style.display = 'block';\n                document.getElementById('sugerencias-container').style.display = 'none';\n            });\n            \n            document.getElementById('tab-sugerencias').addEventListener('click', function() {\n                document.getElementById('tab-aspectos').classList.remove('active');\n                this.classList.add('active');\n                document.getElementById('responses-title').textContent = 'Sugerencias para mejorar la actividad';\n                document.getElementById('sugerencias-container').style.display = 'block';\n                document.getElementById('aspectos-container').style.display = 'none';\n            });\n            \n            \/\/ Manejar redimensi\u00f3n\n            window.addEventListener('resize', function() {\n                renderCharts();\n            });\n        });\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>En esta entrada presento tres GPTs personalizados para ayudar a la creaci\u00f3n de cuestionarios. Uno para hacer preguntas seg\u00fan la taxonom\u00eda de Bloom, otro para esconder trampas entre las respuestas y un tercero para ofrecer diferentes tipos de retroalimentaciones.<\/p>\n","protected":false},"author":1,"featured_media":441,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":false,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[1],"tags":[15,12,9,8],"class_list":["post-429","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-diseno-instruccional","tag-inteligencia-artificial","tag-pedagogia","tag-tecnologia"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/08\/ChatGPT-Image-30-abr.-2025-12_06_48.jpg?fit=1024%2C1024&ssl=1","jetpack-related-posts":[{"id":432,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=432","url_meta":{"origin":429,"position":0},"title":"Uso de {mlang} en cuestionarios GIFT de Moodle con IA","author":"admin","date":"mayo 1, 2025","format":false,"excerpt":"En esta entrada presento IAs que ayudan a insertar etiquetas mlang en cuestionarios para que puedan visualizarse en diferentes idiomas dentro de c\u00f3digo GIFT y as\u00ed exportar masivamente gran cantidad de preguntas a Moodle.","rel":"","context":"En \u00abDise\u00f1o Instruccional\u00bb","block_context":{"text":"Dise\u00f1o Instruccional","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=diseno-instruccional"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/1-maig-2025-10_27_13.jpg?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/1-maig-2025-10_27_13.jpg?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/1-maig-2025-10_27_13.jpg?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/1-maig-2025-10_27_13.jpg?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":521,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=521","url_meta":{"origin":429,"position":1},"title":"Visualizador GIFT de Moodle: edita tus preguntas sin volverte loco con el c\u00f3digo","author":"admin","date":"enero 26, 2026","format":false,"excerpt":"Si has llegado hasta aqu\u00ed, probablemente ya conoces el formato GIFT de Moodle. Y si lo conoces, sabes que tiene dos caras: por un lado, es una forma r\u00e1pida de crear cuestionarios en lote; por otro, editar preguntas existentes puede convertirse en un ejercicio de paciencia mientras buscas d\u00f3nde acaba\u2026","rel":"","context":"En \u00abDise\u00f1o Instruccional\u00bb","block_context":{"text":"Dise\u00f1o Instruccional","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=diseno-instruccional"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/01\/Captura-de-pantalla-2026-01-26-a-las-20.27.20.png?fit=1059%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/01\/Captura-de-pantalla-2026-01-26-a-las-20.27.20.png?fit=1059%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/01\/Captura-de-pantalla-2026-01-26-a-las-20.27.20.png?fit=1059%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/01\/Captura-de-pantalla-2026-01-26-a-las-20.27.20.png?fit=1059%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/01\/Captura-de-pantalla-2026-01-26-a-las-20.27.20.png?fit=1059%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":191,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=191","url_meta":{"origin":429,"position":2},"title":"Dise\u00f1o 10 IAs (GPTs) para facilitar la creaci\u00f3n de actividades en Moodle y H5P","author":"admin","date":"enero 19, 2024","format":false,"excerpt":"Ya puedes utilizar en la GPT Store los 10 custom versions de Chat-GPT que he dise\u00f1ado para facilitar la creaci\u00f3n de actividades en Moodle y H5P. El campo de la Inteligencia Artificial est\u00e1 avanzando muy r\u00e1pido, y en este post voy a hablaros de algo realmente emocionante: c\u00f3mo he pasado\u2026","rel":"","context":"En \u00abDise\u00f1o Instruccional\u00bb","block_context":{"text":"Dise\u00f1o Instruccional","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=diseno-instruccional"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/gpts.jpg?fit=1200%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/gpts.jpg?fit=1200%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/gpts.jpg?fit=1200%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/gpts.jpg?fit=1200%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/gpts.jpg?fit=1200%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":453,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=453","url_meta":{"origin":429,"position":3},"title":"Dise\u00f1o de materiales y Moodle para cursos del CEFIRE","author":"admin","date":"mayo 15, 2025","format":false,"excerpt":"Recientemente me han vuelto a contactar para impartir formaci\u00f3n al profesorado en la Comunidad Valenciana. En esta entrada quiero compartir algunos recursos y estrategias que he creado para optimizar el proceso de dise\u00f1o de materiales y adaptar su est\u00e9tica a la imagen visual corporativa del CEFIRE.","rel":"","context":"En \u00abDise\u00f1o Instruccional\u00bb","block_context":{"text":"Dise\u00f1o Instruccional","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=diseno-instruccional"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/e9c655cf-1759-4540-9490-1cc25304ffe8.png?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/e9c655cf-1759-4540-9490-1cc25304ffe8.png?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/e9c655cf-1759-4540-9490-1cc25304ffe8.png?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2025\/05\/e9c655cf-1759-4540-9490-1cc25304ffe8.png?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":397,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=397","url_meta":{"origin":429,"position":4},"title":"Evaluaci\u00f3n asistida por IA en 3 pasos de trabajos escritos","author":"admin","date":"noviembre 28, 2024","format":false,"excerpt":"En esta entrada voy a presentar una idea de como se puede implementar una evaluaci\u00f3n de tareas de redacci\u00f3n o preguntas a desarrollar de un examen (es decir, texto principalmente) asistida por Inteligencia Artificial. N\u00f3tese que hablamos de evaluaci\u00f3n \u201casistida\u201d por IA, y no de evaluaci\u00f3n \u201crealizada\u201d por IA. Vamos\u2026","rel":"","context":"En \u00abDise\u00f1o Instruccional\u00bb","block_context":{"text":"Dise\u00f1o Instruccional","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=diseno-instruccional"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/11\/DALL%C2%B7E-2024-11-28-12.12.51-Vista-cenital-de-un-escritorio-con-una-redaccion-escrita-en-papel-siendo-evaluada-por-un-visor-de-inteligencia-artificial.-En-el-visor-aparecen-icono.jpg?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/11\/DALL%C2%B7E-2024-11-28-12.12.51-Vista-cenital-de-un-escritorio-con-una-redaccion-escrita-en-papel-siendo-evaluada-por-un-visor-de-inteligencia-artificial.-En-el-visor-aparecen-icono.jpg?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/11\/DALL%C2%B7E-2024-11-28-12.12.51-Vista-cenital-de-un-escritorio-con-una-redaccion-escrita-en-papel-siendo-evaluada-por-un-visor-de-inteligencia-artificial.-En-el-visor-aparecen-icono.jpg?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/11\/DALL%C2%B7E-2024-11-28-12.12.51-Vista-cenital-de-un-escritorio-con-una-redaccion-escrita-en-papel-siendo-evaluada-por-un-visor-de-inteligencia-artificial.-En-el-visor-aparecen-icono.jpg?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":727,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=727","url_meta":{"origin":429,"position":5},"title":"Archivo Legislativo vivo de Normativa de Conservatorios","author":"admin","date":"abril 29, 2026","format":false,"excerpt":"En esta entrada presento una nueva aplicaci\u00f3n \"Legis CPMDEM\" que es un lector de legislaci\u00f3n de Conservatorios Profesionales de M\u00fasica, Danza y Escuelas de M\u00fasica. Con an\u00e1lisis jur\u00eddico, versiones consolidadas, exportaci\u00f3n de citas, cuadernos de fragmentos personales, etc...; especializado en la normativa de aplicaci\u00f3n en la Comunidad Valenciana. Aqu\u00ed puedes\u2026","rel":"","context":"En \u00abGesti\u00f3n Educativa\u00bb","block_context":{"text":"Gesti\u00f3n Educativa","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=gestion-educativa"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-29-a-las-8.55.28.png?fit=1200%2C910&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-29-a-las-8.55.28.png?fit=1200%2C910&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-29-a-las-8.55.28.png?fit=1200%2C910&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-29-a-las-8.55.28.png?fit=1200%2C910&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-29-a-las-8.55.28.png?fit=1200%2C910&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts\/429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=429"}],"version-history":[{"count":7,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions"}],"predecessor-version":[{"id":456,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions\/456"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/media\/441"}],"wp:attachment":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}