Gravar-mail: Resolução de problemas e gamificação: contributo para o ensino da programação