Moodle CodeRunner

Banco de preguntas CodeRunner gratis para Moodle

65 preguntas de programación para CodeRunner de Moodle, en Python, Java, C y C++, cada una con una respuesta modelo y pruebas. Descarga el archivo Moodle XML, impórtalo en tu banco de preguntas y agrega las preguntas a un cuestionario. Gratis, con licencia CC BY 4.0, con el enunciado en español, inglés o portugués.

Por el equipo de OnlineCompiler.io. Actualizado el .

Also in EnglishTambém em português

Qué son los paquetes

Cada paquete es un archivo Moodle XML con preguntas de CodeRunner para un primer curso de programación. La pregunta pide una función, un método o un programa completo, y CodeRunner califica la respuesta del estudiante con las pruebas de la pregunta cuando presiona Check. Cada pregunta tiene una respuesta modelo que pasa todas sus pruebas.

Las preguntas usan solo los tipos de pregunta que ya trae CodeRunner (python3, java_method, java_class, java_program, c_function, c_program, cpp_function, cpp_program) y les dejan a ellos los ajustes del sandbox, así que se importan en cualquier Moodle con CodeRunner instalado y funcionan en cualquier servidor Jobe: el tuyo, el de tu universidad o el de OnlineCompiler.io.

Cada paquete viene en español, inglés y portugués. Solo cambia el enunciado: el código, las pruebas y la salida esperada son iguales en los tres, así que puedes darle a cada grupo el idioma que mejor lee y calificar a todos de la misma manera.

Son gratis, con licencia CC BY 4.0: úsalas, modifícalas y compártelas, dando el crédito a OnlineCompiler.io.

Los paquetes

65 preguntas y 363 pruebas en 4 paquetes, uno para cada lenguaje de programación.

Python: introducción a la programación

Funciones, condicionales, ciclos, cadenas, listas, diccionarios y recursión, desde los primeros pasos hasta el final de un primer curso.

  • 20 preguntas, 111 pruebas (38 ocultas)
  • Tipos de pregunta: python3
  • Temas: Entrada y salida, Condicionales, Ciclos, Funciones, Cadenas, Listas y arreglos, Diccionarios y mapas, Recursión, Búsqueda y ordenamiento
Las 20 preguntas
#PreguntaTemaTipoPruebas
1Suma y diferenciaEntrada y salidapython34, 2 ocultas
2Segundos a H:MM:SSEntrada y salidapython35, 2 ocultas
3Distancia entre dos puntosFuncionespython36, 2 ocultas
4Precio de entrada por edadCondicionalespython36, 3 ocultas
5Año bisiestoCondicionalespython35, 1 oculta
6Cuadrante de un puntoCondicionalespython36, 2 ocultas
7Tabla de multiplicarCiclospython35, 2 ocultas
8Suma de los dígitosCiclospython36, 2 ocultas
9Pasos de CollatzCiclospython35, 1 oculta
10Contar primosFuncionespython36, 2 ocultas
11Contar las vocalesCadenaspython34, 1 oculta
12¿Es un palíndromo?Cadenaspython36, 2 ocultas
13Cifrado CésarCadenaspython36, 2 ocultas
14Suma acumuladaListas y arreglospython36, 2 ocultas
15Segundo mayor valorListas y arreglospython36, 2 ocultas
16Matriz transpuestaListas y arreglospython36, 2 ocultas
17Contar palabrasDiccionarios y mapaspython35, 2 ocultas
18Ganador de la elecciónDiccionarios y mapaspython36, 2 ocultas
19Suma de una lista anidadaRecursiónpython36, 2 ocultas
20Búsqueda binariaBúsqueda y ordenamientopython36, 2 ocultas

Java: introducción a la programación

Métodos, condicionales, ciclos, cadenas, arreglos, clases y recursión, para un primer curso de Java.

  • 15 preguntas, 84 pruebas (29 ocultas)
  • Tipos de pregunta: java_method, java_class, java_program
  • Temas: Entrada y salida, Condicionales, Ciclos, Funciones, Cadenas, Listas y arreglos, Diccionarios y mapas, Recursión, Clases y objetos
