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ãoAssuntoTipoTestes
1Soma e diferençaEntrada e saídapython34, 2 ocultos
2Segundos em H:MM:SSEntrada e saídapython35, 2 ocultos
3Distância entre dois pontosFunçõespython36, 2 ocultos
4Preço do ingresso por idadeCondicionaispython36, 3 ocultos
5Ano bissextoCondicionaispython35, 1 oculto
6Quadrante de um pontoCondicionaispython36, 2 ocultos
7Tabuada de multiplicaçãoLaços de repetiçãopython35, 2 ocultos
8Soma dos dígitosLaços de repetiçãopython36, 2 ocultos
9Passos de CollatzLaços de repetiçãopython35, 1 oculto
10Contando primosFunçõespython36, 2 ocultos
11Contar as vogaisStringspython34, 1 oculto
12É um palíndromo?Stringspython36, 2 ocultos
13Cifra de CésarStringspython36, 2 ocultos
14Soma acumuladaListas e vetorespython36, 2 ocultos
15Segundo maior valorListas e vetorespython36, 2 ocultos
16Matriz transpostaListas e vetorespython36, 2 ocultos
17Contando palavrasDicionários e mapaspython35, 2 ocultos
18Vencedor da eleiçãoDicionários e mapaspython36, 2 ocultos
19Soma de lista aninhadaRecursãopython36, 2 ocultos
20Busca bináriaBusca e ordenaçãopython36, 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ãoAssuntoTipoTestes
1Segundos para H:MM:SSEntrada e saídajava_program6, 2 ocultos
2Maior de trêsCondicionaisjava_method4, 1 oculto
3Ano bissextoCondicionaisjava_method6, 2 ocultos
4Soma de n númerosLaços de repetiçãojava_program4, 2 ocultos
5Escada de asteriscosLaços de repetiçãojava_method5, 2 ocultos
6Conversão de temperaturaFunçõesjava_method6, 2 ocultos
7MDC e MMCFunçõesjava_method6, 2 ocultos
8Iniciais de um nomeStringsjava_method6, 2 ocultos
9Verificar palíndromoStringsjava_method6, 2 ocultos
10Posição do maiorListas e vetoresjava_method6, 2 ocultos
11Acima da médiaListas e vetoresjava_program6, 2 ocultos
12Palavra mais frequenteDicionários e mapasjava_method6, 2 ocultos
13Conta bancáriaClasses e objetosjava_class6, 2 ocultos
14FraçõesClasses e objetosjava_class6, 2 ocultos
15Torre de HanóiRecursãojava_method5, 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ãoAssuntoTipoTestes
1Celsius para FahrenheitEntrada e saídac_program6, 2 ocultos
2Formatar uma duraçãoEntrada e saídac_function6, 2 ocultos
3Ano bissextoCondicionaisc_function6, 2 ocultos
4Quadrante de um pontoCondicionaisc_function6, 2 ocultos
5Contar pares e ímparesLaços de repetiçãoc_program4, 2 ocultos
6Triângulo de FloydLaços de repetiçãoc_function5, 2 ocultos
7FatorialFunçõesc_function4, 1 oculto
8Verificar número primoFunçõesc_function6, 2 ocultos
9Inverter um vetorListas e vetoresc_function6, 2 ocultos
10Acima da médiaListas e vetoresc_program6, 2 ocultos
11Verificar palíndromoStringsc_function6, 2 ocultos
12Cifra de CésarStringsc_function6, 2 ocultos
13Mínimo e máximoPonteiros e memóriac_function6, 2 ocultos
14Repetir uma stringPonteiros e memóriac_function6, 2 ocultos
15Soma de fraçõesStructsc_function6, 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ãoAssuntoTipoTestes
1Área e perímetro do retânguloEntrada e saídacpp_program5, 2 ocultos
2Dias do mêsCondicionaiscpp_function6, 2 ocultos
3Tipo de triânguloCondicionaiscpp_function6, 2 ocultos
4Passos de CollatzLaços de repetiçãocpp_function6, 2 ocultos
5Maior e menorLaços de repetiçãocpp_program5, 2 ocultos
6Ordenar três variáveisFunçõescpp_function6, 2 ocultos
7Área com sobrecargaFunçõescpp_function6, 2 ocultos
8Torre de HanóiRecursãocpp_function5, 2 ocultos
9Inverter as palavrasStringscpp_program4, 2 ocultos
10Comprimir letras repetidasStringscpp_function6, 2 ocultos
11Média de um vetorListas e vetorescpp_function4, 1 oculto
12Remover repetidosListas e vetorescpp_function6, 2 ocultos
13Frequência de palavrasDicionários e mapascpp_function6, 2 ocultos
14Classe conta bancáriaClasses e objetoscpp_function6, 2 ocultos
15Classe relógioClasses e objetoscpp_function6, 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

  1. Baixe o pacote no idioma que você quer, na lista acima.
  2. No curso, abra More > Question bank.
  3. No menu no alto, à esquerda, que mostra Questions, escolha Import.
  4. Em File format, escolha Moodle XML format.
  5. Em General, deixe Get category from file e Get context from file marcados.
  6. 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

  1. 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.
  2. No banco, escolha Import no menu no alto, à esquerda, que mostra Questions.
  3. 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

  1. Abra o questionário e vá à página Questions dele.
  2. 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.
  3. 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:

Parameters
{"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.

Crie uma na página de chaves de API do seu painel, de preferência uma chave nova só para este curso.

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.