IV MARATONA DE PROGRAMAÇÃO 2012
31 de Maio e 01 de Abril
1 – Introdução e Objetivos
“Maratona de Programação” não é uma novidade, muito pelo contrário, é um evento anual promovido pela Sociedade Brasileira de Computação (SBC). Os melhores classificados participam da International Collegiate Programming
Challenge, evento internacional promovido pela Association for Computing Machinery (ACM). Nas Maratonas nacionais e internacionais as equipes
competem para solucionar problemas utilizando programação de computadores. Cada time é composto de três estudantes de graduação ou pós-graduação que dividem a utilização de um único computador para solucionar os problemas propostos na competição. Os critérios de avaliação das equipes são o tempo e o menor número de erros dos programas.
Na UNISAL Lorena, estamos organizando a “IV Maratona de Programação”, mais adequada aos nossos propósitos, mas, que também servirá como seletiva
para participarmos da Maratona de Programação organizada pela SBC, que pode ser vista no site http://maratona.ime.usp.br/.
A “IV Maratona de Programação da UNISAL Lorena” tem os seguintes objetivos:
Objetivo Geral:
A IV Maratona de Programação da UNISAL Lorena tem como objetivo fundamental incentivar todos os alunos do Curso de Ciência da Computação no estudo da Programação de Computadores, quer seja pela integração de esforços da comunidade acadêmica (alunos e professores), quer seja pela competição sadia na resolução de problemas de diversos graus de complexidade.
Objetivos Específicos:
Aprimorar o conhecimento da lógica algorítmica dos alunos;
Aprimorar o conhecimento de programação utilizando estruturas da linguagem Java, bem como o uso de Orientação a Objetos;
Promover o desenvolvimento de soluções em equipe;
Promover a integração de alunos em um evento interno de abrangência coletiva;
Dar maior visibilidade à UNISAL Lorena em âmbito regional e nacional; Selecionar alunos que comporão a Equipe representante da UNISAL
Lorena em competições de programação nacionais. 2 – Público-alvo
Alunos de todos os semestres do Curso de Ciência da Computação do Centro Universitário Salesiano de São Paulo (UNISAL), unidade de Lorena.
3 – Cronograma de Trabalhos
Atividade Período de Realização
Divulgação do Evento 3 a 7 de Maio de 2012
Inscrições 4 a 20 de Maio de 2012
Divulgação dos Locais de Provas 10 de Maio de 2012
Maratona 31/05 e 01/06 de 2012
(1ª. e 2ª. Fases, respectivamente) 4 – Horários de Realização
1ª Fase: 31/05/2012 19h – 21h30 Sala F2
2ª Fase: 01/06/2012 19h – 21h30 Laboratório No 6 (Coordenação) 5 – Local, Infra-estrutura e Materiais
A Maratona de Programação ocorrerá no Centro Universitário de São Paulo, Unidade de Lorena, localizada na Rua Dom Bosco, n. 284, Centro, Lorena – SP, utilizando-se da seguinte infra-estrutura:
- Salas de Aula: organizar carteiras para os grupos de 4 alunos.
- Laboratórios 8 : instalação do Java 1.6 com IDEs Blue J, JCreator e Netbeans e Compilador DevCPP. A configuração do path permite que a equipe execute em Java ou C de qualquer diretório por linha de comando.
- Datashow em todas as salas e laboratórios onde ocorrerão a
Maratona.
- Bexiga com suporte para indicar quais questões foram resolvidas em cada grupo (Questão 1 – Bexiga Vermelha, Questão 2 – Bexiga Azul e Questão 3 – Bexiga Amarela);
- Provas referentes às Fases, com folhas de respostas. 6 - Comissão Organizadora
A Comissão Organizadora será identificada por crachás nos dias da realização do evento e é composta por:
Coordenação:
Coordenador de Curso – Aníbal Evaristo Fernandes
Professor da disciplina “Banco de Dados ” – José Walmir G.
Duque
Professor da disciplina “Programação Web” – Carlos Feichas Professor da disciplina “Sistemas Distribuídos”– Márcio de
Moraes
Aplicadores:
Prof. : Luiz Carlos Rosa Jr. Supervisor Lab.: Wesley Costa Secretaria Adriana Neves Equipe de Apoio:
Assistente de Coordenação, Docentes que estiverem lecionando no período do Evento e alunos convidados – Esquema de Trabalho -Anexo G deste documento.
Adriana Neves
10 alunos da computação que receberam Certificados de Equipe de Apoio do Evento
7 – Descritivo do evento 7.1 – Inscrição
Deverão ser formadas Equipes de 4 alunos, com a finalidade de resolver exercícios de Programação de acordo com cada fase. Essas equipes poderão ser formadas por alunos de turmas diferentes.
Para efetuar a inscrição, cada Equipe deverá informar: - Nome da Equipe;
- Nomes dos Participantes;
- Semestre que está cursando cada membro da equipe.
As fichas de inscrições deverão obtidas na Coordenação com a Adriana Neves e o pagamento de valor simbólico de R$ 10,00 por equipe na secretaria do Unisal.
OBS1: o valor das inscrições será revertido em prêmios para os participantes e no custeio dos materiais utilizados na organização do evento.
OBS2: a participação na Maratona não é obrigatória, mas sim, desejável. O Modelo da Ficha de Inscrição se encontra no Anexo A deste documento.
Em cada uma das fases da Maratona de Programação os times receberão uma prova com problemas que devem ser resolvidos.
1ª FASE - SALA F2 Dia: 31/05/2012, Quinta-feira
Horário: 19h00 às 21h30 (2 horas e 30 minutos)
Conteúdo Abordado na Prova: as equipes resolverão exercícios básicos
de algoritmos à mão, usando pseudo-código. Essa etapa será realizada na Sala 2 do UNISAL - Lorena. As 8 equipes melhores classificadas passarão para a próxima fase. Modelo de pseudo-código sugerido está apresentado no Anexo D deste documento.
2ª FASE – LABORATÓRIO No 6 (Coordenação) Dia: 01/06/2012, Sexta-Feira
Horário: 19h00 às 21h30 (2,5 horas)
Conteúdo Abordado na Prova: as equipes classificadas resolverão
exercícios de Programação e Estruturas de Dados em Linguagem Java. Essa fase será realizada no Laboratório 8 do UNISAL - Lorena. As 3 equipes melhores classificadas (20 alunos) receberam prêmios. As orientações para tratamento de Leitura e Gravação de Arquivos em Java a serem usadas nas Fases II e III são apresentadas no Anexo E deste documento.
As equipes devem entregar as questões para a banca examinadora na ordem em que forem sendo finalizadas, ou seja, NÃO há necessidade de que a equipe finalize todas as questões para entregar ao Aplicador da Prova.
As definições dos critérios utilizados em cada fase estão melhor descritas no Anexo B deste documento.
Fase 1: Lógica e Algoritmos
Critério Valor Mínimo Valor Máximo Peso
1º - Exatidão 0 4 40%
2º - Tempo 0 4 30%
3º - Clareza 0 4 20%
4º - Criatividade 0 4 10%
Valores: 0-Inadequada; 1-Pouco Satisfatória; 2-Satisfatória; 3-Suficiente; 4-Excelente Cálculo da Nota da 1ª Fase:
Fase 2: Estrutura de Dados e Programação
Critério Valor Mínimo Valor Máximo Peso
1º - Exatidão 0 4 40%
2º - Tempo 0 4 30%
3º - Clareza 0 4 20%
4º - Criatividade 0 4 10%
Valores: 0-Inadequada; 1-Pouco Satisfatória; 2-Satisfatória; 3-Suficiente; 4-Excelente. Cálculo da Nota da 2ª Fase:
Nota 2ª Fase = Exatidão * 0,4 + Tempo * 0,3+ Clareza * 0,2 + Criatividade * 0,1
7.4 – Premiação
A premiação será de acordo com o número de inscrições, ou seja, o valor arrecadado.
1º Lugar: 1 Livro + 1 Taça + Representação da UNISAL na Maratona da SBC;
2º Lugar: 1 Livro + Representação da UNISAL na Maratona da SBC; 3º Lugar: 1 Livro + Representação da UNISAL na Maratona da SBC; 7.5 – Roteiro de Aplicação das Provas
As orientações para a Aplicação das Provas estão descritas no Anexo C deste documento.
Todos os alunos participantes receberão Certificados referentes às Fases em que estiveram presentes no evento, podendo apresentá-los para o professor para fins de compensação de ausência.
Cada Fase em que o aluno participar lhe dará direito a 2 horas de Atividade Acadêmica Científico Cultural.
8 – Comunicação para Divulgação do Evento O evento será divulgado pelos seguintes meios:
Em sala, pelos alunos e professores (com mini-flyer); Mural dos alunos (cartaz);
Site do UNISAL (banner);
E-mail para os representantes de sala e professores;
Reforço de divulgação com os Representantes de Sala.
9 – Esquema de Trabalho
Com relação ás atividades que cercam o evento bem como a distribuição de responsabilidades podem ser vistas no Anexo F deste documento.
10 – Pós-evento Com relação a:
Certificados: emitir para todos os alunos participantes inscritos, por Fase, bem como da Comissão Organizadora em seus papéis;
Divulgação: as fotos e os resultados deverão ser divulgados no mural, site do UNISAL, e-mail para representantes/professores e jornal;
Estatísticas: realizar estatísticas de participação em cada uma das fases;
Cartas de Agradecimentos: para patrocinadores.
Anexo A - Ficha de Inscrição Documento a parte.
Anexo B – Definição dos Critérios
Exatidão - exato significa: certo, correto, preciso; será considerado EXATO
o código que faz o que é pedido, fornecendo a saída desejada.
Criatividade - será considerado CRIATIVO um software que possuir uma
solução nova, aceita como útil, sem perda da qualidade.
Clareza – qualidade de ser claro ou inteligível; limpidez; um software será
considerado CLARO se possuir um código com indentação, nomes adequados de variáveis e sem utilização de estruturas inadequadas (vários IFs, quando se pode utilizar uma estrutura CASE).
Documento a parte.
Anexo D – Modelo de Pseudo-código
programa AreaTriangulo {definição do nome do programa} Inicio
BASE, ALTURA, AREA: inteiro {declaração de variáveis}
escreva "Entre com a medida da base do triangulo" leia BASE
escreva "Entre com a medida da altura do triangulo" leia ALTURA
AREA = BASE * ALTURA / 2
escreva "A área do triângulo é: ", AREA Fim Outras estruturas: Se NOTA >= 6 escreva "Aprovado" Senão escreva “Reprovado” Fim Se VALOR = 1 Repita escreva VALOR VALOR = VALOR + 1
Até que (VALOR < 10)
VALOR = 1
Enquanto (VALOR < 10 ) faça escreva VALOR
VALOR = VALOR + 1
Fim Enquanto
escreva VALOR Fim Para
Anexo E – Orientações de Entrada e Saída de Arquivos no Java Recomendações para Leitura e Escrita de Arquivos
A Maratona de Programação da Fatec segue as mesmas Regras da Maratona oficial do IME-USP.
O seu aplicativo (código fonte) NÃO possui interação com o usuário.
Isso significa que o usuário NÃO fornece nenhum dado para processamento Tudo é realizado via Manipulação de arquivos:
a) arquivo de entrada -> Fornecido para cada uma das questões b) arquivo de saída -> Resultado (Saída) do seu aplicativo
A equipe pode executar os teste nos editores: NetBeans, Jcreator e/ou BlueJ Com leitura de arquivo e escrita de arquivo conforme o exemplos abaixo
import java.io.*;
public class LeituraEEscrita {
public static void main( String[ ] args ) { try {
BufferedReader br = new BufferedReader( new FileReader( "c:\\entrada.txt" ) ); BufferedWriter bw = new BufferedWriter( new FileWriter( "c:\\saida.txt" ) );
String linha = null; int somax=0,somay=0;
while ( ( linha = br.readLine() ) != null ) { String aux[]=linha.split(" ");
somax=somax+Integer.parseInt(aux[0]); somay=somay+Integer.parseInt(aux[1]); bw.write( linha, 0, linha.length() ); bw.newLine();
}
String resp="Somax="+somax + " " + "Somay="+ somay; bw.write( resp, 0, resp.length() );
bw.newLine(); br.close(); bw.close();
} catch ( IOException exc ) { exc.printStackTrace(); } }
}
O arquivo de entrada entrada.txt é dado abaixo: 10 20 40 15 30 89 90 34 32 78 78 12 67 34 23 12
O aplicativo gera o seguinte arquivo de saida.txt 10 20
40 15 30 89
90 34 32 78 78 12 67 34 23 12 Somax=370 Somay=294
A equipe deverá criar uma versão para a comissão com as caracteristicas recomendadas pela Maratona Oficial
isto é, com processamento realizado via linha de comando tais como apresentado no texto de recomendações.
Anexo F – Esquema de Trabalho Documento a parte.