Las 15 preguntas
#PreguntaTemaTipoPruebas
1Segundos a H:MM:SSEntrada y salidajava_program6, 2 ocultas
2Mayor de tresCondicionalesjava_method4, 1 oculta
3Año bisiestoCondicionalesjava_method6, 2 ocultas
4Suma de n númerosCiclosjava_program4, 2 ocultas
5Escalera de asteriscosCiclosjava_method5, 2 ocultas
6Conversión de temperaturaFuncionesjava_method6, 2 ocultas
7MCD y MCMFuncionesjava_method6, 2 ocultas
8Iniciales de un nombreCadenasjava_method6, 2 ocultas
9Verificar palíndromoCadenasjava_method6, 2 ocultas
10Posición del mayorListas y arreglosjava_method6, 2 ocultas
11Por encima del promedioListas y arreglosjava_program6, 2 ocultas
12Palabra más frecuenteDiccionarios y mapasjava_method6, 2 ocultas
13Cuenta bancariaClases y objetosjava_class6, 2 ocultas
14FraccionesClases y objetosjava_class6, 2 ocultas
15Torres de HanóiRecursiónjava_method5, 2 ocultas

C: introducción a la programación

Entrada y salida, condicionales, ciclos, funciones, arreglos, cadenas, punteros y estructuras, para un primer curso de C.

  • 15 preguntas, 85 pruebas (29 ocultas)
  • Tipos de pregunta: c_function, c_program
  • Temas: Entrada y salida, Condicionales, Ciclos, Funciones, Cadenas, Listas y arreglos, Punteros y memoria, Estructuras
Las 15 preguntas
#PreguntaTemaTipoPruebas
1Celsius a FahrenheitEntrada y salidac_program6, 2 ocultas
2Formatear una duraciónEntrada y salidac_function6, 2 ocultas
3Año bisiestoCondicionalesc_function6, 2 ocultas
4Cuadrante de un puntoCondicionalesc_function6, 2 ocultas
5Contar pares e imparesCiclosc_program4, 2 ocultas
6Triángulo de FloydCiclosc_function5, 2 ocultas
7FactorialFuncionesc_function4, 1 oculta
8Verificar número primoFuncionesc_function6, 2 ocultas
9Invertir un arregloListas y arreglosc_function6, 2 ocultas
10Por encima del promedioListas y arreglosc_program6, 2 ocultas
11Verificar palíndromoCadenasc_function6, 2 ocultas
12Cifrado CésarCadenasc_function6, 2 ocultas
13Mínimo y máximoPunteros y memoriac_function6, 2 ocultas
14Repetir una cadenaPunteros y memoriac_function6, 2 ocultas
15Suma de fraccionesEstructurasc_function6, 2 ocultas

C++: introducción a la programación

Funciones, condicionales, ciclos, cadenas, vectores, mapas, clases y recursión, para un primer curso de C++.

  • 15 preguntas, 83 pruebas (29 ocultas)
  • Tipos de pregunta: cpp_function, cpp_program
  • Temas: Entrada y salida, Condicionales, Ciclos, Funciones, Cadenas, Listas y arreglos, Diccionarios y mapas, Recursión, Clases y objetos
Las 15 preguntas
#PreguntaTemaTipoPruebas
1Área y perímetro del rectánguloEntrada y salidacpp_program5, 2 ocultas
2Días del mesCondicionalescpp_function6, 2 ocultas
3Tipo de triánguloCondicionalescpp_function6, 2 ocultas
4Pasos de CollatzCicloscpp_function6, 2 ocultas
5Mayor y menorCicloscpp_program5, 2 ocultas
6Ordenar tres variablesFuncionescpp_function6, 2 ocultas
7Área con sobrecargaFuncionescpp_function6, 2 ocultas
8Torres de HanóiRecursióncpp_function5, 2 ocultas
9Invertir las palabrasCadenascpp_program4, 2 ocultas
10Comprimir letras repetidasCadenascpp_function6, 2 ocultas
11Promedio de un vectorListas y arregloscpp_function4, 1 oculta
12Eliminar repetidosListas y arregloscpp_function6, 2 ocultas
13Frecuencia de palabrasDiccionarios y mapascpp_function6, 2 ocultas
14Clase cuenta bancariaClases y objetoscpp_function6, 2 ocultas
15Clase relojClases y objetoscpp_function6, 2 ocultas

Importar un paquete en Moodle

Para importar, necesitas permisos de edición en el curso, y CodeRunner tiene que estar instalado en el sitio. Moodle 5.0 sacó los bancos de preguntas de los cursos y los convirtió en actividades de tipo banco de preguntas, así que los pasos dependen de la versión.

