A Competição de Programação é um desafio entre equipes de alunos realizado no Curso de Análise e Desenvolvimento de Sistemas para resolver problemas computacionais de vários níveis. Inicia-se no 1º Período com o objetivo de aprimorar a lógica de programação.
Esse tipo de competição tem os seguintes benefícios: ajuda a desenvolver um raciocínio rápido, de forma que aprende a lidar melhor com diversos problemas computacionais; busca conhecer todos os recursos das linguagens de programação; ganha motivação para estudar o material de algoritmos e estruturas de dados; melhora o currículo.
As equipes são compostas por três alunos, que tentarão resolver durante 3 horas o maior número possível dos 5 ou mais problemas que são entregues no início da competição. Estes alunos têm à sua disposição apenas um computador e material impresso (livros, listagens, manuais) para vencer a batalha contra o relógio e os problemas propostos. A equipe que resolver o maior número de tarefas no menor tempo possível sai vencedora.
Completar uma tarefa se resume em desenvolver um programa que resolva determinado problema. O programa é desenvolvido sem interfaces gráficas e deve receber uma entrada que contenha os parâmetros do problema para dar como saída a resposta solicitada. Como exemplo de tarefa, temos um problema no qual se dá como entrada um valor N e o programa solução deve ter como resposta a soma dos números de 1 a N.
Nesse caso, o problema é simples, mas em uma competição real encontramos problemas bastante desafiadores. Aliás, a graça da competição está exatamente aí. Os programas nunca possuem um visual bonito, mas suas ideias muitas vezes são geniais.