Moodle CodeRunner
Banco de questões CodeRunner grátis para o Moodle
65 questões de programação para o CodeRunner do Moodle, em Python, Java, C e C++, cada uma com uma resposta modelo e testes. Baixe o arquivo Moodle XML, importe no seu banco de questões e adicione as questões a um questionário. Grátis, sob a licença CC BY 4.0, com o enunciado em português, inglês ou espanhol.
Pela equipe do OnlineCompiler.io. Atualizado em .
Also in EnglishTambién en español
O que são os pacotes
Cada pacote é um arquivo Moodle XML com questões do CodeRunner para um primeiro curso de programação. A questão pede uma função, um método ou um programa completo, e o CodeRunner corrige a resposta do aluno com os testes da questão quando ele aperta Check. Toda questão tem uma resposta modelo que passa em todos os testes.
As questões usam só os tipos de questão que já vêm com o CodeRunner (python3, java_method, java_class, java_program, c_function, c_program, cpp_function, cpp_program) e deixam as configurações do sandbox por conta deles, então podem ser importadas em qualquer Moodle com o CodeRunner instalado e rodam em qualquer servidor Jobe: o seu, o da sua universidade ou o do OnlineCompiler.io.
Cada pacote vem em português, inglês e espanhol. Só o enunciado muda: o código, os testes e a saída esperada são os mesmos nos três, então você pode dar a cada turma o idioma que ela lê melhor e corrigir todas do mesmo jeito.
São grátis, sob a licença CC BY 4.0: use, modifique e compartilhe, dando o crédito ao OnlineCompiler.io.
Os pacotes
65 questões e 363 testes em 4 pacotes, um para cada linguagem de programação.
Python: introdução à programação
Funções, condicionais, laços, strings, listas, dicionários e recursão, dos primeiros passos ao fim de um primeiro curso.
- 20 questões, 111 testes (38 ocultos)
- Tipos de questão:
python3 - Assuntos: Entrada e saída, Condicionais, Laços de repetição, Funções, Strings, Listas e vetores, Dicionários e mapas, Recursão, Busca e ordenação
As 20 questões
| # | Questão | Assunto | Tipo | Testes |
|---|---|---|---|---|
| 1 | Soma e diferença | Entrada e saída | python3 | 4, 2 ocultos |
| 2 | Segundos em H:MM:SS | Entrada e saída | python3 | 5, 2 ocultos |
| 3 | Distância entre dois pontos | Funções | python3 | 6, 2 ocultos |
| 4 | Preço do ingresso por idade | Condicionais | python3 | 6, 3 ocultos |
| 5 | Ano bissexto | Condicionais | python3 | 5, 1 oculto |
| 6 | Quadrante de um ponto | Condicionais | python3 | 6, 2 ocultos |
| 7 | Tabuada de multiplicação | Laços de repetição | python3 | 5, 2 ocultos |
| 8 | Soma dos dígitos | Laços de repetição | python3 | 6, 2 ocultos |
| 9 | Passos de Collatz | Laços de repetição | python3 | 5, 1 oculto |
| 10 | Contando primos | Funções | python3 | 6, 2 ocultos |
| 11 | Contar as vogais | Strings | python3 | 4, 1 oculto |
| 12 | É um palíndromo? | Strings | python3 | 6, 2 ocultos |
| 13 | Cifra de César | Strings | python3 | 6, 2 ocultos |
| 14 | Soma acumulada | Listas e vetores | python3 | 6, 2 ocultos |
| 15 | Segundo maior valor | Listas e vetores | python3 | 6, 2 ocultos |
| 16 | Matriz transposta | Listas e vetores | python3 | 6, 2 ocultos |
| 17 | Contando palavras | Dicionários e mapas | python3 | 5, 2 ocultos |
| 18 | Vencedor da eleição | Dicionários e mapas | python3 | 6, 2 ocultos |
| 19 | Soma de lista aninhada | Recursão | python3 | 6, 2 ocultos |
| 20 | Busca binária | Busca e ordenação | python3 | 6, 2 ocultos |
Java: introdução à programação
Métodos, condicionais, laços, strings, vetores, classes e recursão, para um primeiro curso de Java.
- 15 questões, 84 testes (29 ocultos)
- Tipos de questão:
java_method,java_class,java_program - Assuntos: Entrada e saída, Condicionais, Laços de repetição, Funções, Strings, Listas e vetores, Dicionários e mapas, Recursão, Classes e objetos
As 15 questões
| # | Questão | Assunto | Tipo | Testes |
|---|---|---|---|---|
| 1 | Segundos para H:MM:SS | Entrada e saída | java_program | 6, 2 ocultos |
| 2 | Maior de três | Condicionais | java_method | 4, 1 oculto |
| 3 | Ano bissexto | Condicionais | java_method | 6, 2 ocultos |
| 4 | Soma de n números | Laços de repetição | java_program | 4, 2 ocultos |
| 5 | Escada de asteriscos | Laços de repetição | java_method | 5, 2 ocultos |
| 6 | Conversão de temperatura | Funções | java_method | 6, 2 ocultos |
| 7 | MDC e MMC | Funções | java_method | 6, 2 ocultos |
| 8 | Iniciais de um nome | Strings | java_method | 6, 2 ocultos |
| 9 | Verificar palíndromo | Strings | java_method | 6, 2 ocultos |
| 10 | Posição do maior | Listas e vetores | java_method | 6, 2 ocultos |
| 11 | Acima da média | Listas e vetores | java_program | 6, 2 ocultos |
| 12 | Palavra mais frequente | Dicionários e mapas | java_method | 6, 2 ocultos |
| 13 | Conta bancária | Classes e objetos | java_class | 6, 2 ocultos |
| 14 | Frações | Classes e objetos | java_class | 6, 2 ocultos |
| 15 | Torre de Hanói | Recursão | java_method | 5, 2 ocultos |
C: introdução à programação
Entrada e saída, condicionais, laços, funções, vetores, strings, ponteiros e structs, para um primeiro curso de C.
- 15 questões, 85 testes (29 ocultos)
- Tipos de questão:
c_function,c_program - Assuntos: Entrada e saída, Condicionais, Laços de repetição, Funções, Strings, Listas e vetores, Ponteiros e memória, Structs
As 15 questões
| # | Questão | Assunto | Tipo | Testes |
|---|---|---|---|---|
| 1 | Celsius para Fahrenheit | Entrada e saída | c_program | 6, 2 ocultos |
| 2 | Formatar uma duração | Entrada e saída | c_function | 6, 2 ocultos |
| 3 | Ano bissexto | Condicionais | c_function | 6, 2 ocultos |
| 4 | Quadrante de um ponto | Condicionais | c_function | 6, 2 ocultos |
| 5 | Contar pares e ímpares | Laços de repetição | c_program | 4, 2 ocultos |
| 6 | Triângulo de Floyd | Laços de repetição | c_function | 5, 2 ocultos |
| 7 | Fatorial | Funções | c_function | 4, 1 oculto |
| 8 | Verificar número primo | Funções | c_function | 6, 2 ocultos |
| 9 | Inverter um vetor | Listas e vetores | c_function | 6, 2 ocultos |
| 10 | Acima da média | Listas e vetores | c_program | 6, 2 ocultos |
| 11 | Verificar palíndromo | Strings | c_function | 6, 2 ocultos |
| 12 | Cifra de César | Strings | c_function | 6, 2 ocultos |
| 13 | Mínimo e máximo | Ponteiros e memória | c_function | 6, 2 ocultos |
| 14 | Repetir uma string | Ponteiros e memória | c_function | 6, 2 ocultos |
| 15 | Soma de frações | Structs | c_function | 6, 2 ocultos |
C++: introdução à programação
Funções, condicionais, laços, strings, vetores, mapas, classes e recursão, para um primeiro curso de C++.
- 15 questões, 83 testes (29 ocultos)
- Tipos de questão:
cpp_function,cpp_program - Assuntos: Entrada e saída, Condicionais, Laços de repetição, Funções, Strings, Listas e vetores, Dicionários e mapas, Recursão, Classes e objetos
As 15 questões
| # | Questão | Assunto | Tipo | Testes |
|---|---|---|---|---|
| 1 | Área e perímetro do retângulo | Entrada e saída | cpp_program | 5, 2 ocultos |
| 2 | Dias do mês | Condicionais | cpp_function | 6, 2 ocultos |
| 3 | Tipo de triângulo | Condicionais | cpp_function | 6, 2 ocultos |
| 4 | Passos de Collatz | Laços de repetição | cpp_function | 6, 2 ocultos |
| 5 | Maior e menor | Laços de repetição | cpp_program | 5, 2 ocultos |
| 6 | Ordenar três variáveis | Funções | cpp_function | 6, 2 ocultos |
| 7 | Área com sobrecarga | Funções | cpp_function | 6, 2 ocultos |
| 8 | Torre de Hanói | Recursão | cpp_function | 5, 2 ocultos |
| 9 | Inverter as palavras | Strings | cpp_program | 4, 2 ocultos |
| 10 | Comprimir letras repetidas | Strings | cpp_function | 6, 2 ocultos |
| 11 | Média de um vetor | Listas e vetores | cpp_function | 4, 1 oculto |
| 12 | Remover repetidos | Listas e vetores | cpp_function | 6, 2 ocultos |
| 13 | Frequência de palavras | Dicionários e mapas | cpp_function | 6, 2 ocultos |
| 14 | Classe conta bancária | Classes e objetos | cpp_function | 6, 2 ocultos |
| 15 | Classe relógio | Classes e objetos | cpp_function | 6, 2 ocultos |
Importar um pacote no Moodle
Para importar, você precisa ter permissão de edição no curso, e o CodeRunner precisa estar instalado no site. O Moodle 5.0 tirou os bancos de questões de dentro dos cursos e os transformou em atividades do tipo banco de questões, então os passos dependem da versão.
Os nomes em negrito estão como aparecem num Moodle em inglês. Num Moodle em português, os menus aparecem traduzidos, no mesmo lugar e na mesma ordem.
Moodle 4.x
- Baixe o pacote no idioma que você quer, na lista acima.
- No curso, abra More > Question bank.
- No menu no alto, à esquerda, que mostra Questions, escolha Import.
- Em File format, escolha Moodle XML format.
- Em General, deixe Get category from file e Get context from file marcados.
- Arraste o arquivo para Import questions from file e clique em Import. O Moodle lista as questões importadas; clique em Continue.
As questões entram no banco de questões do curso, numa categoria nova com o nome do pacote e do idioma, como OnlineCompiler.io Python (português).
Moodle 5.0 ou mais recente
- No curso, abra More > Question banks. Abra um banco ou crie um: clique em Add question bank, dê um nome a ele e escolha Save and display.
- No banco, escolha Import no menu no alto, à esquerda, que mostra Questions.
- Em File format, escolha Moodle XML format, arraste o arquivo para Import questions from file, clique em Import e depois em Continue.
As questões entram no banco em que você importou, numa categoria como OnlineCompiler.io Python (português). No Moodle 5.0, cada questionário também tem um banco de questões próprio (no questionário, Question bank), para as questões que só ele usa; importar nele funciona do mesmo jeito.
Adicionar as questões a um questionário
- Abra o questionário e vá à página Questions dele.
- Escolha Add e depois from question bank. No Moodle 5.0 ou mais recente, se o banco em que você importou não for o que aparece, escolha Switch bank e selecione esse banco.
- Escolha a categoria do pacote, marque as questões que você quer e clique em Add selected questions to the quiz.
Cada questão vale um ponto e só ganha o ponto quando passa em todos os testes. Mude o valor de uma questão na página Questions do questionário, ou edite a questão para mudar qualquer outra coisa.
Guias do próprio Moodle, em inglês: Import questions (Moodle 4.5) e Question banks (Moodle 5.0).
Rodar sem um servidor Jobe próprio
O CodeRunner roda cada Check num servidor Jobe. Se o seu Moodle já tem um, as questões funcionam como estão. Se não tem, ou se ainda usa o servidor padrão, que serve só para testes, o servidor compatível com o Jobe do OnlineCompiler.io pode rodá-las, de dois jeitos.
Para o site inteiro: duas configurações
Um administrador do Moodle abre Site administration > Plugins > Question types > CodeRunner, coloca https://api.onlinecompiler.io/api em Jobe server e uma chave de API do OnlineCompiler.io em Jobe API key. A partir daí, todas as questões do CodeRunner no site, inclusive estas, rodam no OnlineCompiler.io. A página CodeRunner sem servidor Jobe tem o passo a passo, os limites e o que muda em relação ao Jobe.
Só para estas questões: uma cópia com a sua chave de API
Se você dá aula e não tem acesso às configurações do site, baixe uma cópia do pacote em que cada questão leva o servidor e a sua chave de API nos próprios parâmetros do sandbox. O CodeRunner envia só essas questões para o OnlineCompiler.io; as outras questões do site continuam usando o servidor Jobe do site. O campo Parameters de cada questão fica assim:
{"jobeserver": "https://api.onlinecompiler.io/api", "jobeapikey": "YOUR_API_KEY"}Nos pacotes de C e C++, o campo também leva "linkargs": ["-lm"]: os tipos de questão de C e C++ usam esse parâmetro para linkar a biblioteca matemática, e os parâmetros da questão substituem os do tipo de questão.
A sua chave fica nesta aba do navegador. A página baixa o pacote, escreve a chave em cada questão e salva a cópia no seu computador; a chave não é enviada a lugar nenhum, não vai em nenhum link e não fica guardada.
Quem pode editar estas questões no Moodle consegue ler a chave no campo Parameters da questão (em Advanced customisation, no grupo Sandbox), assim como quem tiver uma exportação ou um backup delas. Os alunos não a veem. Use uma chave de API separada para cada curso, com um limite mensal próprio: assim, uma chave que vazar só gasta as execuções daquele curso e pode ser apagada sem afetar os outros. Veja os limites por chave (em inglês).
Um Check roda o código do aluno uma vez na maioria das questões que pedem uma função ou um método, e uma vez por teste nas que pedem um programa completo ou leem entrada. Cada execução conta no seu plano; o plano Free inclui 100.000 execuções por mês.
Para voltar as questões para o servidor Jobe do site, apague o campo Parameters delas, ou importe o arquivo normal no lugar.
Licença
As questões, os testes e as respostas modelo estão sob a licença Creative Commons Atribuição 4.0 (CC BY 4.0). Você pode copiar, modificar e compartilhar, nas suas disciplinas ou em qualquer outro lugar, desde que dê o crédito ao OnlineCompiler.io e indique se fez mudanças. Por exemplo:
Baseado em questões CodeRunner do OnlineCompiler.io (https://onlinecompiler.io/pt/banco-de-questoes-coderunner), CC BY 4.0.
A descrição da categoria em cada arquivo já diz de onde vêm as questões.
Perguntas frequentes
Onde encontro questões grátis para o CodeRunner?
Nesta página: 65 questões CodeRunner grátis, de Python, Java, C e C++, em arquivos Moodle XML para importar no seu banco de questões. Cada uma tem uma resposta modelo e testes, o enunciado vem em português, inglês ou espanhol, e todas estão sob a licença CC BY 4.0.
Estas questões precisam de um servidor Jobe?
Sim, como toda questão do CodeRunner: é o servidor Jobe que roda o código dos alunos. Qualquer servidor Jobe serve, porque as questões usam só os tipos de questão que já vêm com o CodeRunner. Sem um servidor próprio, use o servidor compatível com o Jobe do OnlineCompiler.io (https://api.onlinecompiler.io/api), para o site inteiro ou, com o download com chave desta página, só para estas questões.
Com quais versões do Moodle e do CodeRunner elas funcionam?
Com qualquer Moodle que tenha o CodeRunner instalado, porque as questões usam só os tipos de questão que já vêm com o CodeRunner e o formato Moodle XML padrão. As versões atuais do CodeRunner (5.x) pedem o Moodle 4.3 ou mais recente, e esta página traz os passos de importação para o Moodle 4.x e para o 5.0 ou mais recente. Uma questão com servidor Jobe e chave próprios foi testada no Moodle 4.5 com o CodeRunner 5.10.9.
Posso modificar as questões?
Sim. Depois de importadas, são questões comuns do CodeRunner no seu banco de questões: mude o enunciado, os testes, a pontuação ou a resposta modelo. A licença CC BY 4.0 também permite compartilhar as versões modificadas, dando o crédito ao OnlineCompiler.io.
As questões estão em português?
Sim. Cada pacote tem uma versão com o enunciado em português do Brasil, além de inglês e espanhol, com o mesmo código e os mesmos testes; só o texto da questão muda.
Como as questões são conferidas?
Cada resposta modelo passa em todos os testes da sua questão num servidor Jobe padrão e no OnlineCompiler.io. Conferimos rodando cada uma pelos mesmos templates dos tipos de questão que já vêm com o CodeRunner, nos dois servidores, e importando cada arquivo de pacote num Moodle 4.5 com o CodeRunner 5.10, onde a resposta modelo de cada questão é corrigida.
Como os alunos recebem o retorno?
Pelo botão Check: o aluno roda o código contra os testes e vê uma tabela com a saída esperada e a obtida em cada teste visível. Um ou mais testes aparecem como exemplo no enunciado, e os testes ocultos não aparecem, para ninguém escrever uma resposta que só acerta os exemplos; se um deles falha, o CodeRunner só avisa que um teste oculto falhou. O aluno pode corrigir e apertar Check de novo, perdendo um pouco da nota a cada tentativa errada.