BOCA Problems Builder

Informações gerais

O BOCA Problems Builder é um aplicativo web projetado para simplificar a criação e curadoria de problemas para maratonas de programação gerenciadas pelo sistema de gerenciamento de competições BOCA. O aplicativo possibilita a criação de problemas do zero ou a seleção dentre centenas de problemas anteriormente utilizados em dois eventos brasileiros de programação competitiva de destaque — a Maratona SBC de Programação ( MP-SBC ) e a Olimpíada Brasileira de Informática ( OBI ). Após a conclusão do processo de criação / seleção de problemas, os usuários podem baixar os pacotes de problemas no formato exigido pelo BOCA.

Para cadastrar um problema no BOCA, é necessário fazer o upload de um pacote de problema. O pacote de problema é um arquivo ZIP que contém diversos arquivos necessários para a apresentação, execução e correção do problema.

  • Os arquivos relacionados à execução de código são padronizados em pacotes de problemas — isso é, o conteúdo desses arquivos é o mesmo independentemente do problema. Esses arquivos estão localizados nos diretórios compare/, compile/, limits/, run/ e tests/. Por outro lado, os arquivos referentes à apresentação e avaliação são específicos para cada problema.
  • Existem dois arquivos de apresentação: um arquivo de texto denominado problem.info que contém metadados diversos e um arquivo em formato PDF que contém a descrição do problema. O PDF será disponibilizado para os participantes durante a maratona de programação. Ambos os arquivos estão localizados no diretório description/.
  • Em relação aos arquivos usados na correção do problema, estes consistem em pares de arquivos de texto de entrada e saída que contêm os casos de teste localizados nos diretórios input/ e output/, respectivamente. Durante a correção automatizada de submissões, a solução de código submetida será executada tantas vezes quanto há pares de arquivos de entrada e saída. Cada execução utilizará um arquivo de entrada específico, e o resultado obtido será comparado com o arquivo de saída correspondente. Tipicamente, um pacote de problema incluirá várias dezenas de pares de arquivos de entrada e saída para garantir uma testagem completa do código.

A estrutura de um pacote de problema é demostrada abaixo.

├── compare │   ├── c │   ├── cc │   ├── java │   ├── py2 │   └── py3 ├── compile │   ├── c │   ├── cc │   ├── java │   ├── py2 │   └── py3 ├── description │   ├── problem.info │   └── problem.pdf ├── input │   ├── A │   ├── B │   └── C ├── limits │   ├── c │   ├── cc │   ├── java │   ├── py2 │   └── py3 ├── output │   ├── A │   ├── B │   └── C ├── run │   ├── c │   ├── cc │   ├── java │   ├── py2 │   └── py3 └── tests

Instruções

Siga os passos abaixo para usar o BOCA Problems Builder na preparação dos pacotes de problemas para uma maratona de programação.

  1. Customize informações gerais sobre a maratona, como o nome e o logotipo, na página Configurar competição, acessível por meio do link de mesmo nome na seção Menu da barra lateral.
  2. Há duas opções para adicionar problemas na competição. Acesse a página Criar novo problema para criar problemas do zero ou a página Selecionar problema existente para selecionar problemas existentes. Ambas as páginas são acessíveis por meio dos links de mesmo nome na seção Menu da barra lateral.
  3. Os problemas adicionados à maratona são listados na seção Problemas da competição da barra lateral. Essa seção contém botões que permitem a reordenação, visualização, edição e remoção dos problemas da maratona.
  4. Após concluir o processo de criação e seleção de problemas, faça o download dos pacotes de problemas na página Gerenciamento de dados, acessível por meio do link de mesmo nome na seção Menu da barra lateral. Nesta mesma seção, é possível realizar e restaurar backups em formato JSON, o que possibilita o armazenamento permanente dos dados e a edição em diferentes dispositivos.