Los nombres en negrita son los de un Moodle en inglés. En un Moodle en español, los menús aparecen traducidos, en el mismo lugar y en el mismo orden.

Moodle 4.x

  1. Descarga el paquete en el idioma que quieras, de la lista de arriba.
  2. En el curso, abre More > Question bank.
  3. En el menú de arriba a la izquierda, que muestra Questions, elige Import.
  4. En File format, elige Moodle XML format.
  5. En General, deja marcadas Get category from file y Get context from file.
  6. Arrastra el archivo a Import questions from file y haz clic en Import. Moodle muestra la lista de preguntas importadas; haz clic en Continue.

Las preguntas quedan en el banco de preguntas del curso, en una categoría nueva con el nombre del paquete y del idioma, como OnlineCompiler.io Python (español).

Moodle 5.0 o posterior

  1. En el curso, abre More > Question banks. Abre un banco o crea uno: haz clic en Add question bank, ponle un nombre y elige Save and display.
  2. En el banco, elige Import en el menú de arriba a la izquierda, que muestra Questions.
  3. En File format, elige Moodle XML format, arrastra el archivo a Import questions from file, haz clic en Import y luego en Continue.

Las preguntas quedan en el banco donde importaste, en una categoría como OnlineCompiler.io Python (español). En Moodle 5.0, cada cuestionario también tiene su propio banco de preguntas (en el cuestionario, Question bank) para las preguntas que solo usa ese cuestionario; importar ahí funciona igual.

Agregar las preguntas a un cuestionario

  1. Abre el cuestionario y ve a su página Questions.
  2. Elige Add y luego from question bank. En Moodle 5.0 o posterior, si el banco donde importaste no es el que aparece, elige Switch bank y selecciónalo.
  3. Elige la categoría del paquete, marca las preguntas que quieras y haz clic en Add selected questions to the quiz.

Cada pregunta vale un punto y solo lo da cuando pasan todas las pruebas. Cambia el valor de una pregunta en la página Questions del cuestionario, o edita la pregunta para cambiar cualquier otra cosa.

Guías del propio Moodle, en inglés: Import questions (Moodle 4.5) y Question banks (Moodle 5.0).

Ejecutarlas sin un servidor Jobe propio

CodeRunner ejecuta cada Check en un servidor Jobe. Si tu Moodle ya tiene uno, las preguntas funcionan tal como están. Si no lo tiene, o todavía usa el servidor por defecto, pensado solo para pruebas, el servidor compatible con Jobe de OnlineCompiler.io puede ejecutarlas, de dos maneras.

Para todo el sitio: dos ajustes

Un administrador de Moodle abre Site administration > Plugins > Question types > CodeRunner, pone https://api.onlinecompiler.io/api en Jobe server y una clave de API de OnlineCompiler.io en Jobe API key. Desde ese momento, todas las preguntas de CodeRunner del sitio, incluidas estas, se ejecutan en OnlineCompiler.io. La página CodeRunner sin servidor Jobe tiene los pasos, los límites y lo que cambia respecto a Jobe.

Solo para estas preguntas: una copia con tu clave de API

Si das clases y no tienes acceso a los ajustes del sitio, descarga una copia del paquete en la que cada pregunta lleva el servidor y tu clave de API en sus propios parámetros del sandbox. CodeRunner envía solo esas preguntas a OnlineCompiler.io; las demás preguntas del sitio siguen usando el servidor Jobe del sitio. El campo Parameters de cada pregunta queda así:

Parameters
{"jobeserver": "https://api.onlinecompiler.io/api", "jobeapikey": "YOUR_API_KEY"}

En los paquetes de C y C++, el campo también lleva "linkargs": ["-lm"]: los tipos de pregunta de C y C++ lo usan para enlazar la biblioteca matemática, y los parámetros de la pregunta reemplazan a los de su tipo de pregunta.

Crea una en la página de claves de API de tu panel, de preferencia una clave nueva solo para este curso.

Tu clave se queda en esta pestaña del navegador. La página descarga el paquete, escribe la clave en cada pregunta y guarda la copia en tu computadora; la clave no se envía a ningún lado, no va en ningún enlace y no se guarda.

