Pular para conteúdo

Glossário

Referência abrangente de termos e definições usados em toda a documentação do omegaUp e na plataforma.


Termos Gerais

omegaUp

A plataforma de programação educacional que ajuda os alunos a melhorar suas habilidades de programação por meio de problemas práticos, concursos e cursos.

Problema

Um desafio de programação que consiste em uma declaração de problema, especificações de entrada/saída, restrições e casos de teste. Os problemas são a unidade principal do conteúdo do omegaUp.

Concurso

Uma competição de programação cronometrada onde os participantes resolvem um conjunto de problemas. Os concursos têm horários de início/término definidos, regras de pontuação e podem incluir recursos como participação virtual.

Curso

Um caminho de aprendizagem estruturado contendo tarefas com problemas, organizados por tópicos. Os cursos incluem acompanhamento do progresso e prazos.

Envio (Executar)

Código enviado por um usuário para resolver um problema. Cada envio é compilado, executado em casos de teste e recebe um veredicto.

Arena

A interface do concurso onde os participantes resolvem problemas durante as competições. Fornece placar em tempo real, editor de código e sistema de envio.


Funções do usuário

Concorrente/Participante

Um usuário participando de um concurso ou praticando problemas.

Criador de problemas

Um usuário que cria problemas para omegaUp. Os criadores de problemas definem declarações, casos de teste e validadores.

Organizador do Concurso

Um usuário que cria e gerencia concursos. Pode adicionar problemas, gerenciar participantes e definir configurações de concurso.

Administrador do curso

Um usuário que gerencia cursos, atribui problemas, acompanha o progresso dos alunos e analisa os envios.

Assistente de Ensino (TA)

Um ajudante de curso que pode fornecer revisões de código e responder aos esclarecimentos dos alunos.

Administrador do Sistema (Administrador de Sistemas)

Um usuário com acesso administrativo total à plataforma omegaUp.


Termos Técnicos

Graduador

O microsserviço Go que gerencia a fila de envio e coordena a avaliação. O Grader recebe envios do frontend, atribui-os aos Runners e armazena os resultados.

Corredor

Uma instância de serviço que compila e executa código enviado pelo usuário em uma sandbox segura. Vários Runners podem operar em paralelo para lidar com a carga de envio.

Minijail

A sandbox do Linux usada para execução segura de código, derivada do Chrome OS. Fornece isolamento de processos, filtragem de syscall e limites de recursos.

GitServer

O serviço que gerencia repositórios de problemas usando Git. Fornece controle de versão, gerenciamento de filiais e fornecimento de conteúdo para problemas.

Emissora

O servidor WebSocket que fornece atualizações em tempo real aos clientes, incluindo alterações no placar, notificações de veredicto e esclarecimentos.

DAO (objeto de acesso a dados)

Classes PHP que lidam com interações de banco de dados. DAOs fornecem métodos para operações CRUD em tabelas de banco de dados.

VO (objeto de valor)

Classes PHP que mapeiam para tabelas de banco de dados. VOs representam registros individuais do banco de dados com propriedades digitadas.

MVC (Model-View-Controller)

O padrão de arquitetura usado no aplicativo PHP do omegaUp. Os controladores lidam com a lógica de negócios, os DAOs/VOs lidam com os dados e os modelos lidam com a apresentação.

Controlador

Classes PHP que implementam endpoints de API e lógica de negócios. Localizado em frontend/server/src/Controllers/.


Veredictos

AC (Aceito)

A solução produz resultados corretos para todos os casos de teste e passa dentro dos limites de recursos.

PA (parcialmente aceito)

A solução passa em alguns casos de teste, mas não em todos. Usado com problemas de pontuação parcial.

WA (resposta errada)

A solução produz saída incorreta para um ou mais casos de teste.

TLE (Prazo excedido)

A solução excedeu o limite de tempo em um ou mais casos de teste.

MLE (limite de memória excedido)

A solução excedeu o limite de memória durante a execução.

RTE (erro de tempo de execução)

A solução travou durante a execução (por exemplo, falha de segmentação, divisão por zero, estouro de pilha).

CE (erro de compilação)

O código falhou ao compilar. Causas comuns: erros de sintaxe, inclusões ausentes, incompatibilidades de tipo.

JE (erro do juiz)

Ocorreu um erro interno durante a avaliação. Normalmente indica um problema com os dados de teste ou com o validador.

OLE (limite de saída excedido)

