A Maratona de Programação é uma competição realizada entre equipes de programadores, que tem como objetivo principal resolver problemas de computação em diversos níveis de complexidade.
As equipes enviam suas resoluções para um “computador juiz”, centralizado em um servidor, que julga as soluções. As respostas são recebidas na mesma hora, e todas as equipes conseguem ver quando a solução de alguém está correta ou não, dando mais emoção à disputa. A equipe vencedora é aquela que possuir maior número de soluções corretas em um menor tempo.