Quien pueda editar estas preguntas en Moodle puede leer la clave en el campo Parameters de la pregunta (en Advanced customisation, en el grupo Sandbox), igual que quien tenga una exportación o un respaldo de ellas. Los estudiantes no la ven. Usa una clave de API distinta para cada curso, con su propio límite mensual: así, una clave que se filtre solo gasta las ejecuciones de ese curso y puedes borrarla sin afectar a los demás. Mira los límites por clave (en inglés).

Un Check ejecuta el código del estudiante una vez en la mayoría de las preguntas que piden una función o un método, y una vez por prueba en las que piden un programa completo o leen entrada. Cada ejecución cuenta en tu plan; el plan Free incluye 100,000 ejecuciones al mes.

Para volver a usar el servidor Jobe del sitio, borra el campo Parameters de esas preguntas, o importa el archivo normal en su lugar.

Licencia

Las preguntas, sus pruebas y sus respuestas modelo tienen licencia Creative Commons Atribución 4.0 (CC BY 4.0). Puedes copiarlas, modificarlas y compartirlas, en tus cursos o en cualquier otro lugar, siempre que des el crédito a OnlineCompiler.io e indiques si hiciste cambios. Por ejemplo:

Basado en preguntas CodeRunner de OnlineCompiler.io (https://onlinecompiler.io/es/banco-de-preguntas-coderunner), CC BY 4.0.

La descripción de la categoría en cada archivo ya dice de dónde vienen las preguntas.

Preguntas frecuentes

¿Dónde encuentro preguntas gratis para CodeRunner?

En esta página: 65 preguntas CodeRunner gratis, de Python, Java, C y C++, en archivos Moodle XML para importar en tu banco de preguntas. Cada una tiene una respuesta modelo y pruebas, el enunciado viene en español, inglés o portugués, y todas tienen licencia CC BY 4.0.

¿Estas preguntas necesitan un servidor Jobe?

Sí, como toda pregunta de CodeRunner: el servidor Jobe es el que ejecuta el código de los estudiantes. Sirve cualquier servidor Jobe, porque las preguntas usan solo los tipos de pregunta que ya trae CodeRunner. Sin un servidor propio, usa el servidor compatible con Jobe de OnlineCompiler.io (https://api.onlinecompiler.io/api), para todo el sitio o, con la descarga con clave de esta página, solo para estas preguntas.

¿Con qué versiones de Moodle y CodeRunner funcionan?

Con cualquier Moodle que tenga CodeRunner instalado, porque las preguntas usan solo los tipos de pregunta que ya trae CodeRunner y el formato Moodle XML estándar. Las versiones actuales de CodeRunner (5.x) piden Moodle 4.3 o posterior, y esta página tiene los pasos de importación para Moodle 4.x y para Moodle 5.0 o posterior. Una pregunta con su propio servidor Jobe y su clave se probó en Moodle 4.5 con CodeRunner 5.10.9.

¿Puedo modificar las preguntas?

Sí. Una vez importadas, son preguntas normales de CodeRunner en tu banco de preguntas: cambia el enunciado, las pruebas, la puntuación o la respuesta modelo. La licencia CC BY 4.0 también te permite compartir tus versiones modificadas, dando el crédito a OnlineCompiler.io.

¿Las preguntas están en español?

Sí. Cada paquete tiene una versión con el enunciado en español, además de inglés y portugués, con el mismo código y las mismas pruebas; solo cambia el texto de la pregunta.

¿Cómo se comprueban las preguntas?

Cada respuesta modelo pasa todas las pruebas de su pregunta en un servidor Jobe estándar y en OnlineCompiler.io. Lo comprobamos ejecutando cada una con las mismas plantillas de los tipos de pregunta que ya trae CodeRunner, en los dos servidores, e importando cada archivo de paquete en un Moodle 4.5 con CodeRunner 5.10, donde se califica la respuesta modelo de cada pregunta.

¿Cómo reciben retroalimentación los estudiantes?

Con el botón Check: el estudiante ejecuta su código contra las pruebas y ve una tabla con la salida esperada y la obtenida en cada prueba visible. Una o más pruebas aparecen como ejemplo en el enunciado, y las pruebas ocultas no se muestran, para que nadie escriba una respuesta que solo acierte los ejemplos; si una falla, CodeRunner solo avisa que falló una prueba oculta. El estudiante puede corregir su código y presionar Check otra vez, perdiendo un poco de la nota en cada intento fallido.