A solução produziu muita saída, excedendo o limite permitido.


Pontuação do concurso

Estilo IOI

Modelo de pontuação onde cada caso de teste atribui pontos parciais. A pontuação final é a soma dos pontos de todos os casos de teste.

Estilo ICPC

Modelo de pontuação onde os problemas valem pontos iguais (normalmente 1). O tempo de penalidade é adicionado para envios errados.

Penalidade

Dedução baseada no tempo ou no envio em concursos do tipo ICPC. Normalmente 20 minutos por envio errado.

Congelamento do placar

Período antes do final da competição, quando o placar deixa de ser atualizado publicamente, criando suspense para os resultados finais.

Concurso Virtual

Simulando uma competição passada sob condições de tempo originais. Permite praticar com concursos históricos.


Componentes do problema

Declaração

A descrição do problema incluindo a tarefa, formato de entrada/saída, restrições e exemplos.

Caso de teste

Um par de dados de entrada e resultados esperados usados para avaliar os envios.

Grupo de teste

Uma coleção de casos de teste relacionados, geralmente com pontos compartilhados. Usado para pontuação de subtarefas.

Validador

Um programa que verifica a saída da solução, especialmente para problemas com múltiplas respostas válidas.

Problema interativo

Um problema onde a solução deve interagir com um programa juiz através de E/S padrão.

Gerador

Um programa que cria casos de teste, normalmente para entradas grandes ou aleatórias.

Subtarefa

Um subconjunto de casos de teste com restrições específicas, permitindo crédito parcial para soluções mais simples.


Configurações de problemas

Prazo

Tempo máximo de execução permitido por caso de teste, em segundos (por exemplo, 1,0s, 2,0s).

Limite de memória

Memória máxima que a solução pode usar, em bytes ou megabytes (por exemplo, 256 MB).

Limite de saída

Tamanho máximo de saída da solução, evita impressão infinita.

Tipo de validador

Como a saída é comparada: token-caseless, token-numeric, literal ou custom.

Visibilidade do problema

Nível de acesso: private (somente proprietário), public (qualquer pessoa) ou específico do concurso.


Termos da API

Ponto final

Um URL de API específico que lida com uma operação específica (por exemplo, /api/Problem/create/).

Parâmetro de solicitação

Dados enviados para um endpoint de API, na string de consulta do URL ou no corpo da solicitação.

Resposta

Dados JSON retornados por um endpoint de API, incluindo status e dados solicitados.

Token de autenticação

O cookie ouat que identifica e autentica usuários para solicitações de API.

Limitação de taxa

Restrição na frequência de chamadas de API para evitar abusos. Os limites variam de acordo com o endpoint.


Termos de infraestrutura

Redis

Armazenamento de dados na memória usado para armazenamento de sessão, cache e mensagens em tempo real.

CoelhoMQ

Fila de mensagens usada para processamento de tarefas assíncronas, como geração de certificados.

PHP-FPM

PHP FastCGI Process Manager que lida com o processamento de solicitações PHP.

Nginx

Servidor Web e proxy reverso que roteia solicitações para serviços de back-end apropriados.

Docker

Plataforma de conteinerização usada para ambientes de desenvolvimento e implantação.


Termos de Desenvolvimento

PR (solicitação pull)

Uma proposta de alteração de código enviada para revisão antes de ser mesclada na base de código principal.

CI (Integração Contínua)

Testes automatizados executados em cada alteração de código para garantir a qualidade.

Linter

Ferramenta que verifica o código em busca de estilo e possíveis erros (por exemplo, ESLint, Psalm).

Migração

Script de alteração do esquema do banco de dados que atualiza a estrutura do banco de dados.

Calendário

Dados de teste usados para configurar um estado conhecido para teste.


Abreviações

Abreviatura Prazo completo
API Interface de programação de aplicativos
CRUD Criar, ler, atualizar, excluir
CSRF Falsificação de solicitação entre sites
DAO Objeto de acesso a dados
GSoC Verão de código do Google
ICPC Concurso Internacional de Programação Universitária
IOI Olimpíada Internacional de Informática
JSON Notação de objeto JavaScript
JWT Token Web JSON
MVC Controlador de visualização de modelo
REST Transferência de Estado Representacional
SQL Linguagem de consulta estruturada
TLS Segurança da Camada de Transporte
VO Objeto de valor
WS WebSocket
XSS Scripting entre sites

Documentação Relacionada